Dutch PHP conference 2017

Jesse van Muijden

Docker from Dev to Production

Jul 2017

The luxury fashion brand BALR. has grown exponentially since it was founded in 2013. As the online sales went through the roof, the web development team had to play catch-up. Nonetheless, our agile-minded stakeholders gave the in-house development team all the time needed to ‘do things right’ during the transition from a small web shop to an enterprise e-commerce application. We started out installing and deploying demo applications of a range of e-commerce platforms until we found the best match for our requirements. We only started working on features after having finished all the DevOps work. BALR. 2.0 became our first project where docker runs in the development, testing, acceptance and production environments, using one and the same Dockerfile. To assure the quality of our Symfony based e-commerce application, PHPUnit tests, phpspecs and behat scenarios are run by Travis CI for commits and pull requests. When all tests pass for a merge commit, Travis CI builds the application for the deployment environment corresponding to the branch merged into. Then, it automatically uploads the built application to the corresponding environment of our Amazon AWS Elastic Beanstalk (EB) application. EB supports docker and allows us to easily duplicate an entire AWS application configuration including security groups, regions, auto-scaling configurations, etc. with the click of a button. Standing on the shoulders of giants and really taking the time to work with the best modern tools available today has several advantages for our development process. We can keep our tooling and CI/CD process up-to-date with the latest technology in small incremental steps and, above all, the proportion of time the development team can focus on implementing business logic increased dramatically compared to earlier projects.


0 comment