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.
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
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.
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.
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)
- Getting familiar with kubectl
- Using container volumes
- Accessing database systems
- File secrets
- Environment secrets
- 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.