Microservices in the cloud with Docker and Kubernetes

Running your microservices in the cloud requires a new approach, one that aligns with its core philosophy, flexibility. By embracing new technologies and software development methodologies like cloud computing, containers, and continuous integration/delivery, we make the most of our time and infrastructure. Using containers offers lots of advantages. Their portability and resource efficiency, provide service isolation, and accelerate the development process. As you build new cloud-native applications using microservices or migrate existing ones to this new environment, building, deploying, and scaling these applications will present its own set of challenges. Docker and Kubernetes are the most pervasive container system and orchestration platform to address these challenges. Their existence has made the tasks of managing complex service deployments and scalability remarkably easy. Kubernetes, developed by the cloud infrastructure giant Google is the go to tool for any team that has adopted the microservice philosophy. Its availability on competing platforms such as Azure and AWS would stop you from thinking twice about whether or not this is the way to go.

Learning Outcomes:

By the end of this course the students will be able to:

  • Grasp the concept of containers and how they work
  • Use Docker containers
  • Create custom container images for their services
  • Update and push containers to a container repository
  • Understand what Kubernetes is and how it works
  • Work with minikube local cluster
  • Configure and manage Kubernetes objects
  • Monitor containers

Prerequisites:

In order to be able to follow this course, attendees need to have a general knowledge of GNU/Linux CLI and microservice architecture.

Who should attend:

This course it aimed at developers that want to expand their knowledge with the new paradigm of Cloud-Native development.

Training methodology:

The framework behind every lesson follows an inclusive approach and involves everyone in the class by relating to real world experiences and problems they have or may encounter in the field. Classes are filled with practical exercises that push everyone to think and experience real-life coding techniques. Questions are always welcomed, since that is the best way to learn a practical skill.

Course level:

(Foundation/Intermediate/Advanced): Advanced

Course Outline:

Understanding container basics

  • Types of containers in the wild
  • The need and benefits of containers

Introduction to Docker

  • What is Docker?
  • Docker installation

Using ready-made container images

  • Pulling images from a container repository
  • Image caching
  • Running containers

Creating containers for your microservices

  • Writing your own Dockerfile
  • Pushing a Docker image to a remote repository

Container configuration and management

  • Port exposure
  • Mounting volumes
  • Executing startup scripts
  • Accessing service logs

Container orchestration with Kubernetes

  • Introduction to Kubernetes
  • Master components (kube-apiserver, etcd, kube-scheduler...)
  • Node components (kubelet, kube-proxy)

Using Minicube

  • Getting familiar with kubectl

K8s objects

  • Pods
  • Deployments
  • Services
  • Endpoints
  • Namespaces

Data persistence

  • Using container volumes
  • Accessing database systems

Managing secrets

  • File secrets
  • Environment secrets

Logging

  • Accessing container logs
  • Using logging frameworks

 

About the instructor: Bojan Gavrovski

Bojan Gavrovski holds a BSc degree in Computer Science from SEEU, and Master’s candidate status in Cloud Computing at UKIM Faculty of Computer Science and Engineering. His professional work started back in 2002 as a web designer and front-end developer.

Over the years, he´s created a large list of courses in the fields of front-end and back-end development. Some of the most notable courses are HTML5 & CSS3, HTML5 APIs, PHP & MySQL for Beginners, Advanced PHP and MVC, Javascript Libraries and Frameworks, Programming in ReactJs & Redux, NodeJs & MongoDB for beginners, and Go. He is a distinct member of partner Semos Education and winner of many “Best Trainer” awards in this company.

Other relevant courses

2 days
Classroom
2 days
Classroom