CLOUD & MANAGED SERVICES
03/12/2024 • Patrik Söderström

Van ClickOps naar DevSecOps: slimmer cloudbeheer in Azure

Voor effectief cloudbeheer in de digitale wereld van vandaag eisen organisaties snelheid, veiligheid en efficiëntie. Toch vertrouwen veel bedrijven nog steeds op een handmatige configuratie aanpak voor hun implementaties via het Azure portaal: ClickOps. Hoewel ClickOps eenvoudig is om mee te starten, kan het leiden tot langzamere implementatietijden, misconfiguraties en beperkte schaalbaarheid. De oplossing is een Infrastructure as Code (IaC) en DevSecOps mentaliteit.

This blog behandelt: 

  • De zes grootste uitdagingen van ClickOps
  • Hoe IaC en DevSecOps deze uitdagingen oplossen
  • Praktische tips om je Azure omgeving te beveiligen en op te schalen

The uitdagingen van ClickOps (en DevSecOps oplossingen)

Volgens het Global DevSecOps rapport van juli 2024 heeft slechts 56% van de organisaties DevSecOps praktijken geïmplementeerd. Dit betekent dat veel bedrijven nog steeds afhankelijk zijn van ClickOps, waarbij infrastructuur handmatig wordt gedeployed via de Azure-portal GUI.

ClickOps heeft een lage instapdrempel, waardoor het gemakkelijk is voor teams om snel infrastructuur in te stellen zonder een governance-framework. Hoewel deze aanpak handig is om mee te starten, creëert het na verloop van tijd steeds meer technische schulden en operationele uitdagingen. 

Hieronder verkennen we de zes grootste uitdagingen van ClickOps en hoe IaC en DevSecOps deze kunnen oplossen.

1) Technische schuld met verborgen kosten

ClickOps lijkt een gemakkelijke manier om resources in Azure te deployen. Het zijn immers slechts een paar klikken in het portaal, toch? Maar naarmate organisaties opschalen, wordt deze aanpak een dure bottleneck.

Bijvoorbeeld voor het implementeren van een virtuele  machine in het Azure portaal moet je navigeren door acht tabbladen, die elk belangrijke informatie bevatten die correct ingevuld moet worden vooraleer de resource kan worden gedeployed. Hoewel dit voor één virtuele machine beheersbaar is, wordt het steeds moeilijker om consistente en foutloze gegevens in te voeren voor grotere implementaties.

In de loop der tijd worden de beperkingen van ClickOps duidelijk. Routinetaken, zoals het toevoegen van extra schijven aan meerdere virtuele machines met specifieke configuraties, zijn tijdrovend en repetitief.

De oplossing: Automatiseren van implementaties met IaC vermindert technische schulden 

Met DevSecOps en Infrastructure as Code (IaC) worden implementaties geautomatiseerd en uitgevoerd volgens het gedefinieerde beveiligingsbeleid. Aanpassingen zoals het wijzigen of bijwerken van resources zoals virtuele machines, zijn slechts een kwestie van parameters bijwerken en de implementatie pipeline starten.

2) Langzamere time-to-market door repetitieve taken

ClickOps omvat veel handmatig en repetitief werk en vergroot de kans op menselijke fouten. Het opzetten van meerdere resources met dezelfde configuratie vertraagt de time-to-market, vooral in cloudomgevingen waar snelheid cruciaal is.

De oplossing: Gestroomlijnde implementatie met herbruikbare IaC sjablonen

IaC provides reusable libraries and catalogs of pre-configured resources. Teams can deploy environments faster and use more cost efficient setups of cloud resources.

3) Meerdere cloudomgevingen beheren 

ClickOps maakt het moeilijk om consistentie te waarborgen tussen verschillende omgevingen, zoals test en productie. Handmatige setups vereisen vaak manuele controles om ervoor te zorgen dat omgevingen identiek zijn, wat niet alleen inefficiënt is, maar ook vatbaar voor fouten.

De oplossing: Consistentie door IaC automatisering

Infrastructure as Code stelt teams in staat om een testomgeving als blauwdruk te gebruiken voor andere omgevingen, zoals bv. de productieomgeving. Deze blauwdruk voorkomt handmatige vergelijking en zorgt ervoor dat beide omgevingen identiek zijn.

Hetzelfde geldt voor wijzigingen in de infrastructuur. Een wijziging kan in een testomgeving worden voorbereid, getest en gevalideerd, waardoor de druk bij implementaties in de productieomgeving wordt verminderd en fouten worden voorkomen.

4) Gebrek aan samenwerking en versiebeheer

In ClickOps ontbreekt vaak versiebeheer en transparantie voor wijzigingen in de infrastructuur. Het is moeilijk voor teams om effectief samen te werken en te volgen wie welke wijzigingen heeft aangebracht.

De oplossing: IaC als bron van waarheid

Even when working with small teams, IaC acts as the single source of truth. It describes the actual configuration and setup of the cloud environment. Changes are also tracked on who, what and when they were applied.

Working with Pull Requests on GIT can enforce teams to request changes before they are applied to the actual environment, creating an extra layer of validation.

