“Berserker – an ancient norse warrior who fought in a wild frenzy”
What a wild and unrestrained first day at the #DOG18! Today there were supposed to be some workshops, but instead there was a portal to a new incredible dimension or maybe a flight to a galaxy far far away in some kind of hyperspace: so many information and hands-on experiences compressed into that tiny timespan of a day!
Building a Self-Sufficient System
“So, what happens here?” the Docker Captain Victor Farcic has mentioned it at his glorious workshop “Building a Self-Sufficient System”. He demonstrated us the building of a system that is self-sufficient and works (almost) without human intervention. That means that it has to have:
- immutable,
- dynamic,
- elastic
- and automatic
infrastructure. You can compare those systems to a human body: they are self healing and self adapting.
To achieve this goal first of all good (pull) metrics are needed measuring all the needed KPI’s. It should be powerful enough to provide a robust query language and the possibility to automatically react to alerts. The humans shouldn’t be bothered at all – “good news are no news”. Only if a system finds something completely unforeseen for a sufficient long period of time there should be a human readable alert (e.g. via SLACK).
Based on this automatic alert management you can build the self healing system which tries to shut down a failed container and start a new one without any human intervention.
You can have a self adapting system as well using the metrics to start a new pipeline scaling the infrastructure by adding a new servicecontainer completly automatically.
To demonstrate such a system Victor used the Amazon Web Services (AWS), Docker and Kubernetes.
As you can imagine this is a lot of exciting stuff so Victor had to go into the berserk mode to show all this to us on time.
You can read his slides here: http://vfarcic.github.io/devops22/workshop-short.html#/cover
A Great Meal For Successful Warriors
After the turbo morning we had a great and tasty lunch brought us by a caterer with a funny “denglish” name:“Butcherei Bochum”. I forgot to take
pictures of my meal for social media so I had to refill my plates again. And then it was a pity to waste the good meal so the inevitable happened: I had to eat the second helping! But then someone mentioned, that there were no vegetables on the plate and so it happened again…
Building a Modern CI / CD Pipeline (with Docker and Kubernetes)
After the good meal I was feeling a little bit dizzy, but the next workshop woke me up immediately, because now we went into the details of building proper Continuous Integration (CI) and Continuous Delivery (CD) with pipelines using Jenkins, Docker and Kubernetes. This was needed to build and react to the alerts of a self-sufficient system mentioned in the morning. This workshop was presented by Anton Weiss.
“Continuous Delivery (CD) is a software engineering approach in which teams keep producing valuable software in short cycles and ensure that the software can be reliably released at any time.”
“The principles of continuous delivery are
- The process for releasing/deploying software MUST be repeatable and reliable
- Automate everything!
- Bring the pain forward
- Keep everything in source control
- Build quality in
- Everybody has responsibility for the release process
- Improve continuously”
Or in other words: if you want to do the Continuous Delivery you have to build microservices which are small enough to be reliably handled in short cycles.
So we build some example microservices from scratch using Google Cloud Platform and some prepared git sources and docker images. With that base we did some experiments controlling the swarm of several clusters and stages trying to build and deploy them automatically.
And believe it or not – we found ourselves in the middle of a war! The war between the followers of Jenkins and of Gitlab CI. Boy, there were very hot-headed discussions of the pros and cons of both systems!
The slides of the workshop can be found here: https://goo.gl/GYdqNw.
A bunch of new Ideas
Yes, there were many new experiences and insights I gathered for my daily work today. I was really impressed by the good organization and sophisticated workshops where you could try things you don’t really have the time for in the heat of the battle of daily business.
Tomorrow I’m really looking forward for the incredibly interesting talks and the party in the evening.
Quotes
As an add-on to this article I have collected all the remarkable quotes of the speakers and participants. Enjoy:
- “No slack notification unless something happens that wasn’t seen before.”
- “Define maximum size of memory to kill the memory leaking service before it takes effect on the other services.”
- “An alert should be sent only once with the big delay for repetition”
- “A system has to be small: it is easier to move a small system than a big system between the stages.”
- “If you haven’t docker in use online, you haven’t docker in use at all.”
- “You never tell a swarm what to do!”
- “Magic is happening…”
- “Good news are no news.”
- “That is the whole thing with continuous delivery: you have to find the issue.”
- “Pipelines make all work visible.”
- “This is the joy of working with living technologies – they change while working with them.”
- “We don’t see the master – Google hides it – we can communicate with it, but we don’t see it.”
- “Google was using containers 10 years before Docker, but told it to nobody.”