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.

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.

takes you straight to the book detailed table of contents 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.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 Appendixes 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 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

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.