Zelfs bij kleine teams fungeert IaC als de enige bron van waarheid. Het legt de daadwerkelijke configuratie en opzet van de cloudomgeving vast. Wijzigingen worden geregistreerd, inclusief door wie, met wat en wanneer ze zijn doorgevoerd. Het werken met Pull Requests op GIT dwingt teams om wijzigingen eerst aan te vragen voordat ze in de productieomgeving worden doorgevoerd, wat een extra validatielaag toevoegt.

5) Beperkingen voor disaster recovery

Als een omgeving wordt aangetast of door menselijke fouten gedeeltelijk of volledig corrupt raakt, biedt ClickOps geen realistische manier om deze te herstellen. Stel je voor dat je honderden Azure resources handmatig opnieuw moet instellen in een andere regio. 🥲

De oplossing: Veerkracht opbouwen met DevSecOps

IaC en DevSecOps stellen je in staat de complete omgeving opnieuw te creëren vanaf de broncode. Deze aanpak resulteert in een kortere Recovery Time Objective (RTO) en Recovery Point Objective (RPO) tijdens disaster recovery.

6) Security en compliance risico’s

Het klopt dat het configureren van nieuwe resources via ClickOps wordt beheerst door het vastgestelde kader van Azure beleid. Het is echter belangrijk op te merken dat deze controles pas plaatsvinden tijdens of nadat de resource is aangemaakt.

De oplossing: Compliance waarborgen vóór implementatie

Door de configuratie van je cloudinfrastructuur in code vast te leggen, kunnen compliance- en beveiligingsscans direct op de bron plaatsvinden. Alle wijzigingen worden geaudit, en eventuele niet-compliancies worden opgespoord voordat de implementatie plaatsvindt. Het oplossen van deze niet-compliancies vooraf zorgt ervoor dat de beveiligingsstatus gewaarborgd blijft.

Het afdwingen van een aanpak waarbij alleen de CI/CD toestemming krijgt om de infrastructuur te wijzigen, creëert een extra laag van beveiligingsbescherming.

ClickOps out, DevSecOps in

Om deze uitdagingen aan te pakken, moeten organisaties Infrastructure as Code (IaC) en DevSecOps implementeren. Samen automatiseren ze de volledige implementaties en zorgen ervoor dat security best practices worden gevolgd.

De juiste IaC taal kiezen

Bij het selecteren van een IaC taal zijn er twee sterke opties: 

  • Bicep: De native taal van Azure, naadloos geïntegreerd met Azure en direct ondersteund door Microsoft. Nieuwe Azure services worden direct ondersteund in Bicep. 
  • Terraform: Een cloud-agnostische optie, breed ondersteund in verschillende omgevingen. Een populaire keuze voor organisaties met multi-cloudbehoeften. 

Hoewel de adoptie van Terraform voor nieuwe Azure services snel is, is deze niet altijd beschikbaar op de eerste dag van de release. De algemene aanbeveling is om Terraform te kiezen als je implementaties automatiseert voor virtualisatie omgevingen, multi-cloudscenario's of on-premises workloads. Microsoft biedt een duidelijke vergelijking, die hier beschikbaar is.

💡Tip: Tools zoals Aztfexport kunnen je huidige Azure omgeving exporteren naar Terraform-code. Deze code kan vervolgens worden beoordeeld, opgeslagen in een repository en gebruikt om resources consistent te provisionen. De omgeving kan worden vergrendeld om portal-gebaseerde wijzigingen te voorkomen, zodat alle aanpassingen via IaC worden uitgevoerd, waardoor configuratiedrift wordt vermeden.

IaC en DevSecOps aanpak: success story bij ACA Group

Voor een van onze klanten hebben we hun bestaande setup omgezet naar Terraform-code, wat resulteerde in een herbruikbaar sjabloon. Deze IaC en DevSecOps aanpak verminderde misconfiguraties met 40% en verkortte de implementatietijden voor nieuwe omgevingen met 50%.

Bij ACA Group wordt elke Azure omgeving die we beheren gebouwd volgens de principes van IaC en DevSecOps. Zo pakken wij nieuwe en bestaande omgevingen aan:

  • Greenfield approach (beginnen vanaf nul): Het opzetten van een nieuwe landing zone vanaf nul is eenvoudig. We maken gebruik van beschikbare governance-frameworks, sjablonen en pipelines die volledig zijn afgestemd op het Microsoft Cloud Adoption Framework om compliance en efficiëntie te waarborgen.

  • Brownfield approach (optimaliseren van bestaande omgevingen): Bestaande setups vereisen een meer op maat gemaakte strategie. We gebruiken tools zoals Aztfexport, geïntegreerd in onze bestaande workflows, om de omgeving om te zetten naar IaC-sjablonen en een naadloze overgang te garanderen.

Voorbereiden op de DevSecOps transformatie

De overgang naar DevSecOps gaat verder dan alleen technische veranderingen; het is een verandering van mindset. Organisaties moeten interne beleidsmaatregelen en processen aanpassen om IaC praktijken te ondersteunen en over te schakelen naar een efficiënte en veilige cloudomgeving.

Bij ACA Group zijn we gespecialiseerd in het begeleiden van organisaties in deze transformatie. Of je nu vanaf nul begint of een bestaande Azure omgeving wil optimaliseren, wij helpen graag.

➡️ Klaar om ClickOps achter je te laten?