Met microservices en CI/CD pipelines krijgt Azure pas écht zin

Microservices Microsoft Azure
Microservices Microsoft Azure
Home / Blog & Nieuws / Cloud / Met microservices en CI/CD pipelines krijgt Azure pas écht zin

Trueligan Rudy van Sloten werd geïnterviewd door vakblad CloudWorks over de veelvoorkomende uitdagingen waar bedrijven zich op verkijken wanneer zij stappen naar public cloud Azure zetten.

Dit artikel verscheen eerder in de geprinte versie van vakblad CloudWorks (#1, 2020).

Bij een migratie naar de public cloud verkijken veel bedrijven zich op uitdagingen die hierbij komen kijken. Het omarmen van de public cloud betekent niet automatisch dat applicaties en data ergens anders draaien en staan opgeslagen. Een overstap brengt ook andere werkwijzen, mogelijkheden, voordelen en aandachtspunten met zich mee. Rudy van Sloten, Solutions Architect bij True Webspace, zet een aantal uitdagingen waar bedrijven zich vaak op verkijken op een rijtje.

Lees ook onze recente blogposts over Microsoft Ignite

Andere werkwijze

“Veel klanten die voor de public cloud kiezen maakten voorheen gebruik van een eigen serverruimte, waarin hun applicaties en data waren ondergebracht. Zij zijn dan ook gewend zelf de beste hardware te selecteren, hierop applicaties uit te rollen of data op te slaan en deze te beheren”, legt Van Sloten uit.

Een overstap naar de public cloud brengt echter een geheel andere werkwijze met zich mee. “Wie kostenefficiënt gebruik wil maken van de cloud kiest voor het gebruik van clouddiensten. Deze diensten zijn kant-en-klaar beschikbaar, zonder hiervoor software te hoeven implementeren. De hardware is volledig in beheer van een cloudprovider als Microsoft.”

CI/CD pipelines

Ook de ontwikkeling van nieuwe applicaties en functionaliteiten gaat bij het gebruik van de cloud anders in zijn werk. “Ontwikkelaars en applicatiebeheerders die in eigen omgevingen werken zijn vaak gewend zelf aan de knoppen te zitten. Zo zijn zij niet alleen verantwoordelijk voor het schrijven van de code, maar ook voor het correct uploaden van de code naar de gewenste server en het tunen van de serverinstellingen.”

Lees ook: Continuous Integration, Continuous Delivery en Continuous Deployment uitgelegd"

“Dit kan in de cloud anders. Vaak wordt gebruik gemaakt van Continuous Integration and Continuous Deployment (CI/CD) pipelines. Mits correct ingericht, valideert een pipeline de de code, compileert het en transporteert het naar de juiste servers/services.” Dit brengt een andere werkwijze met zich mee. Wie bijvoorbeeld een wijziging wil aanbrengen in de code kan niet even snel inloggen op een server om handmatig een bestand aan te passen. “De aangepaste code moet na een wijziging in een repository opnieuw door de pipeline. Je kunt hier bijvoorbeeld Azure DevOps of GitLab voor gebruiken.”

Een CI/CD pipeline omvat alle stappen om softwarecode te uploaden naar een server. Deze stappen dienen allen geautomatiseerd te worden, wat het creëren van een CI/CD pipeline een complex proces maakt. “Bij het creëren van een CI/CD pipeline is optimalisatie bijvoorbeeld van groot belang. Stel dat je een update uitrolt waarin toch een kleine fout blijkt te zitten. Dan wil je dat deze fout in je proces wordt gevonden en de uitrol ophoudt. Om dit proces te stroomlijnen moet de pijplijn geoptimaliseerd zijn. Azure DevOps bevat kant-en-klare bouwblokken voor CI/CD pipelines die hierbij kunnen helpen.”

Prestaties optimaliseren

De manier waarop een applicatie in de public cloud draait is daarnaast geheel anders dan in een private cloudomgeving. “In een private cloud liggen alle componenten, zoals een webserver, database of API erg dicht op elkaar. Je kunt hier doorgaans snelle winst maken in prestaties door snellere hardware toe te voegen, in plaats van je applicatielandschap opnieuw uit te denken”, legt Van Sloten uit. “Bij een public cloudprovider werkt dit anders; de ‘tier’ die je voor verschillende componenten kiest en het slim verdelen van workloads bepalen de prestaties.”

Niet ieder component van een applicatie vereist echter dezelfde prestaties en capaciteit. “Vaak is een applicatie in de cloud daarom opgesplitst in verschillende componenten, die op verschillende locaties en diensten zijn ondergebracht. Vormt de database bijvoorbeeld een bottleneck? Dan kan ervoor worden gekozen dit deel van de applicatie te verhuizen naar een omgeving met betere prestaties, zodat hiervoor meer capaciteit beschikbaar is. Doordat componenten als microservice draaien is het mogelijk per component op- of juist af te schalen.”

Voldoende capaciteit beschikbaar hebben

De capaciteitsbehoefte van een bedrijf kan plotseling toe- of juist afnemen. Traditionele infrastructuur maakt het moeilijk deze fluctuaties op te vangen. Om altijd voldoende capaciteit beschikbaar te hebben is in een traditionele omgeving overcapaciteit nodig, die op rustige momenten onbenut blijft en verloren gaat.

De cloud maakt het mogelijk hier flexibeler mee om te gaan. Van Sloten vertelt: “Eén van onze klanten zet Azure in om strooidiensten aan te sturen. De werkzaamheden van deze partij zijn volledig weersgebonden; indien er veel sneeuw valt nemen de activiteiten en daarmee de behoefte aan cloudcapaciteit plotseling fors toe. Een bijkomend probleem is dat strooidiensten vaak ‘s nachts werken. Wil je in een traditionele omgeving echter ‘s nachts extra capaciteit toevoegen? Dan kan je vaak moeilijk of niet iemand bereiken om dit te snel te realiseren.”

Deze klant maakt daarom gebruik van hybride infrastructuur, een private cloud die aangevuld wordt met public cloudcapaciteit. “Het bedrijf kiest ervoor netwerkverkeer altijd eerst door on-premise servers af te laten handelen. Is echter meer capaciteit nodig dan on-premise beschikbaar is? Dan springt Azure bij. Dit proces is volledig geautomatiseerd; indien de belasting van de infrastructuur te hoog is, voegt Azure de gewenste componenten dynamisch toe. Extra capaciteit is hierdoor geheel automatisch beschikbaar zodra deze nodig is.”

Applicaties en data back-uppen

De bedrijfsvoering van veel organisaties is vandaag de dag in belangrijke mate afhankelijk van applicaties en data. Dit maakt back-ups dan ook van cruciaal belang. Niet alleen is het belangrijk met voldoende regelmaat back-ups te maken, ook is het noodzakelijk de integriteit van back-ups regelmatig te controleren. Wordt je onverhoopt geconfronteerd met dataverlies? Dan wil je zo snel mogelijk een back-up kunnen terugplaatsen.

“Azure helpt hierbij en stroomlijnt dit proces. Zo bevat Azure verschillende back-up-oplossingen voor het back-uppen van verschillende soorten data en applicaties. Gebruikers bepalen zelf welke data zij willen back-uppen en hoe vaak zij hiervan een reservekopie willen maken. Zo is het mogelijk snapshots te maken van servers, zodat deze in zijn geheel kunnen worden herbouwd. Het is echter ook mogelijk ruwe data te back-uppen door deze naar bijvoorbeeld een andere geografische regio te repliceren.”

Bekijk ook dienst: Managed Azure

Disaster recovery

Soms kiezen bedrijven ervoor hun applicaties en data on-premises te houden. Vooral traditionele workloads brengen veel kosten met zich mee in de cloud. Ongeacht de locatie, kan het onbeschikbaar zijn van deze assets een grote impact hebben op de productiviteit van jouw werknemers. Indien de on-premise omgeving het laat afweten is het dan ook van groot belang dat jouw primaire applicaties en data zo snel mogelijk weer beschikbaar zijn.

De cloud biedt uitkomst. “Azure kan worden ingezet als een disaster recovery-omgeving. In dit geval breng je in kaart welke belangrijke virtuele machines lokaal draaien en synchroniseer je deze data via Hyper-V of VMware continu met de cloud. Indien de lokale omgeving onbeschikbaar is, springt Azure bij en zorgt dat je toch kunt doorwerken.”

Azure E-Book: Tips, tools en tricks voor developers

Aan de slag met Microsoft Azure? Als ontwikkelaar heb je vele tools, processen en integraties tot de beschikking. Hoe weet je of je de juiste keuzes maakt? Download ons e-book met daarin tips & tricks om het optimale uit Azure te halen.