Sugar 10 maakt DevOps een stukje makkelijker

Blog
04 Jun 2020
Jeroen Somhorst
blog jeroen devops afbeeling 350x250

Binnen Acuity hebben we, als het over ontwikkeling gaat, alles het liefst zo geautomatiseerd mogelijk. Ontwikkeling wordt gedaan, daar komt een zogenaamd ‘release package’ uit en deze wordt in combinatie met instructies op de TEST-omgeving van de klant geïnstalleerd.

Om het leven makkelijker te maken hebben we als SugarCRM-team een framework opgezet. Dit framework geeft ons de mogelijkheid zaken die we veel tegenkomen tijdens ontwikkeling via een commandline interface te doen. Denk hierbij aan het opschonen van de cache of het rebuilden. Ook heeft dit framework diverse functionaliteiten voor het starten van unit testen. Het controleren of de aanpassingen installeerbaar zijn in de cloud vallen hier ook onder. Dit gebeurt allemaal via de commandline.

 

 

Groot voordeel hiervan is dat we in diezelfde console commando’s uit kunnen voeren. We zitten immers toch al veel in de commandline om bijvoorbeeld logs te controleren. Stel dat we willen weten of de aanpassingen cloud ready zijn, dan kunnen we simpelweg een acuity:scan:restrictions aftrappen. Het resultaat verschijnt vervolgens netjes als een lijstje van wat er mis is en in welke file. Hier kunnen we dan actie op ondernemen. Een andere functionaliteit van het framework is het geautomatiseerd ‘builden’ van een release. Met dit script bouwen we de installer die we nodig hebben op de omgeving van de klant geautomatiseerd op. Hierdoor weten we zeker dat wat er in zit ook is wat we hebben ontwikkeld. We krijgen niet het probleem dat er in de manifestfile bestanden missen of dat we tijdens release vergeten zijn een bepaald veldje aan te maken. Dit zit namelijk allemaal in de release.

Automatiseren kun je leren
Een nog niet geautomatiseerde stap is het daadwerkelijk klaarzetten van deze release op de diverse omgevingen van de klant. De flow is namelijk vaak de volgende. De ontwikkelaar maakt gedurende een project wijzigingen in de lokale ontwikkelomgeving. Deze worden getest en vervolgens op de TEST-omgeving van de klant geïnstalleerd, waarna deze de wijzigingen zelf test. Als de klant goedkeuring geeft op de release kan deze worden geïnstalleerd op de ACC-omgeving. Daar wordt door de klant nog een test gedaan en uiteindelijk zal er een productierelease plaatsvinden. Dit zijn allemaal stuk voor stuk handmatige acties waarbij het een en ander mis kan gaan. Iemand kan bijvoorbeeld tijdens het selecteren van de release in de ontwikkelomgeving van een andere klant zitten. Ook kan er een oudere release worden gekozen. Deze fouten willen we voorkomen.

Module Loader Api
Sugar 10 brengt wat dat betreft licht in de duisternis. Sinds deze release is een deel van de Module Loader, het deel in Sugar waar installables worden geïnstalleerd, beschikbaar gesteld. In de huidige ontwikkelversie van het framework hebben we deze API’s ontsloten. Hiermee kunnen we per klantomgeving de volgende zaken regelen via de commandline:

  • Controleren welke releases er geïnstalleerd staan
  • Controleren welke releases er klaar staan om geïnstalleerd te worden.
  • Een release klaarzetten
  • Een release installeren
  • Een release verwijderen

We hopen met deze toevoeging aan ons framework dat onze werkzaamheden soepeler verlopen en eventuele releaseproblemen zoveel mogelijk te voorkomen. Het zal natuurlijk geen oplossing voor alles zijn. Immers, een release gaat ook vaak samen met het configureren van zaken als workflows, connectors of het aanmaken van Rapporten. Met het framework en deze nieuwe toevoeging hebben we een tool in handen waarbij we veel taken kunnen automatiseren. Daarbij maakt het niet uit of dat de klant in de cloud werkt of on premise zit.

Wil je meer weten over hoe wij releases doen of ontwikkelen voor Sugar? Neem dan gerust contact met ons op.