Met microservices en CI/CD pipelines krijgt Azure pas écht zin
Bij een migratie naar de public cloud verkijken veel bedrijven zich op de uitdagingen die hierbij komen kijken. Het omarmen van de public cloud betekent niet alleen 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.
“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 cloud-diensten. Deze diensten zijn kant-en-klaar beschikbaar, zonder hiervoor software te hoeven implementeren. De hardware is volledig in beheer van een cloud provider 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 server-instellingen.”
“Dit kan in de cloud anders. Vaak wordt gebruikgemaakt van Continuous Integration and Continuous Deployment (CI/CD) pipelines. Mits correct ingericht, valideert een pipeline de code, compileert het en transporteert het naar de juiste servers of 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 alle 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 cloud-omgeving. “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 cloud provider 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: “Een 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 cloud-capaciteit 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 zelfs 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 cloud-capaciteit. “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-up
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. Word 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.”
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.”