AMEXIO ontwikkelt voor klanten oplossingen in Adobe Experience Manager (AEM), een op Java gebaseerd CMS-systeem. Voor deze projecten is een buildstraat ingericht die bij elke wijziging de code bouwt, test en controleert op kwaliteit, bijvoorbeeld met unit tests, linting en statische code-analyse zoals SonarQube. Binnen AMEXIO worden hiervoor verschillende CI/CD-platformen gebruikt: Jenkins, GitLab CI en GitHub Actions.
Voor één van onze projecten kan een volledige run van deze buildstraat op de CI-server ongeveer 15 minuten duren. Dezelfde stappen draaien lokaal op de machine van een ontwikkelaar in ongeveer 3 minuten. Ontwikkelaars pushen hun wijzigingen vaak eerst en wachten op de remote pipeline om te weten of alles goed is. Dit brengt een aantal uitdagingen met zich mee:
Het is nog niet duidelijk welk deel van de tijd waaraan opgaat, en welke stappen veilig en betrouwbaar lokaal kunnen draaien. Belangrijke vragen hierbij zijn:
Het doel van deze opdracht is om te onderzoeken hoe een hybride buildstraat voor AEM/Java-projecten kan worden opgezet, en om op basis van dit onderzoek een prototype te ontwikkelen. Je gaat onderzoeken hoe een oplossing kan worden ingericht die:
Daarnaast onderzoek je of de remote buildstraat zelf sneller gemaakt kan worden, bijvoorbeeld met caching, parallelle stages of persistente agents.
4e-jaars Software of DevOps/Infrastructure student
De opdracht vereist zowel onderzoeksvaardigheden als praktische softwareontwikkeling. Op het eerste gezicht lijkt het lokaal draaien van een pipeline eenvoudig, maar in de praktijk is het lastig om lokaal exact hetzelfde resultaat te krijgen als in CI. Je gaat onder andere:
Daarnaast moet je de oplossing helder documenteren en presenteren aan stakeholders.
Je krijgt ruimte om zelf geschikte tools te onderzoeken en te gebruiken. Het Jenkins-platform heeft onze voorkeur, maar ook andere tools mogen in het onderzoek worden meegenomen. Mogelijke categorieën van tools zijn:
De uiteindelijke toolkeuze onderbouw je in het onderzoeksrapport.