The Java user group of Switzerland organised a continuous delivery workshop last night, which was run by Oliver Nautsch, with a really nice structure. Oliver has documented the process, with slides in GitHub, so if anyone missed the session, you can run through the exercises in your own time.
Before the session we were given instructions describing what we would need to install on our laptops ahead of time. This basically involved cloning a github repository and then using vagrant to start up a Linux virtual machine.
Within the Virtual machine was everything needed for the session, including the whole continuous delivery stack, and an example project which would be used for the hands on exercises.
Instructions for the workshop can again be found in github but the general gist was to:
- Setup our infrastructure (code and artefact repositories, build server, deployment environment) using docker
- Upload the application code to a central (gogs) git repository
- Use Jenkins as a CI server to build the application code, with Gradle scripts.
- Start setting up the whole continuous delivery pipeline in Jenkins pushing the tested application to our various environments.
Between the exercises there were discussions on continuous integration vs continuous delivery vs continuous deployment. We spoke about why you would want to do any of these things, and covered some best practices. However, in a three hour session it difficult to get into any real depth, and I feel that Oliver did a great job.
One really nice surprise was the quality of refreshments provided by CSS who also provided the facilities, so a big thanks to them for sponsoring the evening.