Kubernetes: automatiseer de configuratie voor maximaal resultaat

Met Terraform richt je de beste infrastructuur in voor Kubernetes, die je vervolgens met Application Insights monitort. Die automatisering biedt veel voordelen.

 

In een reeks van vier blogs vertellen we je over de voordelen en toepassing van Kubernetes. In de eerste blog lieten we zien hoe deze slimme oplossing om capaciteit uit te breiden naar gebruik, werkt door applicaties horizontaal te schalen. Hoe je checkt of dat mogelijk is voor jouw applicatie, leggen we uit in de 2e blog. In de derde blog bespreken we een praktijkcase. En in deze laatste blog leggen we je uit hoe je de resultaten van Kubernetes maximaliseert door zoveel mogelijk te automatiseren tijdens de configuratie.

Voordelen van het automatiseren van Kubernetes

Bij Open Circle Solutions gebruiken we de open source-tool Terraform om het configureren van Kubernetes zoveel mogelijk te automatiseren. Dat heeft grote voordelen:

  • korte ontwikkeltijd
  • makkelijk aanpassingen doen (na oplevering)
  • provider-onafhankelijke oplossing
  • automatische naamconventie
  • uniformiteit (makkelijk in beheer en monitoring)
  • reproduceerbaarheid (clusters en omgeving)
  • minder foutgevoelig
  • meer inzicht in kosten en performance

Automatiseren is dus de moeite waard. Om uit te leggen wat je kunt automatiseren, doorlopen we het hele transitieproces stap voor stap. Je krijgt hierbij bovendien een goed beeld van wat je mag verwachten van een dergelijk traject. De eerste stap is zoals altijd het architectuurontwerp, dan volgt de configuratie met Terraform, deployment van de app en uiteindelijk de feitelijke transitie.

Stap 1

Architectuurontwerp

Om de architectuur van een Kubernetes-platform te ontwerpen, wordt eerst bepaald:

  • Welke services zijn er nodig?
  • Hoe groot moeten de nodes (machines) zijn waar Kubernetes op draait?
  • Hoeveel verwachten we dat deze gaat op- en afschalen?
  • Willen we dat het cluster opschaalt zonder begrenzingen of stellen we een grens aan het maximum aantal servers?
  • De netwerkconnectiviteit, zoals toegang tot de database en toegang van buitenaf.
  • Opbouw van het databasecluster en het Kubernetes-cluster.
  • Inrichting van de beveiliging:
    • identificatie van gebruikers en SSO
    • applicatie firewall en reverse proxy.

Met deze input wordt de architectuurplaat ontworpen.

Wat is een reverse proxy?

De reverse proxy – bijvoorbeeld Front Door van Microsoft – zorgt voor veilige toegang overal vandaan. Het werkt zo: wanneer een gebruiker een aanvraag doet, verwijst de DNS-server naar een lokaal IP-adres van Front Door. In Duitsland krijgt de gebruiker dus een ander IP-adres dan in Japan. Dit IP-adres is altijd binnen het MS-netwerk en gegarandeerd snel. Deze tussenliggende proxyserver haalt namens de client gegevens op bij de bron (het Kubernetes-cluster) en stuurt het antwoord terug. Voor de client lijkt het alsof hij direct met de applicatie communiceert, maar door de tussenkomst van de proxy server is er nooit een directe link naar het Kubernetes-cluster. Dit draagt bij aan de veiligheid van de oplossing.

OCS-mobile-app-usage

Stap 2

Configuratie van de infrastructuur met behulp van Terraform

De omgevingen worden volgens het ontwerp aangemaakt in een Managed Kubernetes Cluster dienst, zoals Microsoft Azure Kubernetes Services (AKS). Je kunt in Azure de verschillende componenten stuk voor stuk aanklikken, maar wanneer je meerdere omgevingen aanmaakt met meerdere componenten, is dat niet efficiënt. Daarom maken wij gebruik van Terraform. Dit is een open source software tool waarbij de infrastructuur in code wordt vastgelegd. De definitie van de infrastructuur wordt ingevoerd: “een Kubernetes-cluster met zoveel nodes, gekoppeld aan die database, op dat netwerk en die naamgevingsconventie” etcetera. Vervolgens gaat Terraform een plan maken. Na akkoord gaat hij de omgeving configureren.

