Mesos in Action
Roger Ignazio
Foreword by Florian Leibert
  • May 2016
  • ISBN 9781617292927
  • 272 pages
  • printed in black & white

You would be hard-pressed to find a better guide than Roger Ignazio and a better book than Mesos in Action.

From the Foreword by Florian Leibert, Mesosphere

Mesos in Action introduces readers to the Apache Mesos cluster manager and the concept of application-centric infrastructure. Filled with helpful figures and hands-on instructions, this book guides you from your first steps creating a highly-available Mesos cluster through deploying applications in production and writing native Mesos frameworks.

Table of Contents detailed table of contents

Part 1: Hello, Mesos

1. Introducing Mesos

1.1. Meet Mesos

1.1.1. Understanding how it works

1.1.2. Comparing virtual machines and containers

1.1.3. Knowing when (and why) to use Mesos

1.2. Why we need to rethink the datacenter

1.2.1. Partitioning of resources

1.2.2. Deploying applications

1.3. Mesos' distributed architecture

1.3.1. Masters

1.3.2. Slaves

1.3.3. Frameworks

1.4. Summary

2. Managing datacenter resources with Mesos

2.1. A brief introduction to Spark

2.1.1. Spark on a standalone cluster

2.1.2. Spark on Mesos

2.2. Running a Spark job on Mesos

2.2.1. Finding prime numbers in a set

2.2.2. Getting and packaging up the code

2.2.3. Submitting the job

2.2.4. Observing the output

2.3. Exploring further

2.3.1. Mesos UI

2.3.2. Spark UI

2.4. Summary

Part 2: Core Mesos

3. Setting up Mesos

3.1. Deploying Mesos

3.1.1. Mesos cluster components

3.1.2. Considerations for a development environment

3.1.3. Considerations for a production environment

3.2. Installing Mesos and ZooKeeper

3.2.1. Installing from packages

3.2.2. Compiling and installing from source

3.3. Configuring Mesos and ZooKeeper

3.3.1. ZooKeeper configuration

3.3.2. Mesos configuration

3.4. Installing and configuring Docker

3.4.1. Installation

3.4.2. Configuration

3.4.3. Configuring Mesos slaves for Docker

3.5. Upgrading Mesos

3.5.1. Upgrading Mesos masters

3.5.2. Upgrading Mesos slaves

3.6. Summary

4. Mesos fundamentals

4.1. Scheduling and allocating datacenter resources

4.1.1. Understanding resource scheduling

4.1.2. Understanding resource allocation

4.1.3. Customizing Mesos slave resources and attributes

4.2. Isolating resources with containers

4.2.1. Isolating and monitoring CPU, memory, and disk

4.2.2. Network monitoring and rate limiting

4.3. Understanding fault tolerance and high availability

4.3.1. Fault tolerance

4.3.2. High availability

4.3.3. Handling failures and upgrades

4.4. Summary

5. Logging and debugging

5.1. Understanding and configuring Mesos logging

5.1.1. Locating and interpreting log files

5.1.2. Logging configuration

5.2. Debugging a Mesos cluster and its tasks

5.2.1. Using the Mesos web interface

5.2.2. Using the built-in command line tools

5.2.3. Using Mesosphere's mesos-cli tool

5.3. Summary

6. Mesos in production

6.1. Monitoring the Mesos and ZooKeeper clusters

6.1.1. Monitoring the Mesos master

6.1.2. Monitoring the Mesos slave

6.1.3. Monitoring ZooKeeper

6.2. Modifying the Mesos master quorum

6.2.1. Adding masters

6.2.2. Removing masters

6.2.3. Replacing masters

6.3. Implementing security and access control

6.3.1. Slave and framework authentication

6.3.2. Authorization and access control lists

6.3.3. Framework rate limiting

6.4. Summary

Part 3: Running on Mesos

7. Deploying applications with Marathon

7.1. Getting to know Marathon

7.1.1. Exploring the web interface and API

7.1.2. Service discovery and routing

7.2. Deploying Marathon and HAProxy

7.2.1. Installing and configuring Marathon

7.2.2. Installing and configuring HAProxy

7.3. Creating and scaling applications

7.3.1. Deploying a simple application

7.3.2. Deploying a Docker container

7.3.3. Performing health checks and rolling application upgrades

7.4. Creating application groups

7.4.1. Understanding the anatomy of an application group

7.4.2. Deploying an application group

7.5. Logging and debugging

7.5.1. Configuring logging for Marathon

7.5.2. Debugging Marathon applications and tasks

7.6. Summary

