Krijg meer grip op development met Kubernetes

We hebben eerder al geschreven over de opkomst van containers in de wereld van software-ontwikkeling. Containers werken prettig voor ontwikkelaars en geven je houvast in het ontwikkelproces. Maar om containers goed te managen, heb je wel een goede tool nodig. Zoals Kubernetes van Google. In dit artikel lees je wat Kubernetes is en waarom het perfect is om product owners en managers op de hoogte te houden van de voortgang.

Wat is Kubernetes?

Simpel gezegd is Kubernetes een serveromgeving waar je je containers kunt neerzetten. Je kunt het zelf hosten, of als cluster afnemen bij bijvoorbeeld AWS van Amazon of GKE van Google.

Kubernetes is een open-source systeem waarmee je grote groepen containers en applicaties die gebouwd zijn met containers, kunt beheren. Ook zorg je er met Kubernetes voor dat de containers altijd aan blijven. Door gebruik te maken van containers is een applicatie schaalbaar, en daarmee ook direct geschikt voor productie-omgevingen. Hierdoor past het perfect in de DevOps-werkwijze.

Waarom Kubernetes zo goed in DevOps past

Bij software-ontwikkeling gaat een applicatie in een aantal fasen van development naar productie. Je hebt de ontwikkelomgeving, er moet getest worden, de opdrachtgever moet het opgeleverde werk accepteren en tot slot moet alles naar een productie-omgeving overgezet worden. Ontwikkelaars zijn in DevOps niet langer alleen verantwoordelijk voor de code, maar ook voor het in productie brengen. Omdat Kubernetes alle fasen ondersteunt, en de ontwikkelaar zelf de applicatiestructuur bepaalt, sluit het perfect aan bij DevOps.

Meer lezen over DevOps.

Dat komt om de image die je in Docker gebruikt bij de ontwikkeling van de applicatie ook wordt ingeladen in een container binnen Kubernetes. Zo heb je dus in iedere fase van ontwikkeling, dus ontwikkeling, test, acceptatie en productie, dezelfde versies van de services.

Kubernetes is ook ideaal voor versiebeheer

Als je kijkt naar versiebeheer, dan kun je in Kubernetes ook eenvoudig een eigen review-omgeving opzetten per ontwikkelde feature. Dat betekent dat je elke feature al kunt testen, voordat hij naar een acceptatie-omgeving gaat. Op deze manier kunnen ontwikkelteams direct feedback vragen aan de Product Owner. Het mooiste van deze werkwijze, is dat je per aparte omgeving een unieke URL kan gebruiken.

Branch/Tags voorbeelden per omgeving:

 Omgeving Branch/Tag
Review

feature1
feature2

Release (candidate)release-v1.0
Stagingmaster
Productiontag: v1.0

 

Per omgeving zou de volgende URL structuur gebruikt kunnen worden:

 Omgeving URL
Review

feature1.k8s.seleno.nl
feature2.k8s.seleno.nl

Release (candidate)release-v1.0.k8s.seleno.nl
Stagingstaging.k8s.seleno.nl
Productionwww.seleno.nl


Door deze structuur aan te houden, hou je als organisatie grip op de ontwikkeling van de applicatie. Je ziet namelijk per fase wat er in die omgeving uitgerold wordt. Wat nu in de praktijk namelijk meestal gebeurt, is dat een productowner of andere stakeholders nieuwe features pas kunnen bekijken als ze al in de release-branch zitten. Dat is een stap te laat, want eventuele feedback kun je in een eerder stadium makkelijker, sneller en beter verwerken.

Een ander voordeel is dat de verschillende stakeholders via de URL’s altijd en overal mee kunnen kijken, zonder dat ze software hoeven te installeren. Hierdoor verbetert de kwaliteit van de feedback en komt deze ook vaak sneller binnen, wat het eindresultaat ook weer zal verbeteren.

Maximaal schaalbaar

Schaalbaarheid is 1 van de toverwoorden van Kubernetes. Je kunt er bijvoorbeeld de productie-omgeving eenvoudig mee opschalen voor een druk seizoen of als er een grote marketingcampagne draait.

Daarnaast kan ook de hoeveelheid features die wordt ontwikkeld, opgeschaald worden. Zo kunnen er verschillende teams aan 1 of meerdere features tegelijk werken, zonder dat dit het proces verandert. Door het goed opzetten van de lokale ontwikkelomgeving in Docker kunnen extra programmeurs ingezet worden en op dezelfde manier werken.

Kubernetes hosten

Zoals je al las, kun je Kubernetes zelf hosten, of het onderbrengen bij Google, Amazon of een andere cloudhostingpartij. Die keuze is behoorlijk belangrijk.

Bij Seleno kiezen we voor een private Kubernetes cluster bij onze lokale IT-partner in Groningen. Dat is de enige manier dat we zeker weten dat jouw data in Nederland wordt gehost. En dat is weer belangrijk vanwege de AVG, de privacywetgeving. We vinden het maar niks als er allerlei gevoelige data op Amerikaanse of andere servers buiten Nederland staan.

Dankzij deze oplossing hebben we de flexibiliteit van Kubernetes, hebben we meer controle op de inrichting van het cluster en weten we zeker waar de data is opgeslagen.

Daarnaast hebben we door deze samenwerking een team dat 24/7 klaar staat voor calamiteiten en hebben we een uptime-garantie van 99,9%. Zo kan Seleno zich volledig richten op de optimale structuur van applicaties in Kubernetes en de perfecte inrichting van een DevOps-omgeving.

Wil je meer weten over het ontwikkelen van applicaties in Kubernetes, en wat voor jou de voordelen zijn? We horen graag van je!