Chapter 3. Porting an Existing Application to Mesos

It’s time to learn how to build an application on top of Mesos. Rather than building everything from first principles, however, let’s take a look how to utilize existing frameworks to port our legacy applications. When we think about most applications, they typically fall into two categories: applications that respond to requests and applications that do actions at a particular time. In the LAMP stack, these two components are PHP and cron jobs.

First, we’re going to look at how to move an existing HTTP-based application from your current infrastructure onto Mesos. In doing so, we’re going to begin to be able to take advantage of Mesos’s scalability and resiliency, ending up with a system that can automatically heal and recover from common failure classes. Besides improving the resiliency of the application, we’re also going to improve the isolation of the application’s components. This will help us to achieve a better quality of service without struggling and suffering to build this directly on virtual machines. We’ll use Marathon, a popular Mesos framework, to host our HTTP-based application.

Then, we’ll look at Chronos as a case study in using Marathon to add high availability and reliability to other frameworks. Chronos will enable us to run programs at a specified interval—it can be used to schedule nightly data generation jobs or reports every 15 minutes. We’ll also go over some recommendations for utilizing Chronos effectively ...

Get Building Applications on Mesos now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.