Beginner’s Guide to Containers and Orchestration
November 14th, 2018
DevOps Team Lead in Content
Containers and container orchestration are in the process of transforming the way the technology industry does what it does. If you are not familiar with these technologies, it can be a little difficult to understand what people are talking about when they talk about containers! This course will offer you a non-technical beginner-level introduction to the concepts of containers and container orchestration. It will discuss some of the tools and buzzwords that you may have heard in association with these technologies, such as Docker and Kubernetes, and it will give you an understanding of what they mean. If you want to gain a better understanding of what containers and orchestration are all about, this is the course for you!
Beginner’s Guide to Containers and Orchestration
Before you get into this course, I wanted to talk to you about why you should be excited about containers. This lesson briefly introduces you to a few of the ways containers can help you from a business perspective. After you complete this lesson, I hope that you will be excited to learn more about containers as we go into more detail throughout this course!
This course will offer a non-technical introduction to the concepts of containers and container orchestration. It is geared toward complete beginners who may not yet be familar with what containers are. In this lesson, I will introduce you to the course and give you an idea of what we will be talking about through the rest of the course. After completing this lesson, you will be ready to proceed with learning about containers and orchestration!
About the Course Author
This video introduces the William Boyd, the author of this course!
Course Features and Tools
This video will show you a few of the features and tools we have at Linux Academy that can help enhance your learning experience. If you want to learn more about some of the ways you can take full advantage of what Linux Academy has to offer, be sure to check it out!
What are Containers?
Let's get started by talking about what containers are. This lesson covers the basics of what containers are and how they relate to virtual machines. This will provide with some background knowledge to help you understand the benefits of containers without going into too much technical detail. After completing this lesson, you will have a basic idea of what containers which will prepare you to understand how they can be used.
What is Orchestration?
Many of the benefits of containers really come into play when you utilize container orchestration. In this course, we will be talking about orchestration and some of the tools that can help you take advantage of it. To get started, in this lesson we will talk the basics of what container orchestration is, as well as some examples of how orchestration can be used in practice. This will give you some foundational knowledge to support some of the later lessons discussing how containers and orchestration can provide business value.
What are Containers Used For?
Now that you have a better understand of what containers and orchestration are, let's talk a little more about how containers can be used. This lesson will provide a clearer idea of the kinds of things containers can be used to accomplish. This will prepare you for more detailed discussion leater on about real-world use cases for containers and orchestration.
Advantages and Limitations of Containers
Now that we have talked about the basics of containers and orchestration, let's summarize some of the advantages of containers. In this lesson, we will also talk briefly about some the limitations and challenges associated with containers to give you a better understanding of what they can (and cannot) do. After completing this lesson, you will be ready to begin exploring some of the tools that can help you do containers and orchestration.
Container and Orchestration Technologies
What is Docker?
One of the tools that comes upmost often in discussions about containers is Docker. Docker offers a powerful implementation of container technology, and is currently the most popular container runtime. In this lesson, we will talk about what Docker is and its relationship to the concept of containers. After completing this lesson, you will have a basic knowledge of what Docker is and what it does. You can find more information about Docker at the offical Docker site: https://www.docker.com/
What About Other Container Runtimes?
Docker is not the only option for running containers. In this lesson, we will talk about some popular Docker alternatives, including rkt and containerd. After completing this lesson, you will have a general understand of the veriety of tools that is available in the container space, and you will be aware of some of Docker's main competitors. You can find more information on the container runtimes discussed in this lesson here: rkt - https://coreos.com/rkt/containerd - https://containerd.io/
What is Kubernetes?
The benefits of containers really shine when containers are paired with orchestration tool. Orchestration tools help you manage your containers, and they make it easy to implement the kinds of automation that can help you get the most out of containers. The industry leader in container orchestration tools is Kubernetes. In this lesson, we will talk about what what Kubernetes is and how it relates to containers. After completing this lesson, you will have a general idea of what Kubernetes is and how it can help you. Check out the official Kubernetes site for more info: https://kubernetes.io/
What About Other Orchestration Solutions?
There are plenty of orchestration tools besides plain Kubernetes that are available to help you manage your container infrastructure. In this lesson, we will talk about a few of these tools. We will also talk about some of the out-of-the-box orchestration functionality offered by cloud providers when you are running containers in the cloud. After completing this lesson, you will have a general knowledge of the side range of container orchetsration solutions that are available. Check out these links for more information on the orchestration solutions discussed in this lesson. Orchestration Tools: Docker Swarm: https://docs.docker.com/engine/swarm/Marathon: https://mesosphere.github.io/marathon/Nomad: https://www.nomadproject.io/ Cloud Orchestration Solutions: Amazon Elastic Container Service: https://aws.amazon.com/ecs/Amazon ECS for Kubernetes: https://aws.amazon.com/eks/Azure Kubernetes Service: https://azure.microsoft.com/en-us/services/kubernetes-service/Google Kubernetes Engine: https://cloud.google.com/kubernetes-engine/IBM Cloud Kubernetes Service: https://www.ibm.com/cloud/container-serviceRed Hat OpenShift: https://www.openshift.com/
Microservices are a great way to get the most out of your software architecture. Microservices provide numerous benefits, but there can be challenges and complexities invovled in implementing them. In this lesson, we will discuss how containers and container orchestration can help overcome some of these challenges, making it easier to implement microservices and enjoy the benefits of doing do. After completing this lesson, you will have a basic idea of how containers can be used to implement microservices and deliver a more stable and performant experience to your end users.
Many companies today are making the transition to the cloud. This lesson discusses this process of cloud transformation and how containers can be used to aid in that process. After completing this lesson, you will have a basic understanding of some of the ways that container can help ease the transition to the cloud and provide additional functionality once you are in the cloud.
Automated scaling is a great way to increase stability and reduce cost. It allows you to dynamically and automatically provide the right amount of resources in real time and in response to changing needs. In this lesson, we will discuss what automated scaling is, as well as how containers can help you take advantage of it. After completing this lesson, you will have a basic idea of how containers can be used to provide business value through automated scaling.
Continuous Deployment Pipelines
The IT industry today has made a shift toward the practice of continuous deployment, which involves deploying small code changed to production frequently and with the use of automation. Containers can help make continuous deployment automation more robust and effective. In this lesson, we will talk about what continuous deployment is and how containers can help you implement continuous deployment.
One way to provide applications with greater resiliency and reliability for customers is to implement self-healing functionality. Self-healing allows systems to detect and correct problems in real time, often before those problems are noticed by users. In this lesson, we will discuss what self-healing applications involve, as well as how containers and orchestration tools can help you more easily implement self-healing functionality.
One of the problems that has plagued IT organizations in the past is lack of developer visibility. When code does not work properly in a production environment, developers are unable to see how the code is truly behaving in production since they cannot access the system. This hinders the ability of the organization as a whole to quickly dignose and fix issues. In this lesson, we will discuss the problem of developer visibility and how containers can help overcome that problem by increasing developer visibility.
Containers in the Cloud
Doing Containers in the Cloud
The cloud is one of of the greatest areas of innovation that is active in the IT industry today. Containers are often talked about in the context of the cloud, and the combination of containers and cloud technologies can provide some unique benefits. In this lesson, we will discuss what the cloud is and how containers relate to the cloud. Specifically, we will talk about what it means to run containers in the cloud. After completing this lesson, you will have a basic understanding of the cloud and its relationship to containers.
The Benefits of Containers in the Cloud
Containers offer a variety of benefits in any context, but they can offer some unique value specifically in the context of the cloud. In this lesson, we will explore the relationship between containers and cloud a little further, focusing specifically on how containers can offer additional value in the context of the cloud. We will also talk about some of the container-specific services offered by some of the most popular cloud providers. Check out these links for more information about the cloud services that were discussed in this lesson. Amazon Web Services (AWS) Amazon Elastic Container Service: https://aws.amazon.com/ecs/Amazon ECS for Kubernetes: https://aws.amazon.com/eks/ Microsoft Azure Azure Kubernetes Service: https://azure.microsoft.com/en-us/services/kubernetes-service/ Google Cloud Platform (GCP) Google Kubernetes Engine: https://cloud.google.com/kubernetes-engine/
Congratulations! You can completed the Beginners Guide to Containers and Orchestration Course. In this lesson, we will wrap up what we talked about in the course, and talk about some other Linux Academy content that you may be interested in you want to learn about any of the topics discussed in this course in more detail.