Overview
Take the next step in your software engineering career by getting skilled in container tools and technologies! The average salary for jobs that require container skills is $137,000 in the US according to salary.com, making Devops professionals and developers with these skills highly in demand. More than 70 percent of Fortune 100 companies are running containerized applications. But why?
Using containerization, organizations can move applications quickly and seamlessly among desktop, on-premises, and cloud platforms.
In this beginner course on containers, learn how to build cloud native applications using current containerization tools and technologies such as Docker, container registries, Kubernetes, Red Hat, OpenShift, and Istio. Also learn how to deploy and scale your applications in any public, private, or hybrid cloud.
By taking this course you will familiarize yourself with:
- Docker objects, Dockerfile commands, container image naming, Docker networking, storage, and plugins
- Kubernetes command line interface (CLI), or “kubectl” to manipulate objects, manage workloads in a Kubernetes cluster, and apply basic kubectl commands
- ReplicaSets, autoscaling, rolling updates, ConfigMaps, Secrets, and service bindings
- The similarities and differences between OpenShift and Kubernetes
Each week, you will apply what you learn in hands-on, browser-based labs. By the end of the course, you’ll be able to build a container image, then deploy and scale your container.
The skills taught in this course are essential to anyone in the fields of software development, back-end & full-stack development, cloud architects, cloud system engineers, devops practitioners, site reliability engineers (SRE), cloud networking specialists and many other roles.
Syllabus
- Containers and Containerization
- Start your first week by learning about container concepts, features, use cases, and benefits. Building on your new knowledge of containers, you’ll learn what Docker does and discover why Docker is a winner with developers. You’ll learn what Docker is, become acquainted with Docker processes, and explore Docker’s underlying technology. Learn about how developers and organizations can benefit from using Docker and see which situations are challenging for using Docker. Next, learn how to build a container image using a Dockerfile, how to create a running container using that image, become familiar with the Docker command line interface (CLI), and explore frequently used Docker commands. You’ll become knowledgeable about Docker objects, Dockerfile commands, container image naming, and learn how Docker uses networks, storage, and plugins. Then, assimilate this knowledge when you see Docker architecture components in action and explore containerization using Docker. At the end of this first week, you’ll pull an image from a Docker Hub registry. You’ll run an image as a container using Docker, build and tag an image using a Dockerfile, and push that image to a registry.
- Kubernetes Basics
- In week two, learn what container orchestration is. Then, explore how developers can use container orchestration to create and manage complex container environment development lifecycles. Kubernetes is currently the most popular container orchestration platform. You’ll examine key Kubernetes architectural components, including control plane components and controllers. Explore Kubernetes objects, and learn how specific Kubernetes objects such as Pods, ReplicaSets, and Deployments work. Then, learn how developers use the Kubernetes command line interface (CLI), or “kubectl” to manipulate objects, manage workloads in a Kubernetes cluster, and apply basic kubectl commands. You’ll be able to differentiate the benefits and drawbacks of using imperative and declarative commands. At the end of this module, you will use the kubectl CLI commands to create resources on an actual Kubernetes cluster. At the end of this week, you’ll use the Kubernetes CLI to create a Kubernetes pod, create a Kubernetes deployment, create a ReplicaSet and see Kubernetes load balancing in action.
- Managing Applications with Kubernetes
- In week three, you’ll explore ReplicaSets, autoscaling, rolling updates, ConfigMaps, Secrets, and service bindings, and learn how you can use these capabilities to manage Kubernetes applications. You’ll learn how ReplicaSets scale applications to meet increasing demand, and how autoscaling creates dynamic demand-based scaling. You’ll see how to use rolling updates to publish application updates and roll back changes without interrupting the user experience. You’ll learn how to use ConfigMaps and Secrets to provide configuration variables and sensitive information to your deployments and to keep your code clean. At the end of the week, you’ll scale and update applications deployed in Kubernetes.
- The Kubernetes Ecosystem: OpenShift, Istio, etc.
- In week four, you’ll learn more about the growing Kubernetes ecosystem and explore additional tools that work well with Kubernetes to support cloud-native development. You’ll gain an understanding of the similarities and differences between Red Hat ® OpenShift® and Kubernetes and see what OpenShift architecture looks like. You’ll learn about OpenShift builds and BuildConfigs, and OpenShift build strategies and triggers. You'll also discover how operators can deploy whole applications with ease. Finally, you’ll examine how the Istio service mesh manages and secures traffic and communication between an application’s services. At the end of the week, you’ll use the oc CLI to perform commands on an OpenShift cluster. And you’ll use the OpenShift build capabilities to deploy an application from source code stored in a Git repository.
- Final Assignment
- For the Final Project, you will put into practice the tools and concepts learned in this course, and deploy a simple guestbook application with Docker and Kubernetes. The entire application will be deployed and managed on OpenShift.
Taught by
Alex Parker and Upkar Lidder