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 1Level 2Level 3Level 4Level 5
Kultur och OrganisationMedvetenhetLärande och ExperimentTvärfunktionella TeamDevOps and SRE CultureCloud-Native Kultur
ArkitekturEnkelnod KubernetesBasic KubernetesStandardiserad ArkitekturAvancerad KubernetesCloud-Native Excellence
Automatisering och CI/CDManuell DeploymentGrundläggande AutomatiseringFull CI/CD-integration och ObservabilitetGitOps och Progressive DeliveryCanary och Blue/Green Deployments
Säkerhet och ComplianceBasic AccessBasic SecurityAnpassad säkerhetCompliance as CodeZero Trust and Beyond
Skalbarhet och PrestandaMinimal ScalingBasic ScalingEfficient ScalingCost-Optimized Scaling12 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.

    Kultur och Organisation

  • 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.