After completing this course, you will be able to build applications in a cloud native way using containerization tools and technologies, and deploy your applications in any public, private or hybrid cloud at incredible scale. This course introduces you to containers and explains how containers differ from virtual machines. It also covers the importance of containers in cloud computing, as well as the emerging ecosystem of related technologies such as Docker, Kubernetes, Red Hat OpenShift, and Istio.
Throughout the course you will apply what you learn with hands-on labs. From getting started with Docker, to orchestration and scaling with Kubernetes, and simplifying deployments with OpenShift. The labs are performed using your web browser on IBM Cloud and Skills Network Labs environments, that are made available to you at no charge. in the project at the end of the course you will build a container image and deploy and scale it on Cloud using OpenShift.
Containerization is likely the most significant invention in IT since the introduction of virtualization. Open source projects like Kubernetes and products like Red Hat OpenShift have become standards for people looking to deploy and manage containers at scale. Everyone from small startups to large multinational corporations is transitioning to these technologies, and they are looking for people who are skilled in these areas.
This course is of interest to anyone who wants to be a cloud practitioner - cloud developers, cloud architects, cloud system engineers, devops engineers, cloud networking specialists and many other roles. The material also serves the needs of those who perform the tasks of advising, consulting, building, moving and managing cloud solutions.
There are no hard requirements needed to be able to take this course other than basic computer literacy, and a foundation level understanding of Cloud Computing.
Understanding the Benefits of Containers
In this module, you will learn about the concept, features, use cases, and benefits of containers, and the difference between containers and virtual machines. You will learn about the term "Docker" and the several different uses of this term. One of the most used tools from Docker is the command line interface (CLI). We will introduce you to some of the more commonly used Docker CLI commands and how they work.Containers and images are two distinct entities, and in this module, you will learn about the differences between containers and images. You will learn how to build container images using Dockerfiles.Finally, you will learn about container registries and the functionalities they provide to help developers work more securely and productively.At the end of the module, you will do a hands-on exercise in which you will write a Dockerfile, build an image and run it as a container, and store the image in a registry.
Understanding Kubernetes Architecture
In this module, you will learn what container orchestration is and how it helps to create and manage the lifecycle of complex container environments. Kubernetes is the most popular container orchestration platform. In this module, we will familiarize you with the key architectural components of Kubernetes, such as the control plane components and controllers. You will also learn about the basics of Kubernetes objects, and how specific Kubernetes objects such as Pods, ReplicaSets, and Deployments work. The Kubernetes CLI, or "kubectl", is used to manipulate objects and manage workloads in a Kubernetes cluster. We will introduce you to a few basic kubectl commands and explain the relative benefits and shortcomings of both imperative and declarative commands. Finally, at the end of this module, you will use the kubectl CLI commands to create resources on an actual Kubernetes cluster.
Managing Applications with Kubernetes
In this module, you will learn about some key concepts such as ReplicaSets, autoscaling, rolling updates, ConfigMaps, Secrets, and service bindings, and how they can be used to manage Kubernetes applications.
You will learn how to use ReplicaSets to scale applications to meet increasing demand, and then use the autoscaling feature to make this scaling dynamic, as per demand.
Using the rolling updates feature, you will learn how to publish updates to your application and also roll back the changes without creating any noticeable interruptions for your users.
Storing hard-coded configuration variables and sensitive information in code is never a good idea. You will learn how to use ConfigMaps and Secrets to provide configuration variables and sensitive information to your deployments and keep your code clean.
Finally, you will perform a hands-on exercise to scale and update applications deployed in Kubernetes.
The Kubernetes Ecosystem: OpenShift, Istio, etc.
In this module, you will learn about the growing Kubernetes ecosystem and be introduced to some additional tools that work well with Kubernetes to support cloud-native development. You’ll learn about the Cloud Native Computing Foundation (CNCF) which hosts Kubernetes, and the valuable resources it provides for navigating the ecosystem.
You’ll gain an understanding of both the similarities and the differences of Red Hat OpenShift and Kubernetes, and what an OpenShift architecture looks like.
You will become familiar with OpenShift builds and BuildConfigs and learn about the various build strategies and triggers offered by OpenShift.
Operators use custom resources and controllers to help package software and automate tasks within a cluster. In this module, you'll learn how an operator can deploy an entire application with ease.
Finally, you'll learn about Istio, a service mesh, which provides traffic management and security, and facilitates communication between services in an application.
At the end of the module, you do a hands-on exercise in which you use the oc CLI to perform commands on an OpenShift cluster. You will use the OpenShift build capabilities to deploy an application from source code stored in a git repository.
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.