Training

Kubernetes for Java developers

Microservices have become the de facto standard these days, so Java developers are now expected not only to write code but also to deliver it to various environments. There’s no need to reinvent the wheel, since ready-made solutions already exist: Docker for containerizing microservices, and Kubernetes as a container orchestration platform. With these tools, a Java developer can efficiently deploy, scale, test, monitor, and debug their microservice, both on a local machine and in remote environments.

Goals and objectives

  • Understand the principles of building cloud-native microservices, using the Spring Boot platform as an example
  • Significantly shorten the time it takes to learn Docker/Kubernetes well enough to use them in practice
  • Learn about best practices and anti-patterns drawn from the experience of many teams and companies
  • Dig deep enough into how things work to apply the tools with a clear understanding of what they do
  • Get pointers for further in-depth study
  • Understand how the Docker/Kubernetes ecosystem is evolving and where to find solutions to the problems and challenges you face
Target audience
Java developers, architects, tech leads
Price
$600per participant
Date and time
27 hours

Book for your company

Detailed program

Part 1

  • A brief introduction to microservices architecture
  • Architectural attributes as the main driver of infrastructure requirements
  • Defining cloud native for microservices
  • Principles of building cloud-native microservices with Spring Boot
  • Docker and the principles of immutable infrastructure
  • Packaging a Spring Boot microservice into a Docker image
  • Using containers for efficient local development

Part 2

  • Requirements for a modern container orchestration platform
  • K8s architecture and core concepts
  • Principles of describing infrastructure declaratively
  • Overview of the various clients for working with the K8s API
  • K8s installation options
  • An in-depth introduction to kubectl
  • Options for validating K8s manifests

Part 3

  • The Pod as the basic abstraction
  • What developers can control through the Pod resource definition
  • The scheduler, how it works, and how you can influence it
  • Implementing service discovery with the Service resource
  • Scaling and managing versions with the Deployment and ReplicaSet resources
  • Flexible configuration with the ConfigMap resource
  • Managing secrets with the Secret resource, and alternative approaches
  • Handling administrative tasks with the DaemonSet, Job, and CronJob resources
  • How stateful services work with the StatefulSet resource
  • A complete deployment of a Spring Boot microservice to K8s
  • Additional capabilities with Spring Cloud Kubernetes

Part 4

  • Managing networking in K8s
  • Managing HTTP traffic with the Ingress resource
  • Security in K8s and implementing RBAC
  • Options for automating service scaling
  • Ensuring high availability for a service in K8s
  • Tools for efficient local development with K8s
  • Flexible deployment patterns in K8s

Part 5

  • Customizing manifests with Kustomize
  • Templating manifests with Helm
  • Using Helm for the full cycle of deploying and configuring applications in K8s
  • Mutating or validating resources with admission control
  • Options for extending K8s with CRDs and operators
  • The service mesh concept, with Istio as an example
  • Setting up GitOps-style CD with Argo CD
  • K8s anti-patterns

Past runs

  • March 6-25, 2024Online9 sessions on Zoom on Mondays, Wednesdays, and Fridays from 4:00 to 7:00 p.m. (3 hours).
  • September 18 - October 6, 2023Online9 sessions on Zoom on Mondays, Wednesdays, and Fridays from 4:00 to 7:00 p.m. (3 hours).
  • November 9-28, 2022Online9 sessions on Zoom on Mondays, Wednesdays, and Fridays from 5:00 to 8:00 p.m. (3 hours).
  • September 7-26, 2022Online9 sessions on Zoom on Mondays, Wednesdays, and Fridays from 5:00 to 8:00 p.m. (3 hours).
  • June 14 - July 2, 2022Online9 sessions on Zoom on Tuesdays and Thursdays from 5:00 to 8:00 p.m. (3 hours), and on Saturdays from 10:00 a.m. to 1:00 p.m. (3 hours).
  • May 4-20, 2022Online8 sessions on Zoom on Mondays, Wednesdays, and Fridays from 5:00 to 8:00 p.m. (3 hours).
  • April 11-29, 2022Online9 sessions on Zoom on Mondays, Wednesdays, and Fridays from 5:00 to 8:00 p.m. (3 hours).
  • March 13-14, 2020Kyiv, UkraineTraining: Kubernetes for Java developers