Self-healing ============ Wat is self-healing ``````````````````` Auto-healing, of het automatisch herstellen van services is een veel gebruikte capability op publieke cloud. Dit doordat er altijd gemakkelijk nieuwe resources aangemaakt kunnen worden ter vervanging van unhealthy (ongezonde - niet functionerende) resources. Het is mogelijk om healthchecks uit te voeren op de instances die deel uitmaken van de applicatielaag. Is een instance niet meer gezond, dan kan deze automatisch afgesloten worden, en kan er een nieuwe instance in de plaats komen. Dit model laat toe om de infrastructuur auto-healing of self-healing te maken, wat al snel resulteert in een paar nachtelijke incidenten minder voor het operations of monitoring team. DBaaS en andere producten die aangeboden worden als een service hebben typisch deze healthchecks ingebouwd. Wanneer multi-az geconfigureerd wordt op een database, dan worden deze healthchecks automatisch uitgevoerd en dan wordt, transparant voor de eindgebruiker, de master database automatisch vervangen door een standby database. Naar de eindgebruiker toe betekent dit een verbetering van de klantervaring. Een slecht functionerend deel van de infrastructuur kan snel geïsoleerd en vervangen worden door nieuwe goedwerkende resources. In een wereld waar hardware en software failures zeer courant zijn, geeft dit veel meer zekerheid om applicaties altijd beschikbaar te houden voor de eindgebruikers. Self-healing in detail `````````````````````` AWS, Azure, en Google cloud bieden load balancers aan die kunnen nagaan of hun onderliggende resources (de instances) gezond zijn. Deze healthchecks worden typisch uitgevoerd met een TCP ping op een bepaalde poort of een HTTP call uit te voeren. De applicatie kan zelf ook programmatuur uitvoeren om na te gaan of de instance healthy is. Ook Andere metrics kunnen in acht genomen worden bij het bepalen van de instance status is. AWS heeft indicatoren die een alarmstatus geven wanneer er iets mis gaat met de onderliggende hardware, vaak nog voordat een impact merkbaar is. Onderstaande architectuurdiagram geeft self-healing weer op de AWS cloud. De Load Balancers voeren healthchecks uit om na te gaan of de instance nog gezond is. In het geval deze niet gezond is, dan wordt er geen dataverkeer meer gestuurd naar de betreffende instance. Het is dan aan het autoscaling mechanisme om een nieuwe instance te starten. Met de database is het anders, omdat relationele databases altijd maar 1 master hebben. Hier wordt dan gebruik gemaakt van een DNS record met een zeer lage TTL (time to live). Stopt de master database met werken, dan wordt het DNS record aangepast en wordt het databaseverkeer naar de Standby node gestuurd, die op dat moment de master zal vervangen. .. image:: images/selfhealing-1.png :target: /_images/selfhealing-1.png De autoscaling group die de instance gaat vervangen is niet afgebeeld op dit architectuurdiagram. Vanaf er een instance minder is (omdat deze uit roulatie genomen werd), ziet de autoscaling group dat er minder instances zijn om aan de huidige vraag te voldoen. De autoscaling instance zal dan instructies geven om automatisch een nieuwe instance te starten. .. only:: html .. image:: images/contact-in4it.png :target: http://www.in4it.io/contact?message=Ik%20wens%20een%20vrijblijvend%20gesprek%20aan%20te%20vragen