Onderhoud aan onze infrastructuur: overgang naar Kubernetes
door Emiel Bruijntjes
Om onze infrastructuur en software beter schaalbaar en beheersbaar te maken, en om minder kwetsbaar te zijn voor storingen, zijn we enkele maanden terug begonnen met het geleidelijk overstappen op een nieuw hostingplatform. Ons oude platform wordt hierbij stap voor stap omgezet naar een nieuw platform dat draait op Kubernetes. Dit is een state-of-the-art technologie, waardoor Copernica voorop blijft lopen als e-mail service provider. We kunnen hierdoor blijven meegroeien met de wensen en eisen van onze gebruikers.
Het transitieproces naar Kubernetes verloopt in stappen. De software van Copernica bestaat uit allerlei services die één voor één worden omgezet. Een aantal van deze services is al omgezet, terwijl andere services zoals API-servers, webservers, tracking servers en mailservers de komende dagen en weken zullen worden verhuisd.
Hoe zit het met Black Friday?
Black Friday is traditioneel de drukste dag van het jaar in de e-commercewereld. Ook voor Copernica. Rond deze periode vindt er natuurlijk geen grootschalig onderhoud plaats, en experimenteren we ook niet met nieuwe platformen. We zorgen dat we ruim voor deze tijd onze werkzaamheden hebben afgerond en dat er ruim voldoende capaciteit voorhanden is om de piekbelasting op te vangen.
Wat betekent de overgang voor Copernica-gebruikers?
We nemen tijdens de transitie maatregelen om te zorgen dat onze systemen goed beschikbaar blijven. Als we een service omzetten naar het nieuwe platform, installeren en testen we eerst de nieuwe omgeving. Pas daarna schakelen we het verkeer geleidelijk over van ons oude platform naar het nieuwe platform. Er is hierdoor geen periode waarin een systeem 'uit' staat of onbereikbaar is. Alles blijft operationeel. Mochten we bij een overstap toch tegen problemen aanlopen, dan hebben we de mogelijkheid om weer terug te schakelen naar het oude platform. Het meeste onderhoud vindt bovendien plaats tijdens aangekondigde 'maintenance windows' in de (Nederlandse) avonduren, of andere periodes waarin minder intensief van onze systemen gebruik wordt gemaakt.
Omdat bij de overstap ook allerlei nieuwe versies van besturingssystemen, libraries en modules worden ingezet, is het niet helemaal uit te sluiten dat er ook kleine veranderingen plaatsvinden in de werking of performance van de software. Mocht je op problemen stuiten, aarzel dan niet om contact op te nemen met onze support desk.
Omgaan met HTTP-headers en koppelingen met hardgecodeerde IP-adressen
Ondanks de voorzorgsmaatregelen is er voor een klein aantal gebruikers reden tot extra oplettendheid. Zo veranderen de IP-adressen van webservers, API-servers en picservers, en zullen webhooks en callbacks afkomstig zijn van andere adressen. Indien je in koppelingen gebruik maakt van hardgecodeerde IP-adressen verdient dit dus aandacht. Met de transitie naar Kubernetes worden we nu en in de toekomst flexibeler in de omgang met IP-adressen. Het advies luidt daarom om de IP-adressen van Copernica nooit hard te coderen, maar altijd enkel te verwijzen naar hostnames.
Ook kunnen er kleine verschillen zijn in de HTTP-headers die door onze calls of servers worden meegestuurd of teruggestuurd. Het nieuwe platform maakt gebruik van wat nieuwere software, en er kan in de headers dus opeens een ander versienummer of hostname staan. Mocht je hier op testen, dan verdient dit ook aandacht.
Wat is Kubernetes eigenlijk?
Kubernetes is een open source technologie die oorspronkelijk is ontwikkeld door Google, en waar clusters van servers, en de software die daar op draait, beter en makkelijker mee kunnen worden beheerd. Een Kubernetes-cluster bestaat uit gekoppelde servers die voor allerlei soorten taken kunnen worden ingezet. Software hoeft hierdoor niet meer op een server te worden geïnstalleerd, omdat Kubernetes er zelf voor zorgt dat taken en processen automatisch aan de daarvoor meest geschikte servers worden toegewezen.
En dit biedt allerlei voordelen. Zo is het veel makkelijker om op te schalen of af te schalen: je kunt met een enkele instructie aan Kubernetes vragen om meer webservers of API-servers op te starten als dat nodig is. Of om een nieuwe versie van een bepaalde service uit te rollen, of juist terug te stappen op een oude versie als een upgrade mislukt. Mochten er servers vanwege technische problemen uitvallen, dan zorgt Kubernetes er zelf voor dat de software die op die servers draaide automatisch wordt verhuisd naar andere servers.
Maar het vergt van programmeurs en systeembeheerders wel een andere manier van denken en werken. Je hoeft geen servers meer te installeren en te configureren, maar je bouwt zogenaamde containers. Dit zijn een soort gebundelde applicaties die door Kubernetes kunnen worden toegewezen aan servers.
Het gaat wat te ver om in dit artikel diep op de werking en details van Kubernetes in te gaan. Er zijn vele boeken en websites geschreven over Kubernetes, en bij Copernica maken we nu dus ook de overstap. Ons team is erg enthousiast, en we verwachten dat dit in de toekomst niet alleen ons werk makkelijker maakt, maar ook tot een grotere klanttevredenheid leidt, vanwege een grotere stabiliteit en omdat we ons hierdoor meer kunnen richten op klantfeatures.
Wat Copernica-gebruikers zelf kunnen doen
Zoals beschreven vindt onderhoud plaats buiten piekmomenten (in de avonden). Mocht je toch merken dat een bepaalde functionaliteit niet meer naar behoren werkt, bezoek dan status.copernica.nl. Daar staat een overzicht van onze storingen. Via het configuratiescherm op ms.copernica.com kan je onder 'notificaties' instellen hoe je meldingen wilt ontvangen over deze storingen. Je kan uiteraard ook altijd contact opnemen met onze support-afdeling.