Our Kubernetes training programme forms a considerable part of our services at Jetstack. In 2017 alone we trained more than 1,000 engineers from over 50 different companies, and so far in 2018 we have already delivered over 60 courses. We are constantly making an effort to ensure that our course content is refined and up-to-date, and that it reflects both the real-world experience of our engineers and also the evolving Kubernetes ecosystem. 2018 has seen us dedicate a lot of time to our training programme: As well as maintaining our current courses, we have developed online resources available through Flight Deck, the Jetstack Subscription customer portal, for self-paced learning.
However, we had a recurring theme in feedback from attendees and customers. As more and more of them deployed Kubernetes, they wanted to learn how to make best use of the features it has to offer. For this reason, we decided to build the Application Developer’s course, to be announced at Google Cloud Next London ‘18. This blog post details our motivation for building the course, as well as some of the main topics.
Why Application Development?
Jetstack’s current course offering is largely aimed at those in an operational role - deploying and managing clusters. After the beginner level course, we immediately get stuck into more ‘cluster admin’ type tasks as well as the internals of Kubernetes itself.
With this new course, we’re introducing a new ‘track’ for a developer audience. This course is for developers building and architecting applications to be deployed on a Kubernetes-based platform.
The course is very hands-on and entirely based around workshops where attendees extend a simple application to explore Kubernetes from an application developer’s perspective.
We start the day with a number of workshops around better integrating your applications with Kubernetes, covering topics such as probes and managing pod environment. The course then progresses to cover a number of features that are specifically useful to application developers, including CronJobs, Lifecycle Hooks and Init Containers.
Further workshops are designed to be selected based on the interests of attendees with more in-depth workshops available on the following topics:
- Wrapping an application in a Helm chart
- Developing in-cluster with skaffold
- Debugging with kubectl
- Connecting to an database deployed with Helm
- Logging and custom metrics
Kubernetes features for Application Developers
One highlight is the workshops covering features that can directly reduce complexity versus a more traditional deployment.
As an example, CronJobs greatly simplify the common problem of running cron for recurring jobs on a fleet of autoscaling application instances. Solutions to handle duplicate jobs and the issues that arise from this architecture are often handmade and a bit of a hack. In this workshop we see how this is much simpler leveraging Kubernetes to run new containers for jobs on a schedule.
Recurring jobs are a feature that a huge number of applications need. Kubernetes offers a language-agnostic standard for running this type of work - it’s really valuable.
If you think that you and your team would benefit from this course, contact us to take part in the pilot scheme. We will be running one-day courses from November 2018.