1. Home
  2. Training Library
  3. Containers
  4. Courses
  5. Container Orchestration: Using Marathon to manage containers with DC/OS

App Groups

Developed with
Mesosphere

The course is part of this learning path

Introduction to DC/OS
course-steps 2 lab-steps 10

Contents

keyboard_tab
Intro
1
Introduction
PREVIEW3m 28s
2
Overview
PREVIEW3m 6s
Deploying Containers
Orchestration
7
8
Pods
3m 27s
10
Scenario Demo
13
Wrap Up
14
Summary
4m 28s
play-arrow
Start course
Overview
DifficultyBeginner
Duration1h 11m
Students109

Description

DC/OS: Container Orchestration

Container orchestration is a popular topic at the moment because containers can help to solve problems faced by development and operations teams. However, running containers in production at scale is a non-trivial task. Even with the introduction of orchestration tools, container management isn’t without challenges. Container orchestration is a newer concept for most companies, which means the learning curve is going to be steep. And while the learning curve may be steep, the effort should pay off in the form of standardized deployments, application isolation, and more.

This course is designed to make the learning curve a bit less steep. You'll learn how to use Marathon, a popular orchestration tool, to manage containers with DC/OS.

Learning Objectives

  • You should be able to deploy Mesos and Docker containers
  • You should understand how to use constraints
  • You should understand how to use health checks
  • You should be familiar with App groups and Pods
  • You should be able to perform a rolling upgrade
  • You should understand service discovery and load balancing

Intended Audience

  • Sysadmins
  • Developers
  • DevOps Engineers
  • Site Reliability Engineers

Prerequisits

  • Familiar with DC/OS
  • Familiar with containers
  • Comfortable with the command line
  • Comfortable with editing JSON

Topics

Lecture What you'll learn
Intro What to expect from this course
Overview A review of container orchestration
Mesos Containers How to deploy Mesos containers
Docker Containers How to deploy Docker containers
Constraints How to constrain containers to certain agents
Health Checks How to ensure services are healthy
App Groups How to form app groups
Pods How to share networking and storage
Rolling Upgrades How to preform a rolling upgrade
Persistence How to use persistent storage
Service Discovery How to use service discovery
Load Balancing How to distribute traffic
Scenario Tie everything together
Summary How to keep learning

If you have thoughts or suggestions for this course, please contact Cloud Academy at support@cloudacademy.com.

Transcript

Welcome back. This is going to be a fairly quick lesson. You've seen apps created dozens of times throughout the course so far, and by now creating an app should be a very familiar process. However, not all applications are comprised of a single container. For some apps, especially N-Tier applications, this means it's the culmination of multiple containers.

For example, if you have a Rails app running, and a container that's backed by a mySQL database and another container and then another app, maybe backed by MongoDB, all of these components might be considered to be one application. So it makes sense to treat them as an application group. For this you can use application groups and dependencies.

In this example, the databases are grouped together and the services are grouped together, and the services have a dependency on the database. One of the use cases for app groups is that you can scale the entire group as a whole. However many instances you have for each app can be scaled by a scale multiplier.

So if you wanted to double the capacity, you could use a scale factor of two. If you wanted to cut the number of instances for the app in half, you could use a scale factor of . 5. Now the JSON for this is a bit different. There's this groups property that allows you to define your groups, and inside the apps for each group is a standard app definition that you've already seen.

Now I'm not going to create a demo on this. There's nothing special about using this compared to a Stamped app. However, I did want to cover it for completeness. Okay, in the next lesson, we're going to take a look at a bit of functionality that allows your containers to share storage, networking and other resources called pods.

So if you're ready to keep learning, then I'll see you in the next lesson.

About the Author

Students36969
Courses29
Learning paths15

Ben Lambert is the Director of Engineering and was previously the lead author for DevOps and Microsoft Azure training content at Cloud Academy. His courses and learning paths covered Cloud Ecosystem technologies such as DC/OS, configuration management tools, and containers. As a software engineer, Ben’s experience includes building highly available web and mobile apps.

When he’s not building the first platform to run and measure enterprise transformation initiatives at Cloud Academy, he’s hiking, camping, or creating video games.