Sla over en ga naar content

Azure Kubernetes Service (AKS) met Azure DevOps

Waarom zou je jezelf zorgen maken over de complexiteit van container indeling als je AKS kunt gebruiken?

Azure Kubernetes Service (AKS) beheert jouw gehoste Kubernetes-omgeving, waardoor je sneller en gemakkelijker container toepassingen kunt implementeren en beheren. Deze service elimineert ook de last van doorlopende bewerkingen en onderhoud door resources on-demand in te richten, te upgraden en te schalen, zonder je applicaties offline te halen. AKS is de beste manier om Kubernetes te vereenvoudigen en te stroomlijnen, zodat je jouw app-ontwikkeling met echt vertrouwen en flexibiliteit kunt schalen.

AKS-functies:

  • Eenvoudige integratie met Azure-services zoals Load balancing, Azure Blob Storage, door Azure beheerde databases, enz
  • Gehost control plane
  • Eenvoudig en veilig beheer van gecontaineriseerde applicaties
  • Azure Active Directory-integratie voor RBAC
  • De AKS-beheerservice is gratis

Is er een one-stop-oplossing voor CI / CD?

Ja, Azure DevOps heeft veel mogelijkheden voor verschillende fasen van projectbeheer en levering. We zullen ons concentreren op het overzicht van CI / CD voor applicatie-implementaties in AKS met behulp van Azure DevOps pipelines. Azure-pipelines helpen bij het automatiseren van het proces voor het bouwen en vrijgeven van software en het opzetten van een continu integratie- en leveringsproces (CI / CD).

Andere alternatieve CI / CD-serviceproviders zijn GitHub Actions, GitLab Pipelines, Jenkins, AWS-codepipeline, GCP CI / CD, etc.

Alle grote technologieën willen zoveel mogelijk een meer geïntegreerde ontwikkelomgeving bieden, zodat het voor de teams gemakkelijker is om projecten te beheren zonder zich aan te melden voor tientallen verschillende services en daarmee de integratie complexiteit te vergroten.

Vooral cloud providers doen hun best om een one-stop-shop te worden voor alle ontwikkel- en implementatie tools, zodat hun klanten nergens heen hoeven om een geïntegreerde projectlevenscyclus te ervaren. Eén van die bedrijven is Microsoft, dat cloud-services aanbiedt als Azure en DevOps-oplossingen als Azure DevOps.

Hieronder zie je de kickstart van CICD in Azure DevOps, waarbij microservices worden ontwikkeld als gecontaineriseerde images en deze worden geïmplementeerd in Azure Kubernetes Service.

Kickstart CICD Azure DevOps

Wat wordt er gedekt:

  • Azure Container Registry (ACR), AKS en Azure SQL Server
  • Azure DevOps Team Project met Dockerized webapplicatie (bijv. Webapp ontwikkeld in Java, .Net core …)
  • Bouw Pipeline om een docker-image te maken en upload deze naar het container register
  • Laat Pipeline los om de applicatie automatisch te implementeren

Bouwproces (CI)

  1. Ontwikkelaar pusht de broncode naar de Azure-opslagplaats.
  2. Azure-pijplijn activeert de build door de toepassingscode van de Azure-opslagplaats te klonen naar een door Microsoft gehoste build-agent of zelfbeheerde build-agents.
  3. Azure-pijplijn maakt een Docker-image met code-artefacten, tagt de Docker-image en pusht deze naar de Azure-containerregistratie.
  4. Azure-pijplijn kan ook de toepassingscode taggen in de Azure-opslagplaats die is gecontaineriseerd.

Implementatieproces (cd)

  1. In de fase van de database-implementatie maakt de Azure-releasepijplijn een ‘SQL-query uitvoeren: DACPAC-taak’ die scripts op de SQL-server uitvoert.
  2. In de AKS-implementatiefase voert de Azure-release pijplijn de taak ‘Create Deployment and Services in AKS’ uit om Kubernetes-implementaties en -services te maken.
  3. Het proces begint door de nieuwste Docker-image uit het Azure-container register te halen en te implementeren in het AKS-cluster.
  4. De implementatie creëert ook een Ingress Controller in het cluster die een externe load balancer inricht en er IP aan toewijst.
  5. Ten slotte hebben gebruikers toegang tot de web-app met het IP-adres van de load balancer.

(Helm-grafieken kunnen ook worden gebruikt als alternatief voor implementaties in AKS)

Samenvatting

Azure Kubernetes Service (AKS) vermindert de complexiteit en operationele overhead van het beheren van een Kubernetes-cluster door een groot deel van die verantwoordelijkheid over te dragen aan Azure. Met Azure DevOps en Azure Container Services (AKS) kunnen we DevOps bouwen voor docker-applicaties door gebruik te maken van dockermogelijkheden die zijn ingeschakeld op Azure DevOps Hosted Agents.