Summary: These are my thoughts on the Mirantis Kubernetes and Docker bootcamp (KD110) that also includes the practical hands-on exam KCM100.
Some general thoughts on when to go on a training
This week I sat the Mirantis “Kubernetes and Docker bootcamp” (KD110), which is a two-day training that includes the KCM100 (Kubernetes certification by Mirantis) exam on the third day. Similarly to my previous blog post that summarizes my experience with the Mirantis OpenStack bootcamp I’ve attended, I wanted to write about my experience and thoughts regarding this training. I normally don’t attend trainings so often as a student, since my main job is being a consultant and long-time instructor (going back into 1999 when I started to teach Microsoft & Novell trainings, and I became a VMware Certified Instructor (VCI) when ESX 2.x was still the current version – ages ago. In general, I’m also more the autodidact kind of person, who likes to try things out first – I normally like to have hands-on-experience and “feel” the technology before I start to read and fill the gaps.
For new topics that are sufficiently complex, however, I do like to complement my own study with good and intensive trainings. I would consider things like OpenStack, container technologies, and new developments in network virtualization or cloud computing topics of high complexity.
So, I definitely recommend attending a training on complex, (relatively) new topics like VMware NSX, AWS, Microsoft Azure, OpenStack or containers to get a head start into the technology and not to waste time with experimenting and then doing it the wrong way!
As my esteemed colleague and friend Tschokko is putting it:
“While open-source technologies like OpenStack or Kubernetes are great in itself, there is so much that can go wrong, that you can misconfigure – so the risk is extremely high that you will end up with problems in operations etc. if you are not doing it right.”
So, make no mistake, a training that will give you a good start with a complex technology is definitely a good investment.
The training itself
I attended the three-day training in classroom in Warsaw from Wednesday to Friday, while some students were joining the same training in a live online fashion via the Zoom platform that Mirantis uses. Blending on-site students and remote participants did not hamper the training flow in any way – whenever someone who was attending remotely asked a question, everybody could hear it out loud – so there was no friction at all caused by this hybrid delivery format.
The venue in Warsaw was perfectly located and offered all necessary characteristics to make for a good training, the room was spacious, Internet connection (used for the labs and the exams) was fast and stable.
I’ve already known the instructor, Grzegorz Pawelski, from the previous training on OpenStack that I attended. He was very knowledgeable, delivered the training in a professional fashion and was able to answer all questions that came up. He even extended on the official course materials by giving an in-depth overview on software-defined networking topics in a containerized environment.
For those interested in attending remotely: Mirantis training is using the Zoom platform to connect the instructor and the students, which is very similar to the Webex or GoToMeeting platforms. In the invite email for the training, Mirantis asks all students to join the live training with their webcam enabled to improve interactivity between the instructor and the students – a very good recommendation, since seeing who is talking really makes a difference.
The course agenda itself can be found in the official course description (along with prices and the schedule of upcoming classes etc.).
What does the training cover?
The training content is – as is quite the norm in most deep-dive technical trainings – split between approximately 50% instructor-led lectures and 50% lab time and covers the following topics:
- What is a container, how it differs from a virtual machine, and how to use containers to deliver software applications faster
- What is container orchestration and why it is needed
- How to install Docker from scratch
- How to use Docker to run and manage containers
- How to build Docker images
- How to configure volumes and networks in Docker
- How to install a Kubernetes cluster from scratch
- How to create Kubernetes pods, deployments, and services
- How to manage containers
- How to discover and connect containers
- How to use Kubernetes to deploy a software application consisting of several components
- and an extra overview of software-defined networking (SDN) options in a containerized environment (optional content delivered by the instructor)
Grzegorz, the instructor, did an excellent job in explaining container technologies and their quite complex architecture and was doing deep-dives in basically every chapter. He was also using the slides to provide the basic structure of the training, but was adding a lot of additional explanations and drawings to the contents on the slides.
What about the labs?
Apart from the lecture with a wealth of knowledge presented by the Grzegorz, I particularly liked and enjoyed working through the labs. The labs provide hands-on experience in a pre-prepared environment. The course features five lenghty lab exercises that start with an installation of Docker and work their way through running, managing, and creating containers using Docker. After Docker has been covered, the focus shifts to Kubernetes and to setting up Kubernetes, and doing simple and gradually more complex things with the system. The labs do an excellent job of reinforcing the theory covered in the lectures. The labs provided context and were scenario-based, so much better than many of the typical ‘click here, click there, type this, type that’ labs you find so often in technical trainings. Here, you were encouraged to think about what you were achieving and why, which I think contributes a lot to the overall usefulness of this training.
Important note: attending this training requires a good grasp of the basics of the Linux command line, e.g. using the vi editor, everything else is basically explained in the extremely well-written lab guides that everybody was able to follow without encountering a single error.
Overall I extremely enjoyed the labs and felt they were very useful – which was proven on the next day, when I did the exam.
The KCM100 exam
On Friday morning all the student attending on-site met in the training room for the exam and those attending remotely joined in via the Zoom platform.
The KCM100 certification exam tests the contents delivered both in the lectures and the labs.
The exam itself is open book, and consists of 30 tasks that need to be performed on a system similar to the lab environment during the training. It is in its structure and challenge level somewhat similar to the VMware VCAP administration exams where you have to solve problems under time pressure. Since only an SSH client is used, performance is not an issue during the exam.
It has a duration of three hours and test candidates are required to perform basically everything they have learnt during the two days of training. Internet access and looking up information on the Web is permitted and definitely necessary in my opinion, since it tests real life skills under time pressure. You have to show that you understood what was discussed in class and you are able to perform the command line tasks including creating and modifying the files needed to build a Docker container and managing Kubernetes and its behavior.
Make no mistake, passing the certification does not make you a Docker or Kubernetes guru yet, as passing other certifications including VMware’s, Microsoft’s or Cisco’s do not mean you are an expert yet. But taking (and hopefully passing) it gives one a good feeling of achievement and also some feedback of additional areas that require further practice and studying.
I was wondering how long it would take Mirantis to score the exams. In the evening on the same day as the exam, I’ve already received an email that notified me that I had passed the exam together with a certificate of achievement in PDF format:
Summary of the KD110 bootcamp
The learning experience provided by the KD110 bootcamp and the challenge involved with preparing for and taking the KCM100 exam was quite a valuable one. The training served me well in expanding on my starting knowledge around Docker, introduced me to Kubernetes and showed me the way to something that will definitely stay for a long time – containers. I look forward to learning more, the next step will be setting up an environment of my own (probably using VMware’s software) and getting a couple of books on Kubernetes that will be released shortly.
So, in short: I can fully recommend this class and also taking the exam – it will be a very good starting point in the quite complex and quickly expanding universe of containers!
In a follow-up blog post I also intend to focus on why Mirantis is so much into Kubernetes – it has something to do with their recent acquisition of TCP Cloud – they were able to secure some top-notch talent for their company that is expected to revolutionize the way OpenStack-based private clouds can be deployed. So, stay tuned for another update and thanks Tschokko for your valuable input!