De pilaren van Cloud Native
Helaas maakt het simpelweg draaien van een applicatie in de cloud deze nog niet Cloud Native. Om dat te worden, zijn er ten minste vier pilaren waarmee rekening moet worden gehouden.
1. Microservices
Met microservices kan elk onderdeel van een app onafhankelijk worden geschaald. Dit verhoogt de wendbaarheid en verkort de implementatietijden.
Door microservices te gebruiken, kun je je software effectief ontwikkelen en een deliveryproces ontwikkelen. Microservices maken het mogelijk om je applicatie te ontwikkelen in kleine services, die volledig onafhankelijk zijn.
Microservices zijn los en communiceren met elkaar via gedefinieerde API's.
Teams kunnen hun diensten zelf beheren, deze onafhankelijk en efficiënt uitrollen, aangezien ze ontworpen zijn om klein te zijn.
Voorbeeld: Een platform voor het bezorgen van eten kan drie services hebben. Een orderbeheerservice (1), een restaurantservice (2), en een bezorgtrackingservice (3).
2. Containers en containerorkestratie
Containers zijn lichte componenten die software en de afhankelijkheden ervan bundelen in een enkel pakket. Net zoals je bestellingen verpakt in verzenddozen, verpakt een container software.
Met containers kun je code van machine naar machine verplaatsen zonder je zorgen te maken over mogelijke fouten.
Waarom? Omdat machine en code worden gedeployed in dezelfde containers.
Vergeleken met conventionele virtuele machines zijn containers efficiënter omdat ze de kernel van het hostsysteem delen. Dit vermindert de overhead en versnelt de opstarttijd. Containers hebben alle middelen om een microservice in elke omgeving te draaien.
Het belangrijkste doel is om Cloud Native-applicaties te bundelen met hun afhankelijkheden. Hierdoor kunnen ze consistent in verschillende omgevingen draaien. Containerorkestratie speelt hierin een cruciale rol door deze containers te beheren en te schalen.
Container orkestratie = het automatiseren van het beheer van containers. Het voert taken uit zoals het inzetten, schalen en monitoren van containers om ervoor te zorgen dat ze soepel draaien.
Naarmate het aantal microservices groeit, beheert containerorkestratie grote hoeveelheden containers. Hierdoor kunnen alle microservices soepel draaien als één enkele applicatie.
Denk bijvoorbeeld aan Kubernetes: De tool beheert containers. Het kan fouten detecteren, herstellen van fouten en workloads balanceren tussen microservices.
Kubernetes automatiseert de deployment, het schalen en de werking van applicatiecontainers. Het zorgt ervoor dat je apps robuust en uitstekend presteren.
3. DevOps
De ontwikkelprocessen zijn essentieel voor het gebruik van een microservices-architectuur. In een microservices-architectuur worden services onafhankelijk ontwikkeld.
Aan de andere kant worden deployment en schaling apart afgehandeld, meestal door operationele teams of geautomatiseerde processen.
Dit vergt nauwe samenwerking tussen ontwikkel- en operationele teams. Daarnaast is automatisering nodig om de workflow voor ontwikkeling en implementatie te stroomlijnen. Dit is waar DevOps om de hoek komt kijken.
Een belangrijk onderdeel van DevOps is Continuous Innovation (CI) en Continuous Delivery (CD). Het helpt teams bij het automatiseren van softwareontwikkeling en -implementatie, wat de snelheid en betrouwbaarheid verbetert.
CI betekent wijzigingen in de code samenvoegen in een Git repository. Vervolgens voer je tests uit om te bevestigen dat de code werkt.
CD betekent het automatiseren van het uitrollen van software naar productieomgevingen met behulp van deployment pipelines of GitOps.
Anders gezegd, ontwikkelaars kunnen codewijzigingen automatisch maken, testen en voorbereiden. Dit verbetert de snelheid en efficiëntie van de softwarelevering.
4. Cloud Native open standaarden
De laatste pilaar is de toepassing van open standaarden. Naarmate een Cloud Native-ecosysteem volwassener wordt, worden de belangrijkste onderdelen ervan gestandaardiseerd. Best practices worden dan algemeen beschikbaar.
Cloud Native zijn, betekent ook gestandaardiseerde componenten gebruiken als building blocks. Het betekent ook het volgen van best practices zodra deze beschikbaar zijn.