Alkemics platform ● Automation ○ No more excel files ○ Import/export system ○ Data quality control ○ Accelerate content updates ● Network ○ Connect to retailers, manufacturers and third parties ○ France, aiming for the world
Jenkins definition ● Pipeline job is a job described with a Jenkinsfile for each integration branch ● Jenkinsfile ○ Define a workflow to run tests and deployment in groovy ○ Stored in service repository ● Dedicated groovy lib to share functions between all Jenkinsfile
Introducing Pillar ● Python tool designed to ○ Create complete environment from scratch ○ Orchestrate docker instances ○ Seed data according to pre made scenarios
SQL schema changes ● No manual ALTER ● shmig ○ Included in the repository ○ Run when deploying in any environment ○ Periodic merge to speed up tests execution
Results Average time to build and test Bugs identified by customers between 2016 and 2017 3 min 35 sec - 28 % “Pillar made my skin 51 % softer.” Youcef Mammar, Software Engineer, Alkemics
What we have learnt ● Building an existing platform from scratch is long and sometimes complex ● External services are complicated to manage ○ Use Mock when possible ● Backward compatibility is mandatory