Achter de schermen bij development: Google Cloud Adoption bij OBI4wan

Een van de belangrijkste aspecten van softwareontwikkeling is het testen, zeker als je software ontwikkelt voor duizenden klanten die met meerdere gebruikers tegelijk in een omgeving werken, zoals in OBI Engage of de OBI Brand Monitor. Ik sprak Matt Chapman, Backend Software Engineer bij OBI4wan. Hij geeft je een kijkje achter de schermen bij development en vertelt je in dit artikel alles over een van de belangrijkste recente projecten: het verbeteren van onze testomgevingen.

Kun je wat meer vertellen wat je wilde bereiken met Google Cloud Adoption bij OBI4wan?

Historisch gezien hebben we altijd al omgevingen gehad voor integratie- en acceptatietests. Wat we wilden doen is het volledig reproduceren van onze productiesystemen. Geïsoleerd en reproduceerbaar, zodat de omgevingen op elk moment afgebroken en opnieuw gebouwd konden worden als dat nodig was. Testomgevingen zijn van vitaal belang voor onze teams. Op deze manier kunnen zij hun werk veilig testen, zonder elkaar of onze klanten te beïnvloeden.

Een staging omgeving is een plek waar we ons eigen softwareproduct draaien, dat los staat van het product dat klanten gebruiken. We maken hier eerst wijzigingen, voordat we ze aan onze klanten vrijgeven.

Zonder staging omgevingen zouden we gelimiteerd zijn tot het draaien van testen in dezelfde omgeving als waarin de klanten ons product gebruiken. Zoals je je kunt voorstellen, kunnen fouten als enorm storend worden ervaren. Het is dan ook in ieders belang om risicovolle of experimentele veranderingen te testen op een plaats waar het onmogelijk is om klanten, of klanten van onze klanten, te beïnvloeden. Het hebben van deze staging omgevingen geeft onze teams een plek waar ze veilig kunnen experimenteren (en fouten kunnen maken!).

Hoe helpt het gebruik van cloudtechnologieën OBI4wan vooruit?

Cloud computing is de on-demand beschikbaarheid van computersystemen, met name gegevensopslag en rekenkracht, zonder direct actief beheer door de gebruiker.

“De cloud” is echt een technische term voor iemand anders zijn computer, als je erover nadenkt. OBI4wan onderhoudt een enorme hoeveelheid fysieke computer hardware om de producten te draaien, en al dat onderhoud kost behoorlijk wat tijd voor onze development afdeling.

Wat bedrijven zoals Google en Amazon Web Services leveren zijn in wezen on-demand, á la carte computing middelen. Ze leveren hardware, infrastructuur en software om dit alles te beheren. De software die we draaien blijft onze verantwoordelijkheid, maar we kunnen gebruikmaken van de enorme bestaande expertise van deze bedrijven, die een groot deel van de operationele werklast voor ons beheren. Dit geeft ons veel meer tijd om nieuwe functies te ontwikkelen en te reageren op de behoeften van de klant, en veel minder tijd voor het beheer van zaken als het controleren en vervangen van hardware of het up-to-date houden van software van derden.

Ook voor OBI4wan is er veel voordeel te behalen, omdat we buiten de Benelux aan het uitbreiden zijn. Cloud computing-bedrijven zorgen over de hele wereld voor deze middelen, wat betekent dat we klanten altijd en overal een geweldige ervaring kunnen bieden, ongeacht waar ze zich bevinden. Als een klant bijvoorbeeld vraagt om zijn gegevens op een bepaalde locatie op te slaan vanwege een audit of wettelijke vereisten, dan zou het voor ons een groot voordeel zijn om onze systemen in “de cloud” te hebben.

OBI4wan is al lange tijd klant van het Google Cloud Platform (GCP), met ons enorm succesvolle OBI Bots platform dat al draait op Google diensten en infrastructuur. Met een aanzienlijke hoeveelheid cloud native ontwikkeling op onze roadmap, en de verschuiving van onze on-premise workloads naar de cloud, zou het bouwen van nieuwe testomgevingen voor OBI Engage (die altijd on-premise is uitgevoerd) een uitstekende proeftuin zijn voor deze toekomstige projecten. Het was dan ook logisch dat deze nieuwe systemen ook op GCP zouden draaien.

Hoe heb je dit voor elkaar gekregen?

