Anders Nilsson 2023-10-05
The Kubernetes Maturity Model
Kubernetes Maturity Model är vårt sätt att försöka förstå resan mot Cloud-Native Applications på Kubernetes. Den är inte en absolut sanning, utan bör snarare ses som en vägledning och inspiration för organisationer som ger sig ut på Kubernetes-resan. Inspirationen till modellen hämtas från Capability Maturity Model(CMM) utvecklad 1986. I CMM definierar man processmognad i fem steg:
- Inledande - ad hoc
- Repeterbar - översiktligt dokumenterat
- Definierad - standardiserad och överenskommen
- Förvaltad - mätbar och styrbar
- Effektiv - löpande förbättringar och optimeringar
På liknande sätt kan vi hur en organisation tar till sig Kubernetes som applikationsplattform både ur ett tekniskt men också organisatoriskt perspektiv. I modellen tar vi hänsyn till 5 aspekter:
- Kultur och organisation - Hur har organisationen tagit sig till och anpassat sig
- Arkitektur - Hur avancerad är plattformen och vilka scenarier hanterar den
- Automatisering och CI/CD - Till vilken grad har man automatiserat förvaltning och integration
- Säkerhet och Compliance - Hur långt har man kommit i att skydda och efterleva olika krav
- Skalbarhet och prestanda - Hur redo är plattformen att dynamiskt anpassa sig efter skiftande resursbehov
Genom att kombinera de fem aspekterna med motsvarigheten till de fem nivåerna i processmognaden får vi fram en matris som ser ut så här:
Level 1 | Level 2 | Level 3 | Level 4 | Level 5 | |
---|---|---|---|---|---|
Kultur och Organisation | Medvetenhet | Lärande och Experiment | Tvärfunktionella Team | DevOps and SRE Culture | Cloud-Native Kultur |
Arkitektur | Enkelnod Kubernetes | Basic Kubernetes | Standardiserad Arkitektur | Avancerad Kubernetes | Cloud-Native Excellence |
Automatisering och CI/CD | Manuell Deployment | Grundläggande Automatisering | Full CI/CD-integration och Observabilitet | GitOps och Progressive Delivery | Canary och Blue/Green Deployments |
Säkerhet och Compliance | Basic Access | Basic Security | Anpassad säkerhet | Compliance as Code | Zero Trust and Beyond |
Skalbarhet och Prestanda | Minimal Scaling | Basic Scaling | Efficient Scaling | Cost-Optimized Scaling | 12 Factor Cloud-Native Apps |
OBS Detta är endast till för vägledning och är inte avsett att vara en absolut sanning.
Nedan följer en något djupare beskrivning av de olika aspekternas mognadsnivåer.
- Nivå 1 - Medvetenhet: Begränsad medvetenhet om Kubernetes inom organisationen. Individer provar ut containrar och containerorkestrering.
- Nivå 2 - Lärande och Experiment: Team lär sig och experimenterar med Kubernetes.
- Nivå 3 - Tvärfunktionella Team: Tvärfunktionella team samarbetar effektivt i Kubernetes-projekt. Roller och ansvarsområden är definierade.
- Nivå 4 - DevOps and SRE Culture: DevOps och Site Reliability Engineering (SRE) praxis omfamnas.
- Nivå 5 - Cloud-Native Kultur: Cloud-native kultur med fokus på automation, kontinuerlig förbättring och delat ansvar.
Arkitektur
- Nivå 1 - Enkelnod Kubernetes: Kubernetes är installerad med en enkelnods distro som Minikube eller körs i Docker.
- Nivå 2 - Basic Kubernetes: Kubernetes är implementerad med grundläggande konfigurationer, och vissa applikationer är containeriserade. Grundläggande podhantering och nätverk är på plats.
- Nivå 3 - Standardiserad Arkitektur: Kubernetes är implementerad med standardiserade arkitekturmönster, inklusive användning av kontrollers som Deployments och Services.
- Nivå 4 - Avancerad Kubernetes: Avancerade arkitekturmönster som mikrotjänster och tillståndstjänster implementeras effektivt.
- Nivå 5 - Cloud-Native Excellence: Arkitekturen omfamnar fullt ut cloud-nativa principer, med användning av avancerade Kubernetes-funktioner och molnspecifika integrationer.
Automatisering och CI/CD
- Nivå 1 - Manuell Deployment: Manuell distribution och begränsad automatisering.
- Nivå 2 - Grundläggande Automatisering: Grundläggande CI/CD-pipelines för byggning och distribution av containeriserade applikationer.
- Nivå 3 - Full CI/CD-integration och Observabilitet: Full integration av CI/CD med Kubernetes, inklusive automatiserade tester och utrullningsstrategier. Observabilitet för proaktiv drift.
- Nivå 4 - GitOps och Progressive Delivery: Avancerade GitOps-praxis och progressiv distribution för kontinuerlig förbättring.
- Nivå 5 - Canary och Blue/Green Deployments: Implementera avancerade distributionsstrategier som canary och blå/grön distribution.
Säkerhet och Compliance
- Nivå 1 - Basic Access: Basic autentisering används med certifikat. I övrigt ingen säkerhet.
- Nivå 2 - Basic Security: Integration med Identity Service samt basic Pod Security.
- Nivå 3 - Anpassad säkerhet: Automatisk scanning av container images. Granulär kontroll av kluster och namespaces.
- Nivå 4 - Compliance as Code: Automatiserad efterlevnadskontroll med checkar i alla steg.
- Nivå 5 - Zero Trust and Beyond: Implementera zero trust-nätverk, avancerade säkerhetspolicyer och styrning av efterlevnad.
Skalbarhet och Prestanda
- Nivå 1 - Minimal Scaling: Manuell skalning med begränsad prestandaoptimering.
- Nivå 2 - Basic Scaling: Grundläggande autoskalning och viss prestandaoptimering.
- Nivå 3 - Efficient Scaling: Effektiv resursanvändning, autoskalning och prestandaövervakning.
- Nivå 4 - Cost-Optimized Scaling: Kostnadsoptimering genom resurseffektivitet och skalningsstrategier.
- Nivå 5 - 12 Factor Cloud-Native Apps: Högpresterande, moln-nativa applikationer med avancerad skalning och optimering.