Demo: Mesos Running a Single Cluster of Linux and Windows Machines
In mid-August, Mesosphere and Microsoft partnered to bring Mesos to Windows. This will allow organizations that have applications mixed between Linux and Windows servers to allocate a pool of resources and them manage them using the same interfaces and the same deployment technologies. Mesos ported to Windows Servers brings the level of container orchestration once limited to Linux and Microsoft Azure.
For background, Apache Mesos pools infrastructure, automatically allocating resources and scheduling tasks based on demands and policy. Mesosphere, the commercial provider of Mesos, offers DCOS, a layer of software that combines physical and virtual machines in a data center, pooling them into one big compute environment.
How the Mesos-Windows integration works is the subject of a short video that Mesosphere presented at MesosCon. It showcases Mesos running a single cluster consisting of both Linux and Windows machines. Videos from Mesoscon are now online.
The video shows how Mesos is launched on a Windows machine and a Linux machine, then as Java tasks on both a Linux and Windows machine. These tasks are able to be run on a single cluster, reducing the amount of system resources needed to run the tasks on each box.
Before launching a Windows task, the Windows machine has an open web browser with no frontend showing. In the demo, the task to launch the frontend is launched on the Windows box from the command line using Marathon, an Apache Mesos framework for long-running applications. The task is scheduled and then it shows in the Marathon user interface, running and healthy. Going back, the Mesos UI shows the task running in the Windows box. When navigating back to to the web browser on the Windows machine, it shows a 404 error because the Linux box is not hooked up. The Linux box then gets connected, showing Windows working on the Linux box.
Starting the Linux box enables the backend UI. Upon refreshing the web page on the Windows box it then displays the message, “Hello, MesosCon!” Once the frontend and backend components are up and running for both boxes, a pair of Java tasks are launched through Marathon, one on Linux and the other on Windows. Users are able to specify the number of CPUs allocated to the Java tasks, which launch within seconds. Both are then shown running within the Mesos UI, up and healthy.
Through using Mesos alongside Marathon, developers can run Windows alongside Linux to streamline their workflow, while allowing for a minimal amount of resource allocation. Marathon allows for system monitoring within its UI, displaying the status of a task or instance, enabling a team to stop, pause or restart an application quickly. Marathon can also ensure that bugged or sandbox apps generating consistent failures do not fill up Mesos slave hard disks with these. Users can also scale an application with ease via the Marathon CLI, allowing for improved cluster management.
When launching a task such as the Java example in the video, Marathon’s health checks will determine if the tasks are operating correctly. This includes HTTP checks, ensuring that a task is starting up within the specified time before timeout is reached. If a task fails the HTTP check consistently, it is killed and new instances are then launched. In this example, if the Windows Java task did not pass its HTTP check, Marathon’s scheduler would launch more instances upon it reaching max consecutive failures. When launching a task, additional health check options are available in Marathon. These include the ability to set a grace period for health check failures, protocols, port indexes and timeout length.
Quality-of-Life Improvements for Cross-Platform Developers
Mesos on Windows means developers and organizations that work between Linux and Windows platforms may use their own tools without requiring heavy resource management. Cluster management can be handled by tools such as Docker, Marathon or Kubernetes, allowing for scaling debugging, and management of individual clusters in real-time without sacrificing security or performance to do so.
Mesosphere offers the ability for operations teams to run both Linux and Windows boxes from within a central workspace, offering a workflow for those accustomed to managing Docker containers. Linux developers can manage their Windows servers at scale, without having to run individuals VMs, which may impact system performance. VMs running individual hypervisors can severely limit system performance when testing or debugging locally, while potentially impacting page loads or request handling if a VM cluster becomes overloaded while live.
Supporting a peak-traffic workload can be a difficult task when one is working across Windows and Linux, often fraught with micromanaging resources, or downloading workarounds to required Linux dependencies that don’t run in a Windows environment. Mesos offers Windows Server users the ability to build applications using the tools that work for them on each platform, with less active time investment required at the macro-level.
Mesosphere’s Datacenter Operating System
Available to the general public since July 2015, Mesosphere’s Mesos Datacenter Operating System (DCOS) presents a potential game changer in data center management. Verizon has adopted Mesosphere’s DCOS as its nationwide platform for orchestrating its data system, and will begin using the service later in 2015. Those running Mesos on Windows can also use Mesosphere’s DCOS in conjunction with the core Windows Server Mesos platform. Mesosphere offers exciting possibilities for developers to leverage the power of their DCOS by pooling resources once split between Windows and Linux in separate VM environments.
Mesosphere DCOS can launch Docker containers, manage applications, and handle large, demanding tasks from a single cluster, allowing for application scalability to handle enterprise-level data center needs. DCOS allows for users to manage hundreds, thousands or tens of thousands of nodes, all managed with a CLI. DCOS also offers users the ability to install database management systems libraries, file systems such as HDFS, and data processing tools such as Spark.
Mesos on Windows allows for developers to work cross-platform, spending more time creating new applications rather than debugging them or handling dependency issues. As businesses at enterprise-level have embraced container technology, this has resulted in smaller businesses also adopting a container-based workflow. With that has arrived the need for standardized, cross-platform container management, deployment, and orchestration.