Op basis van onze ervaringen met onze bestaande on-premise testomgevingen hadden we al een goed idee van hoe we deze nieuwe omgevingen in Google Cloud Platform wilden bouwen. Reproduceerbaarheid was de sleutel – het zou enorm nuttig zijn om te kunnen herbouwen als er iets kapot gaat, of om te dupliceren als we meer capaciteit nodig hebben. Het was ook nodig om ervoor te zorgen dat de implementatie van nieuwe softwareversies zo geautomatiseerd mogelijk was – zelfs onze meest jonge ontwikkelaars zouden in staat moeten zijn om veranderingen met slechts een paar klikken door te voeren.

Om dit te bereiken werken we samen met Binx.io, een adviesbureau dat gespecialiseerd is in het helpen van bedrijven bij het invoeren van cloud based platformen en technologieën. Met hun hulp konden we onze nieuwe stagingomgevingen in Google Cloud Platform plannen en bouwen. Terraform gebruiken we om al onze infrastructuur als code op te slaan. Dit betekent dat al onze nieuwe omgevingen worden gedefinieerd als code, in plaats van een lijst met instructies die door een mens moeten worden opgevolgd – waardoor we veranderingen in al deze omgevingen tegelijk kunnen automatiseren en wijzigingen in de infrastructuur kunnen onderwerpen aan dezelfde review- en versiecontrole processen als onze andere code. In plaats van de systemen te vertellen wat ze moeten doen, vertellen we ze gewoon hoe we willen dat de dingen eruit zien als ze klaar zijn – en Google Cloud Platform handelt de rest af!

Een geheel nieuwe, schone omgeving is nu gewoon een kwestie van een paar regels code – en een klus die tot enkele dagen zou duren om goed te klaren, is volledig geautomatiseerd met een minimum aan handmatig werk. Google Cloud Platform behandelt al onze toegangscontrole- en authenticatiebehoeften om deze systemen veilig te houden, zodat alleen ontwikkelaars van OBI4wan er toegang toe hebben en ze kunnen gebruiken, of er wijzigingen in kunnen aanbrengen. Het feit dat we GSuite intern gebruiken voor personeelsaccounts, betekent dat we precies dezelfde referenties kunnen gebruiken om de toegang tot de gegevens en de code die wordt ingezet te controleren.

Hoe gebruiken developers bij OBI4wan deze nieuwe omgevingen?

We hebben gebruik gemaakt van onze bestaande Azure Pipelines setup die wordt gebruikt voor het automatisch bouwen en testen, en hebben deze uitgebreid om met één muisklik implementaties mogelijk te maken naar staging omgevingen in Google Cloud Platform. Nieuwe versies van onze software worden automatisch gegenereerd en getest als ontwikkelaars hun wijzigingen ter beoordeling voorleggen aan hun collega’s, en nu kunnen deze builds snel en automatisch worden ingezet in elke omgeving in minder dan een minuut. Dit kan een enorme impact hebben op de tijdskosten voor het testen van wijzigingen en geeft ons meer tijd om ervoor te zorgen dat de kwaliteit van ons werk zo hoog mogelijk is.

Zodra de nieuwe versie van onze software op de juiste plaats is, kunnen ze gewoon naar hun browser gaan gebruiken en deze controleren en delen met hun collega’s.

In de toekomst zou het fijn zijn om dit soort “one click” functionaliteit uit te breiden naar onze klantgerichte systemen – continue levering van software aan klanten is een van de doelen die we nastreven. Ik wil op een punt komen waarop we onze klanten meerdere malen per dag, 5 dagen per week, zonder enige verstoring, naadloos van updates voorzien!

Wat is het volgende project op de roadmap van development?

Zoals ik al zei – dit was slechts het eerste van vele projecten die we op onze roadmap voor dit jaar hebben staan. OBI4wan gaat “all in” op cloud technologieën. De voordelen die het gebruik van dit soort technologieën ons kan bieden zijn enorm, en zullen ons helpen de producten en functies te leveren die onze klanten nodig hebben, in een veel versneld tempo.

Er zijn een veel hulpprogramma’s en diensten die we intern bij OBI4wan draaien, die elk een doel dienen. Of dat nu het leveren van functies is zoals realtime meldingen in je browser, zoeken, of het verzenden van klanttevredenheidsonderzoeken. Door deze services naar de cloud te verplaatsen, kunnen we dezelfde voordelen benutten als wanneer we onze staging omgevingen naar de cloud verplaatsen – snellere levering van wijzigingen, minder operationele werklast en als gevolg daarvan een product van hogere kwaliteit.

Ook deel uitmaken van onze development projecten? Join the team!

We zijn altijd op zoek naar nieuw talent! Interesse in een functie? Bekijk hier de vacatures of stuur een open sollicitatie naar clariva@obi4wan.com.

Recent Posts