Kubernetes in de Cloud: Een Gids voor Observatie

Volgens het gezegde “Als je het niet meet, kun je het niet beheren” van Deming, is observability en monitoring onze manier om onze diensten te meten.

Kubernetes is behoorlijk revolutionair als het gaat om de manier waarop het implementaties beheert en schaalt. Maar de manier waarop containers continu worden aangemaakt en vernietigd kan soms uitdagingen met monitoring met zich meebrengen. Dit is waar observability in beeld komt, en het biedt cruciale inzichten in hoe je systeem presteert en waarom problemen zich voordoen.

Wil je de terminologie van Kubernetes opnieuw bekijken? Lees Demystifying Kubernetes in 5 Minutes.

Wat is Observability in Kubernetes?

Mensen gebruiken graag Observability als een verzamelterm. Maar meestal betekent het metrics, logs en traces. Het is alsof je een lens hebt op het hart van je applicaties en infrastructuur. Door deze output te verzamelen en te analyseren, helpt observability je potentiële problemen op te sporen voordat ze de service verstoren en de algehele systeemprestaties te optimaliseren.

Drie dingen die in me opkomen zijn:

Metrics

Dit zijn cijfers, en ze bieden gegevens over het gebruik van middelen, foutpercentages en prestaties. Een paar populaire metrics zijn CPU-gebruik en geheugengebruik in procenten, samen met aanvullende metadata over de metrics zelf (soms dimensies genoemd).

Logs

Logboeken bieden een gedetailleerde geschiedenis van gebeurtenissen binnen uw systeem, zoals fouten of gebruikersacties. Ze bieden context voor het oplossen van problemen en het begrijpen van applicatiegedrag. Ik weet zeker dat je eerder een “logboek” hebt gezien: 

SystemVerilog

 

Traces

Tracing biedt een end-to-end weergave van verzoeken terwijl ze door services gaan, wat helpt bij het identificeren van knelpunten of latentieproblemen. Door verzoeken over meerdere microservices te volgen, kunt u bepalen waar prestatieproblemen ontstaan.

Logboeken en traceringen klinken misschien vergelijkbaar, maar ze zijn verschillend. Denk aan logboeken als een momentopname van wat er is gebeurd, terwijl traceringen u vertellen hoe en waarom het is gebeurd in het hele systeem.

Observabiliteit is niet echt beperkt tot één rol in een organisatie, het is zelf een essentieel stuk informatie dat wordt doorgegeven tussen verschillende rollen. Bijvoorbeeld, als software-ingenieur instrumenteer je de toepassingscode met metingen, logboeken en traceringen. Nu heb je iets nodig om deze gegevens te verzamelen, op te slaan en te analyseren, door gebruik te maken van tools zoals Prometheus voor metingen en Jaeger voor traceringen.

Als je nog niet overtuigd bent van Observabiliteit, zal ik samenvatten:

  1. Het zorgt ervoor dat alles soepel en efficiënt verloopt door prestatieknelpunten te identificeren.
  2. Het verbetert de weerbaarheid van het systeem en helpt applicaties snel te herstellen van storingen (hopelijk).
  3. Continue monitoring stelt teams in staat om vroegtijdig afwijkingen te detecteren, waardoor beveiligingsinbreuken worden voorkomen en gevoelige gegevens worden beschermd.
  4. Je kunt een prachtig uitziend dashboard bouwen, dat je helpt om betere inzichten te krijgen in de systeemprestaties. Het kan zelfs helpen om aanzienlijke infrastructuurkosten te besparen (ik kijk naar jou, AWS!).

Wacht, ik heb hierboven ook Monitoring genoemd. Dus wat is dat en hoe verschilt DAT?

Hoewel observeerbaarheid en monitoring gerelateerd zijn, hebben ze verschillende doelen. Monitoring omvat het instellen van vooraf gedefinieerde controles/alerts om ervoor te zorgen dat een systeem binnen acceptabele parameters functioneert, volgens jouw SLA’s/SLO’s. Observeerbaarheid daarentegen gaat verder door een uitgebreid begrip van systeemgedrag te bieden. Het gaat er niet alleen om te weten wanneer iets kapot gaat; het gaat erom te begrijpen waarom en hoe het is gebeurd. Zowel monitoring als observeerbaarheid zijn essentieel voor effectief systeembeheer.

Belangrijk: OpenTelemetry

OpenTelemetry (ook wel OTel genoemd) is een toonaangevende open-source verzameling van API’s, SDK’s en tools. Gebruik het om te instrumenteren, gegevens te genereren, te verzamelen en te exporteren (metrics, logs en traces) om je te helpen bij het analyseren van de prestaties en het gedrag van je software. OpenTelemetry integreert met veel populaire bibliotheken en frameworks, en ondersteunt codegebaseerde en zero-code instrumentatie in diverse Kubernetes-omgevingen.

Conclusie

Om af te sluiten, Observability is meer dan een technische vereiste – het is een strategische noodzaak voor organisaties die voorop willen blijven lopen in de competitieve markt van vandaag. Door gebruik te maken van de juiste tools en strategieën, zoals OTel voor geünificeerde gegevensverzameling, kunnen organisaties hun Kubernetes-toepassingen monitoren, problemen oplossen en continu optimaliseren. Door een beter zicht op systeemprestaties kunnen organisaties datagestuurde beslissingen nemen, de betrouwbaarheid van toepassingen verbeteren en bedrijfsdoelen effectiever bereiken.

Ik weet niet wie dit heeft gezegd, maar ik hou van dit citaat: Stop met gissen, begin met weten!

Source:
https://dzone.com/articles/the-must-have-guide-to-kubernetes-observability