Wil je op een later moment iets wijzigen, dan voer je de nieuwe gegevens in de configuratie in; Terraform berekent of dat in de huidige opzet kan of dat hij een nieuw cluster moet aanmaken. Dit doet hij naast het bestaande cluster, tot je akkoord geeft om over te stappen.

Zo bouw je eerst een testomgeving, die je eenvoudig kopieert naar een acceptatie- en productieomgeving. Omdat Terraform als code objectgeoriënteerd is, kun je eenvoudig clusters kopiëren. Wij kiezen ervoor om cluster voor cluster alles iteratief op te bouwen. Dat zorgt voor goed overzicht. De naamgeving past zich automatisch aan naar de betreffende omgeving, wanneer je naamconventie toevoegt in je configuratiebestand.

Op deze manier kun je met Terraform heel snel en tegelijkertijd veilig en stabiel je infrastructuur creëren, wijzigen en verbeteren.

Stap 3

Applicatie deployen

Als de infrastructuur staat, wordt het tijd om de applicatie te deployen. Hiervoor maken we bij OCS gebruik van Continuous Integration/Continous Development (CI/CD) waarbij ontwikkelaars samenwerken in één centrale repository. Dat maakt het mogelijk om sneller en continu, maar toch veilig, te ontwikkelen en op te leveren. Van hieruit leveren we de applicatie op naar het betreffende Kubernetes-cluster, die vervolgens overgaat naar de opgebouwde infrastructuur.

Stap 4

Transitie van oude naar nieuwe omgeving

Als de applicatie in de infrastructuur staat, wordt het tijd om de data en gebruikersgegevens over te zetten. Eenmaal zover, verifiëren we uitgebreid de data, werking en veiligheid. Dit overzetten van de applicatie en bijbehorende data doen we, als het kan, buiten kantooruren, zodat gebruikers zo min mogelijk gehinderd worden. Als alles goed loopt in de nieuwe omgeving wordt de oude omgeving uitgefaseerd.

Opvolging: inzicht in performance dankzij continue monitoring (met Application Insights)

De applicatie is na oplevering direct te gebruiken voor medewerkers. Wel monitoren we deze vanaf het begin met behulp van Azure Application Insights. Hiermee meet je de real-time performance van de app. Als er knelpunten zijn, kun je dat direct zien.

Wat kan Kubernetes jullie organisatie opleveren?

Hebben jullie een applicatie of server die steeds vastloopt? Dan kan Kubernetes de oplossing zijn om capaciteit uit te breiden. Het totale traject duurt, afhankelijk van de applicatie, jullie wensen en de omgeving, een paar weken. In die korte tijd wordt een lange termijn oplossing gecreëerd waar zowel beheer als eindgebruikers baat bij hebben.

Wil je weten wat er mogelijk is voor jullie applicaties? Lees dan onze andere blogs (1, 2 en 3) over Kubernetes of neem direct contact voor een advies op maat. Stuur een mail of bel naar +31 40 30 41 330 om eens te sparren. Het zal je verrassen wat er mogelijk is. Wij denken met je mee en geven proactief advies.

omslag-ebook-cloud

e-book

Ontsluit de mogelijkheden van de cloud met cloud-native applicaties

Meer artikelen

OCS Familiedag: op naar Phantasialand

OCS Familiedag: op naar Phantasialand

Je bent zo goed in je werk als je je voelt. Dat je goed voor je mensen moet zorgen, ook buiten het werk om, is één van de pijlers onder onze organisatie. En dat is bij Open Circle Solutions niets nieuws. Daarom is er veel ruimte voor ontspanning en sociale interactie....

Khanh Long Tang, junior consultant

Khanh Long Tang, junior consultant

Khanh Long Tang is sinds begin maart in dienst als junior consultant bij OCS. Hij werkt daar aan het golfmanagementsysteem van Bernardus. Als golfbaan die zijn klanten een unieke en bijzondere ervaring wil meegeven, zijn ze elk jaar op zoek naar manieren waarop het...

Mark Donker, junior consultant en full stack developer

Mark Donker, junior consultant en full stack developer

Mark is, op het moment dat we hem spreken, splinternieuw: net twee weken in functie als junior consultant/full stack developer. Mark heeft, zoals zoveel jonge mensen tegenwoordig, een wat slingerend pad bewandeld voordat hij bij OCS terechtkwam. Opleiding in meerdere...

Nieuwsbrief

Meld je nu aan voor Open Circle Stories en krijg een verzameling artikelen, tips, nieuws en verdiepingen in je mailbox.

Pin It on Pinterest

Share This