Design and Implementation of a Secure, Scalable and Observable Cloud-Native DevOps Architecture for Microservices Deployment on Microsoft Azure
Dit artikel presenteert het ontwerp en de implementatie van een veilige, schaalbare en observeerbare cloud-native DevOps-architectuur op Microsoft Azure voor een microservices-applicatie voor salonreserveringen, waarbij wordt aangetoond hoe de integratie van Infrastructure as Code, Kubernetes-orkestratie, geautomatiseerde CI/CD-pipelines en uitgebreide monitoring handmatige deployment transformeert in een reproduceerbare en veerkrachtige workflow.
Oorspronkelijk artikel gelicentieerd onder CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/). Dit is een AI-gegenereerde uitleg van het onderstaande artikel. Het is niet geschreven of goedgekeurd door de auteurs. Raadpleeg het oorspronkelijke artikel voor technische nauwkeurigheid. Lees de volledige disclaimer
Moderne software drijft alles aan, van het boeken van een knipbeurt tot het beheren van wereldwijde toeleveringsketens, maar de manier waarop deze programma's worden gebouwd en geleverd, is lang afhankelijk geweest van methoden die traag, fragiel en foutgevoelig waren door menselijke fouten. Decennialang behandelden ontwikkelaars software vaak als één massief blok code dat telkens opnieuw opgebouwd en opgestart moest worden wanneer er een kleine wijziging nodig was. Deze aanpak maakte het moeilijk om fouten snel te herstellen of om plotselinge pieken in het aantal gebruikers op te vangen zonder dat het hele systeem crashte. Om dit op te lossen, is de industrie verschoven naar een "cloud-native" aanpak, waarbij applicaties worden opgedeeld in veel kleine, onafhankelijke stukjes die microservices worden genoemd. Deze stukjes kunnen individueel worden bijgewerkt, gerepareerd of opgeschaald, vergelijkbaar met het vervangen van een enkele motoronderdeel van een auto zonder het hele voertuig uit elkaar te halen. Om dit werkend te maken, gebruiken teams automatiseringstools om deze stukjes direct te bouwen, te testen en te implementeren, waardoor wordt gewaarborgd dat de software veilig en betrouwbaar draait in de cloud, een uitgestrekt netwerk van afgelegen computers dat applicaties voor de wereld host.
In een recente studie hebben onderzoekers Nader Amri, Helmi Jbili en hun collega's aan het Higher Institute of Computer Science of Kef in Tunesië, werkend met een partner van King Faisal University in Saoedi-Arabië, deze ideeën op de proef gesteld. Zij ontwierpen en bouwden een volledig, geautomatiseerd systeem voor het draaien van een salonreserveringsapplicatie op Microsoft Azure, een groot cloud computing platform. Hun doel was om te bewijzen dat een complex, meervoudig onderdeel bestaand softwaresysteem volledig beheerd kan worden via code en automatisering, waardoor de noodzaak voor handmatige installatie wordt weggenomen en het risico op falen wordt verminderd. Het team creëerde een workflow waarbij elke stap, van het schrijven van de code tot het lanceren van de uiteindelijke applicatie, automatisch gebeurt. Ze gebruikten een tool genaamd Terraform om de benodigde digitale infrastructuur te bouwen, zoals virtuele netwerken en databases, simpelweg door te beschrijven wat er nodig was in een tekstbestand. Dit zorgde ervoor dat de omgeving telkens exact op dezelfde manier werd gecreëerd, wat de inconsistenties elimineert die vaak gepaard gaan met handmatige installaties.
Zodra het fundament was gelegd, verpakten de onderzoekers de salonapplicatie in kleine, zelfstandige eenheden die containers worden genoemd. Deze containers bevatten alle software en instellingen die nodig zijn om elk deel van de applicatie te laten draaien, waardoor ze gemakkelijk te verplaatsen en te kopiëren zijn. Vervolgens implementeerden ze deze containers op een beheerd systeem genaamd Azure Kubernetes Service, dat fungeert als een slimme manager voor de applicatie. Deze manager houdt automatisch het juiste aantal kopieën van elke service draaiende, start welke falen direct opnieuw op en voegt meer kopieën toe als het systeem druk wordt. Om ervoor te zorgen dat de applicatie zonder downtime kon worden bijgewerkt, verbonden het team hun code-repository met een geautomatiseerde pipeline. Telkens wanneer een ontwikkelaar een wijziging opsloeg, bouwde het systeem automatisch een nieuwe versie van de software, testte deze en duwde deze naar de live omgeving. Dit proces, bekend als continuous integration en delivery, veranderde een taak die voorheen uren handmatig werk in besloeg, in een naadloze operatie van vijf minuten.
De onderzoekers stopten niet bij het bouwen van het systeem; ze testten het rigoureus op zijn vermogen om met echte uitdagingen om te gaan. Ze verifieerden dat de applicatie veilig via het internet toegankelijk was, waarbij alle gegevens versleuteld zijn om gebruikersinformatie te beschermen. Ze testten de veerkracht van het systeem door handmatig een draaiend onderdeel van de applicatie te verwijderen, om vervolgens te zien hoe het systeem het direct weer recreëerde om het gewenste aantal kopieën te behouden. Ze simuleerden ook een zware belasting, zoals een plotselinge toestroom van klanten die afspraken willen boeken, en observeerden hoe het systeem automatisch meer kopieën van de service toevoegde om het verkeer te verwerken, waarbij het opschaalde naar drie replica's wanneer het computergebruik tachtig procent bereikte. Tijdens al deze tests hield een monitoringsysteem nauwlettend de gezondheid van de applicatie in de gaten en stuurde onmiddellijke meldingen naar de beheerders als er iets ongewoons gebeurde, zoals een service die onverwacht herstart of een gebruiker die probeert het systeem met te veel verzoeken te overspoelen.
De resultaten van dit werk laten zien dat een veilige, schaalbare en observeerbare cloudarchitectuur niet alleen een theoretisch ideaal is, maar een praktische realiteit. Het team kwam tot de conclusie dat door het combineren van infrastructuurautomatisering, containerbeheer en continue levering, zij een handmatig en foutgevoelig proces konden transformeren in een betrouwbare, herhaalbare workflow. De applicatie bleef beschikbaar en responsief, waarbij de reactietijden onder de ene seconde bleven tijdens normaal gebruik, terwijl het geautomatiseerde systeem reparaties en schaling afhandelde zonder menselijke tussenkomst. Hoewel de studie werd uitgevoerd in een gecontroleerde validatieomgeving in plaats van een langdurige productieomgeving, bevestigen de bevindingen dat deze aanpak een solide fundament biedt voor het implementeren van complexe microservices. De onderzoekers suggereren dat toekomstig werk deze resultaten kan uitbreiden door meer geavanceerde beveiligingscontroles toe te voegen, de kosten dieper te meten en het systeem onder nog zwaardere belastingen te testen, maar de kernprestatie staat vast: een volledig geautomatiseerd, zelfherstellend systeem dat software soepel laat draaien in de cloud.
Verdrinkt u in papers in uw vakgebied?
Ontvang dagelijkse digests van de nieuwste papers die bij uw onderzoekswoorden passen — met technische samenvattingen, in uw taal.