In het eerste blog over dit onderwerp heb je gezien hoe je met Ansible 2 HAProxy loadbalancers met 3 NGINX webservers kunt installeren en configureren met Ansible. Dit noem je ook wel de "Day-1 Operations". Heb je het eerste blog nog niet gelezen? Doe dit dan eerst voordat je verder gaat.
In een echte wereld scenario draait er een applicatie op de webservers die bijdraagt aan de organisatie of een bedrijfsproces. In dit blog is dit een simpele website met de tekst "Application-X on ${servernaam}". De applicatie kan nu na de Day-1 Operations in gebruik genomen worden.
Vanaf dit punt en totdat de applicatie niet meer nodig is of vervangen wordt, zijn er "Day-2 Operations". Dit betreft alle activiteiten die nodig zijn om de applicatie draaiende te houden en te laten presteren zoals door de business verwacht wordt. Voorbeelden hiervan zijn monitoring, onderhoud, huishouding (bijv. log rotatie) en verbeteren om aan de vraag en verwachting te kunnen blijven voldoen. In dit blog ga ik hier een activiteit van uitlichten namelijk onderhoud en specifiek het installeren van updates zonder downtime op de webservers.
Rolling updates
Voor het uitvoeren van de updates maak ik een uitbreiding op de bestaande rollen en playbooks in Git. De code is beschikbaar op de Conclusion Xforce GitLab pagina hier.
Het update process ziet er als volgt uit:
- De webserver wordt uit de loadbalancer gehaald
- De updates worden uitgevoerd
- De webserver wordt herstart
- De webserver wordt weer toegevoegd aan de loadbalancer
Dit proces herhaalt zich tot alle webserver zijn geüpdatet. Laten we kijken hoe dit in een playbook eruit ziet. Review het het rolling_update.yml playbook.