8. Managing scheduled tasks with Chronos

8.1. Getting to know Chronos

8.1.1. Exploring the web interface and API

8.2. Installing and configuring Chronos

8.2.1. Reviewing prerequisites

8.2.2. Installing Chronos

8.2.3. Configuring Chronos

8.3. Working with simple jobs

8.3.1. Creating a schedule-based job

8.3.2. Creating a schedule-based job by using Docker

8.4. Working with complex jobs

8.4.1. Combining schedule-based and dependency-based jobs

8.4.2. Visualizing job dependencies

8.5. Monitoring the output and status of Chronos jobs

8.5.1. Job failure notifications and monitoring

8.5.2. Observing standard output and standard error via Mesos

8.6. Summary

9. Deploying applications and managing scheduled tasks with Aurora

9.1. Introducing Aurora

9.1.1. The Aurora scheduler

9.1.2. The Thermos executor and observer

9.1.3. The Aurora user and admin clients

9.1.4. The Aurora domain-specific language

9.2. Deploying Aurora

9.2.1. Trying out Aurora in a development environment

9.2.2. Building and installing Aurora

9.2.3. Configuring Aurora

9.3. Deploying applications

9.3.1. Deploying a simple application

9.3.2. Deploying a Docker-based application

9.4. Managing scheduled tasks

9.4.1. Creating a Cron job

9.4.2. Creating a Docker-based Cron job

9.5. Administering Aurora

9.5.1. Managing users and quotas

9.5.2. Performing maintenance

9.6. Summary

10. Developing a framework

10.1. Framework basics

10.1.1. When and why would you write a framework?

10.1.2. Understanding the scheduler implementation

10.1.3. Insight into the executor implementation

10.2. Developing a scheduler

10.2.1. Working with the Scheduler API

10.2.2. Working with the SchedulerDriver

10.3. Developing an executor

10.3.1. Working with the Executor API

10.3.2. Working with the ExecutorDriver

10.4. Running the framework

10.4.1. Deploying in development

10.4.2. Considerations for a production deployment

10.5. Summary


Appendix A: Case study: Mesosphere DCOS, an enterprise Mesos distribution

A.1. Introduction to DCOS

A.1.1. Understanding the DCOS architecture

A.1.2. Interacting with DCOS

A.2. Continuous deployment with Jenkins and Marathon

A.2.1. Preparing DCOS for continuous application deployments

A.2.2. Configuring Jenkins

A.2.3. Continuous deployment in action

A.3. Summary

Appendix B: List of Mesos frameworks and tools

B.1. Mesos Frameworks

B.1.1. Application management and batch scheduling

B.1.2. Data processing

B.1.3. Distributed Databases and Storage

B.2.1. Language bindings

B.2.2. Load balancing and service discovery

B.2.3. Monitoring and management

B.2.4. Vagrant environments

About the Technology

Modern datacenters are complex environments, and when you throw Docker and other container-based systems into the mix, there’s a great need to simplify. Mesos is an open source cluster management platform that transforms the whole datacenter into a single pool of compute, memory, and storage resources that you can allocate, automate, and scale as if you’re working with a single supercomputer.

About the book

Mesos in Action introduces readers to the Apache Mesos cluster manager and the concept of application-centric infrastructure. Filled with helpful figures and hands-on instructions, this book guides you from your first steps creating a highly-available Mesos cluster through deploying applications in production and writing native Mesos frameworks. You’ll learn how to scale to thousands of nodes, while providing resource isolation between processes using Linux and Docker containers. You’ll also learn practical techniques for deploying applications using popular key frameworks.

What's inside

  • Spinning up your first Mesos cluster
  • Scheduling, resource administration, and logging
  • Deploying containerized applications with Marathon, Chronos, and Aurora
  • Writing Mesos frameworks using Python

About the reader

Readers need to be familiar with the core ideas of datacenter administration and need a basic knowledge of Python or a similar programming language.

About the author

Roger Ignazio is an experienced systems engineer with a focus on distributed, fault-tolerant, and scalable infrastructure. He is currently a technical lead at Mesosphere.

  • combo $44.99 pBook + eBook
  • eBook $35.99 pdf + ePub + kindle

FREE domestic shipping on three or more pBooks

Helps to illuminate best practices and avoid hidden pitfalls when deploying Apache Mesos.

Marco Massenzio, Apple

Ignazio knows his stuff, but more importantly he knows how to explain it.

Morgan Nelson,

You will not only learn Mesos, you will learn a whole ecosystem.

Thomas Peklak, Emakina CEE