Blog

DevOps tools essentials, the workshop

At Kunlabora we think it’s important to grow our knowledge on many different topics, for this we organise: knowledge sharing afternoons, reading groups, brown bag sessions, etc. One of the skills that is becoming more and more important in the software development world is DevOps. This is why we created our own workshop.

What I mean by DevOps

Considering how DevOps is a bit of a buzz word, it might be important to say a word or two about what I mean by DevOps here. Even though we all agree that DevOps is a mindset rather than a set of tools, the focus here is exactly on those tools. Not because the tools are more important, but because a mindset can be developed over the course of many discussions, while tools require some focused attention to get a feeling for. And it is often easier to try something and adapt it guided by a mindset.

Approach

We first tried to assemble a DevOps starter kit to enable new projects to be started up quickly with a lot of built-in best practices. However using this starterkit still requires some basic understanding of the tools present in the kit. To make it more accessible we decided to also assemble a minimal version of it and use it as a 1 day DevOps workshop to teach as many people as possible in the company how to use the tools which help us implement DevOps.

The workshop

During the workshop participants were asked to:

  1. Run a Java Springboot application inside a Docker container
  2. Deploy a Docker image on EC2 through the AWS console
  3. Do the same deployment using Ansible
  4. Build a continuous deployment pipeline using a Jenkins File

Diagram of the workshop

The hope was to teach them the following practices:

  1. Continuous Integration
  2. Continuous Deployment
  3. Build once
  4. Infrastructure as code
  5. Self service infrastructure

One of the challenges was that there tends to be a large variety of pre-knowledge amongst our participants. To remediate that we asked all the participants to help each other out when someone got behind. We also experienced that even when everyone was doing pretty much the exact same thing, different issues arose with different people and thus we can realise how hard it is to create truly identical environments.

To keep the workshop short (1 day) we had to make some hard choices on what we could and could not teach. One of the bigger trade-offs we could not explain in a single day is how to setup a secure environment, with VPC’s, private subnets and a Bastion. However to minimize the impact of this, we offered a pre-configured security group to the participants, which limited the ip ranges to those that were specific to our location.

Conclusion

The feedback from the participants was very positive and they where happy to take some time to improve their skills on this subject. In the meanwhile we have already started a new project and the technologies used in this project did not align entirely with the starterkit. But the experience from the workshop was still very useful because we were able to more easily figure out the parts that were different.

For those interested in more details checkout the participant readme. This is the readme that the participants receive during the workshop to guide them through all the different steps. Or if you are interested to participate/host the workshop feel free to contact us.

Address
Diestsevest 32/0c
3000, Leuven
Connect with us