HPE and Mesosphere Simplify Container Management for Modern Data Centers Using Open Source DC/OS

HPE and Mesosphere Simplify Container Management for Modern Data Centers Using Open Source DC/OS

HPE and Mesosphere Simplify Container Management for Modern Data Centers Using Open Source DC/OS

HPE and Mesosphere Simplify Container Management for Modern Data Centers Using Open Source DC/OS Technical white paper

HPE and Mesosphere Simplify Container Management for Modern Data Centers Using Open Source DC/OS

Technical white paper Contents Introduction . . 3 DC/OS . . 3 Solution overview . . 5 Server and networking hardware . . 5 DC/OS services . . 5 DC/OS installation . . 6 Data Analytics use case . . 6 Components . . 7 DC/OS Spark service . . 9 Data Analytics use case implementation . . 10 DC/OS service installation and configuration . . 10 Data Analytics results . . 15 Container Orchestration use case . . 16 Components . . 17 Logical architecture .

. 19 Marathon service for DC/OS . . 19 Container Orchestration use case implementation . . 19 DC/OS service installation and configuration . . 20 Container Orchestration results . . 28 Conclusion . . 30 Resources, contacts, or additional links . . 30

HPE and Mesosphere Simplify Container Management for Modern Data Centers Using Open Source DC/OS

Technical white paper Page 3 Introduction Businesses today are faced with ever-increasing challenges to develop new services quickly, to gather and analyze large amounts and types of data, then act on the insights gained from the data by developing even more services and cloud-native or mobile apps. IT organizations, meanwhile, need to meet these challenges while addressing the traditional concerns of efficiency, security, service quality, and operational flexibility. Many companies are tackling these challenges by using modern distributed application architectures and by dynamically scaling up their IT— whether it is run in their own data centers or as a public cloud architecture enabled by a service provider.

Many enterprise IT organizations and service providers have leveraged Mesosphere's industry-proven Data Center Operating System to achieve their goals of speed, agility, flexibility, and administrative efficiency.

Recently, Mesosphere announced the release of an open-source version of its Data Center Operating System (DC/OS). To help HPE ProLiant and Cloudline server customers evaluate and test the open-source DC/OS on their systems, this white paper discusses two distinct use cases that show the flexibility and versatility of DC/OS —a data analytics use case and a container orchestration use case. The document outlines a solution architecture for deploying Apache Spark™, Kafka, Cassandra, and Zeppelin on DC/OS to provide a highly optimized environment for large-scale data processing while allowing for cluster utilization by other workloads like Web Servers or Java applications.

We focus on achieving the following key business outcomes via DC/OS implementation on HPE ProLiant and Cloudline servers: • Hyperscale efficiency, flexibility, and automation—The DC/OS two-level scheduler architecture enables pooling of multiple distributed workloads (DC/OS services). Deploying, scaling, and managing services are simplified to single commands, and security and business continuity are also dramatically simplified. HPE ProLiant servers provide flexible designs with ideal memory and I/O expandability along with world-class performance for data center environments. HPE Cloudline servers are built for extreme scale and are designed for service providers who need fast deployment, flexible operation, and low total cost of ownership.

• Accelerated time to value for new services—DC/OS enables enterprises to easily roll out and scale (to multiple development teams) a continuous integration and delivery model using common tools like Jenkins (an open-source continuous integration tool), artifact repositories, and source control tools. • Agile infrastructure management—ProLiant servers provide robust infrastructure management and update tools like HPE OneView and Smart Update and embedded management tools like HPE iLO to deploy and monitor your server remotely. Cloudline servers, on the other hand, are built on an open management design philosophy and leverage common industry interfaces so they can fit easily into a multi-vendor environment where the same service provider management software may be running on platforms sourced from different vendors.

HPE is a founding member of the Redfish specification, which is the open industry standard for software-defined data centers and is based largely on HPE’s work to implement the RESTful API for iLO. HPE implements the Redfish API in both ProLiant and Cloudline servers. • Movement, integration, and delivery of applications across multiple environments—HPE believes strongly in open standards, API-based architectures, and open-source software, including Cloud Foundry, DC/OS, and OpenStack. Whether your cloud environment is public, private, or hybrid, you can choose from a vast global ecosystem of hardware, software, and services for your cloud computing needs.

• Quickly gain insights from ubiquitous data—DC/OS elegantly runs common services like Kafka, Spark, and Cassandra that power many of today’s Internet of Things and big data stacks, enabling enterprises to run a simple and integrated turnkey solution powering their big data applications.

DC/OS DC/OS is an open-source software project that creates an operating system that spans all of the machines in your datacenter or cloud and provides a powerful abstraction layer for your computing needs. DC/OS is powered by the Apache Mesos distributed systems kernel, which is a highly scalable two-level scheduler that pools your infrastructure, automatically allocating resources, and scheduling tasks based on demands and policy. It provides a highly elastic and scalable way of developing and deploying applications, services, and big data infrastructure on shared resources. You can run all your apps and workloads, from platform-as-a-service (PaaS)-based microservices to big data and databases—and everything in between (Figure 1).

HPE and Mesosphere Simplify Container Management for Modern Data Centers Using Open Source DC/OS

Technical white paper Page 4 DC/OS runs in any modern Linux® environment: public and private cloud, virtual machines, and bare metal x86 servers, allowing you to use the underlying cluster resources more efficiently. Figure 1. DC/OS architectural overview (source: Mesosphere). DC/OS provides the following operational advantages: • Ease of install and control: The user interface lets you control the entire DC/OS-powered data center (install DC/OS services and groups of DC/OS services) from a single command line and single web user interface.

• Runtime configuration update and software upgrades: Update DC/OS service configurations and upgrade software during runtime for continuous operations.

• Simplified infrastructure: Eliminate statically partitioned and uniquely configured environments and unlock dramatically higher server utilization. In addition, running Spark, Kafka, and Cassandra on DC/OS allows you to scale up (or down) the compute resources dynamically. • Fault-domain-aware placement and data replication: DC/OS services automatically provision nodes and intelligently replicate data across fault domains (i.e., racks) for improved availability and data durability.

• Automatic failed server recovery: Configurable policies enable DC/OS services to remediate failed servers automatically for improved availability. • Run multiple processing engines and change components easily: Run different versions of data processing (e.g., Spark) jobs against the same Spark Dispatcher. Add or modify components to accommodate changing business needs. For example, you could change Zeppelin to IPython or use ArangoDB instead of Cassandra without having to purchase or repurpose hardware. • Write once, run anywhere: DC/OS provides an abstraction layer that you can write against which is the same no matter where the DC/OS installed (your own infrastructure or a service provider’s).

There is no longer a need to understand the APIs of separate cloud providers, because simple commands (such as DC/OS package install spark) work everywhere.

HPE and Mesosphere Simplify Container Management for Modern Data Centers Using Open Source DC/OS

Technical white paper Page 5 Solution overview The solution architecture is based on DC/OS installed on HPE servers running Red Hat® Enterprise Linux® 7.2. Each use case has its own DC/OS Cluster comprised of Master Nodes and DC/OS Agent Nodes. • Three DC/OS Master Nodes host the Cluster Management Services, including the following services: – Mesos Masters – Service Discovery – Name Resolution – DC/OS Service Administration – DC/OS Service Availability Management • DC/OS Agent Nodes perform the work in the cluster on behalf of the DC/OS services; these nodes leverage containers to achieve process, memory, disk, and network isolation.

Server and networking hardware For these two use case examples, DC/OS was installed on two separate hardware environments to show how hardware could be optimally deployed to match the use case. For the Data Analytics use case, we used HPE Cloudline CL 2100 and CL5200 servers that are optimized for Service Providers and built for extreme scale. These bare-metal, rack-mount servers are cost-optimized for large-scale deployments and designed for environments where resiliency is software-based and derived from your service application.

• The Cloudline CL2100 server design includes two Intel® Xeon® E5–2600 v3/v4 processors and is matched by the 16 DIMM slots to accommodate demanding memory and storage applications such as NoSQL, cloud, caching and search workloads.

• The Cloudline CL5200 Server is a high density, storage server designed for high-density storage to run cloud storage and data analytics/Big Data applications. It includes up to 80 hard disk drives in a single 4U chassis. For the Container Orchestration use case, we used HPE ProLiant DL360 Gen9 and DL380 Gen9 servers, designed for mixed workloads in enterprise environments. ProLiant servers have a long history for providing industry-leading performance and provide a comprehensive portfolio of versatile and reliable servers that deliver data center efficiency across numerous workload and application types.

• The ProLiant DL360 Gen9 server delivers an optimal 2P unit (with two Intel Xeon E5–2600 v4 processors) along with the latest HPE 2400 MHz DDR4 Smart Memory. It combines high-performance, low energy consumption, improved uptime, and increased density, all in a compact 1U chassis.

• The ProLiant DL380 Gen9 server delivers the latest in performance, also using Intel Xeon E5–2600 v4 processors and HPE 2400 MHz DDR4 Smart Memory. The DL380 Gen9, however, provides an extremely expandable environment that is also highly reliable and serviceable with near continuous availability. DC/OS services Spark Apache Spark is a fast and general engine for large-scale data processing. Spark has an execution engine that supports advanced features and in-memory computing. Using Spark, customers can run programs up to 100X faster than Hadoop MapReduce in memory, or 10X faster than on disk.

Cassandra Apache Cassandra is an open-source distributed database designed to handle large amounts of data across commodity servers, providing high availability with no single point of failure. Cassandra was designed for clusters spanning multiple datacenters providing high performance and low latency operations for all clients.

HPE and Mesosphere Simplify Container Management for Modern Data Centers Using Open Source DC/OS

Technical white paper Page 6 Kafka Apache Kafka is a high throughput, publish-subscribe messaging solution implemented as a distributed, partitioned, replicated commit log service. Kafka is extremely highly performing, with a single Kafka broker being able to handle hundreds of megabytes of reads and writes per second from thousands of clients.

Because of its distributed nature and message persistence across multiple replicas, the solution can be maintained or expanded live without downtime. Zeppelin Apache Zeppelin is a web-based notebook that enables interactive data analytics and lets you make collaborative data visualization documents with applications such as SQL and Scala. Zeppelin leverages interpreters that are pluggable language/data processing backends and can be used to build queries and data analysis. Zeppelin includes interpreters for Scala, Python, SparkSQL, Apache Hive™, Markdown, Shell and more. Data scientists can use Zeppelin to dramatically reduce the amount of time it takes to do data interpretation.

Marathon Marathon is a production-grade container orchestration platform for Mesosphere’s Datacenter Operating System (DCOS). Marathon is a mature platform that includes advanced placement characteristics, Service Discovery and Load Balancing, Multiple Container technologies (Mesos containers and Docker), and Health Checks.

DC/OS installation This section discusses the installation and configuration of the DC/OS environment for the Data Analytics and Container Orchestration use cases. We will not cover the DC/OS installation in detail and although DC/OS was installed in two separate environments, there were no fundamental differences between the installation processes aside from changing environment-specific information. We configured all DC/OS Cluster nodes as follows: Installed Red Hat Enterprise Linux 7.2 with Docker 1.10.3. Created a Logical Volume of type thin-pool from two physical disks on each node. Configured Docker daemon via a drop in file for Systemd to use Devicemapper Storage Driver, which was mapped to the Logical Volume thin- pool created in the previous step.

Stopped the firewall and set SElinux to permissive mode. DC/OS installation is an automated image-based install that provides optimized build settings based on customer inputs. You can find instructions for DC/OS installation at docs.mesosphere.com/concepts/installing/. The DC/OS CLI is installed on workstations to allow both Administrators and Data Analysts to interact with DC/OS, Spark, Kafka, and Cassandra through the DC/OS CLI and Service Sub-CLI without having to SSH directly into the DC/OS Master or Agent nodes.. You can find installation instructions for DC/OS CLI at docs.mesosphere.com/administration/introcli/cli/.

Data Analytics use case The Data Analytics use case uses a sample Twitter-like application called “Tweeter” that produces tweets, streams those tweets to Kafka brokers as they come in, and then stores the tweets in Cassandra, as shown in Figure 2. We will then use Zeppelin and Spark to perform real time analytics on those data streams. As described previously, Zeppelin enables interactive, real-time data analysis using interpreters like Spark SQL or Spark Streaming of your data. Zeppelin also provides the ability to create visually appealing graphical representations of this data, while Spark is the back-end engine that powers the data processing.

HPE and Mesosphere Simplify Container Management for Modern Data Centers Using Open Source DC/OS

Technical white paper Page 7 Figure 2. Tweeter application logical architecture (source: Mesosphere). Components Table 1 and Table 2 give the hardware and software components used for the Data Analytics use case, and Figure 3 shows how the physical components were placed in the rack. Table 1. Hardware components for the Data Analytics use case HARDWARE VERIFIED VERSION DC/OS Master Cluster Nodes HPE Cloudline CL 2100 • 2 x 10 cores (Haswell CPUs) • 128 GB Memory • One 2 TB OS Drive • Three 6 TB Data Disks DC/OS Agent Compute Nodes HPE Cloudline CL 2100 • 2 x 10 cores (Haswell CPUs) • 128GB Memory • One 2 TB OS Drive • Three 6 TB Data Disks HPE Cloudline CL5200 • 2x12 cores (Haswell CPUs) • 256GB Memory • One 2 TB OS Drive • Ten 6 TB Data Drives Network HP Procurve 2510–48 J9020A H3C S5820X Series Switch Storage HPE Cloudline CL5200–Compute + Storage • 2 x 12 Cores (Haswell CPUs) • 256 GB Memory • One 2 TB OS Drive • Ten 6 TB Data Drives

HPE and Mesosphere Simplify Container Management for Modern Data Centers Using Open Source DC/OS

Technical white paper Page 8 Table 2. Software components for the Data Analytics use case SOFTWARE VERIFIED VERSION DC/OS 1.6.1 Docker Daemon 1.10.3 Red Hat Enterprise Linux 7.2 Figure 3. Physical configuration for the Data Analytics use case. The Data Analytics use case has a total of 3 DC/OS Master Nodes and 12 DC/OS Agent Nodes, as illustrated in Figure 4. One of the Agent Nodes is configured with the DC/OS Public Agent role. This allows differentiated network security profiles to be applied to the server, since it will be used for exposing any applications that require access from the corporate network.

In this use case, a load balancer (marathon-lb) will be deployed to the Public Agent to expose the Tweeter application as well as the Zeppelin notebooks outside the cluster.

HPE and Mesosphere Simplify Container Management for Modern Data Centers Using Open Source DC/OS

Technical white paper Page 9 Figure 4. Data Analytics DC/OS component distribution (source: Mesosphere). DC/OS Spark service Spark natively supports using Apache Mesos as its “cluster manager” that is used to allocate resources across Spark jobs. Spark on DC/OS supports cluster mode. When you install the Spark package from the DC/OS Universe Repository (a repository that stores available DC/OS services), the Spark driver automatically starts running as a Cluster Dispatcher and is managed by Marathon.

HPE and Mesosphere Simplify Container Management for Modern Data Centers Using Open Source DC/OS

Technical white paper Page 10 Figure 5. Spark architecture on DC/OS (source: Mesosphere).

Data Analytics use case implementation After DC/OS is installed, you can add powerful and complex functionality with a single command, within just a few minutes. Without DC/OS, just installing and setting up one of these services can take days and weeks. DC/OS services also include the Management interfaces for those Services. This includes any CLI commands or web interfaces proxied over HTTP/HTTPS on the DC/OS Master Nodes and available from the Services Tab in the DC/OS Web UI.

DC/OS service installation and configuration The DC/OS service is installed and configured by using the following simple commands. For services that have sub-commands in steps 1–5, the sub-commands are installed automatically with the DC/OS package install command for those services. Install the Marathon load balancer (marathon-lb) DC/OS service, which provides simplified service discovery and service load balancing for Marathon applications. In this use case, the marathon-lb service is used for accessing the Tweeter application UI from outside the DC/OS cluster over a Load Balancer virtual IP address (VIP) and service port.

$ dcos package install –-yes marathon-lb Install the Cassandra service on DC/OS. NOTE: Customized install options are available by adding the --options=filename.json argument during installation. $ dcos package install --yes cassandra Install the Kafka service on DC/OS. NOTE: Customized install options are available by adding the --options=filename.json argument during installation. $ dcos package install --yes kafka

Technical white paper Page 11 Install Spark using the DC/OS CLI, just as with the other DC/OS services. More advanced options are possible by specifying a config.json file during the installation.

$ dcos package install --yes spark Install Zeppelin in the same way as the other DC/OS services. $ dcos package install --yes zeppelin In the previous steps, any associated DC/OS Sub CLI commands are installed automatically along with the DC/OS services. For Kafka, we used the DC/OS Sub CLI to add the three brokers and configure them.

$ dcos kafka broker add 0..2 $ dcos kafka broker start 0..2 To install the Tweeter application, it is pulled from GitHub and deployed by using the DC/OS Marathon Sub CLI. $ cd /home/user1/mesosphere/tweeter $ dcos marathon app add marathon.json At this point, the environment as shown in the Marathon Web UI should look like Figure 6. Figure 6. Marathon UI for the Data Analytics use case Next, we will check the services we stood up, including the Tweeter application. The Tweeter application has definitions that tell DC/OS to expose its application Interface in the marathon-lb service over a specific service port (in this case, the service port is 10000).

By opening a browser to http://:10000, we should be able to see the application without any tweets posted (Figure 7).

Technical white paper Page 12 Figure 7. Tweeter application UI exposed from the Marathon load balancer For this test configuration, we populated the Tweeter application with content by sending more than 100,000 tweets to Kafka. We sent the tweets using a Ruby application, which takes pieces of text from Shakespeare plays that have been stored in a text file. Figure 8 shows the Tweeter application again after the data has been populated. Figure 8. Tweeter application UI after populating with tweets. Now, we use Zeppelin to generate graphics from the artificially generated tweet data. Zeppelin Web UI traffic is exposed over two ports that are assigned by DC/OS dynamically by default.

Best practice is to configure Zeppelin to use Marathon-lb by using Marathon Labels that specify the load balancer profile and service port.

To perform real time analysis on the streaming tweet data, we navigate to the DC/OS Public Agent IP or Hostname with the Service Port configured for the Zeppelin Service (100001) and open the Zeppelin Web UI (Figure 9). a. From the Zeppelin Web UI, we can import a Notebook or create a new one. b. For demonstration purposes, we have imported the “Tweeter Analytics” Zeppelin notebook from our Tweeter application repository.

Technical white paper Page 13 Figure 9. Zeppelin UI Exposed from Marathon Load Balancer After importing the Zeppelin notebook, we run Spark Streaming tasks against the streaming dataset of “Tweets” as shown by the examples in Figure 10 through Figure 12.

Technical white paper Page 14 Figure 10. Zeppelin UI showing Tweeter Spark notebook. Figure 11. Zeppelin Tweeter Spark notebook showing pie chart of top tweeters.

Technical white paper Page 15 Figure 12. Zeppelin Tweeter Spark notebook showing bar chart of top tweeters. Data Analytics results DC/OS leverages all available cluster agents efficiently to execute the computational tasks on our data set (Figure 13). We can see the resource utilization of the cluster nodes increase because there are no other workloads running on these DC/OS Agents. DC/OS leverages Mesos dominant resource fairness (DRF), a fair-share algorithm to balance the work that needs to be completed throughout the cluster and to provide resources in a fair and consistent manner.

Technical white paper Page 16 Figure 13. Dashboard for the DC/OS UI. Container Orchestration use case The Container Orchestration use case is similar to the Data Analytics use case, but we installed it on a different hardware platform that is best suited for a mixed workload. Also, we only need the DC/OS Marathon and Marathon-lb Services to achieve this use case. The use case documents how to efficiently deploy a large number of applications on Marathon running on DC/OS, including a simulated legacy Java application running under Docker and a web server with a Corporate Menu running in a native Linux container.

The DC/OS platform provides a Universal Containerizer, which abstracts the underlying container technology from the application developers so they can focus on their application and not the isolation mechanism or infrastructure supporting it.

Technical white paper Page 17 Components Table 3 and Table 4 give the hardware and software components used for the Data Analytics use case, and Figure 14 shows how the physical components were placed in the rack. Table 3. Hardware components used in Container Orchestration use case HARDWARE VERIFIED VERSION DC/OS Master Cluster Nodes HPE ProLiant DL380 G9 • 1 x 6 cores (Haswell CPUs) • 64 GB Memory • 1.2 TB OS Drive DC/OS Agent Compute Nodes HPE ProLiant DL380 G9 • 2 x 12 cores (Haswell CPUs) • 256 GB Memory • 600 GB OS Drive • 6 TB Data Drive HPE ProLiant DL360 G9 • 2 x 12 cores (Haswell CPUs) • 256 GB Memory • 600 GB OS Drive • 6 TB Data Drive Network HPE FlexFabric 5900 series switch for 2 x 10 GbE connections to each server HPE FlexFabric 5700 series switch for 1 GbE connection to iLO ports on each server Storage 6 TB SAS data drives on the Agent Compute Nodes Table 4.

Software components used in Container Orchestration use case SOFTWARE VERIFIED VERSION DC/OS 1.6.1 Docker Daemon 1.10.3 Red Hat Enterprise Linux 7.2

Technical white paper Page 18 Figure 14. Rack configuration for Container Orchestration use case.

Technical white paper Page 19 Logical architecture Figure 15. Logical architecture of DC/OS with Marathon (source: Mesosphere). Marathon service for DC/OS Marathon is a cluster scheduler that provides extremely scalable cluster-wide deployment and management of application services running on DC/OS. The Marathon framework consumes Mesos resource “offers” and facilitates the running of tasks based on these resources. Marathon provides a common abstraction language for starting, scheduling, and scaling application services on distributed clusters of x86 servers that are managed by DC/OS.

In the context of this whitepaper, Marathon is a DC/OS service running on top of DC/OS; it includes its own scheduler that can add, restart, scale, and stop tasks or application services within containers.

For this use case, Marathon handles the “plumbing” for our application, including the following: • Scaling the application • Ensuring it is running the correct number of instances • Automatically updating the Load Balancer Pool members as the application is scaled • Monitoring the health and versioning for the applications Container Orchestration use case implementation DC/OS ships with its own resilient Marathon service for managing long running applications on DC/OS that we will use for the Container Orchestration use case.

The only other DC/OS Service we will need for this use case is marathon-lb, which provides simplified service discovery and service load balancing for Marathon applications.

Technical white paper Page 20 DC/OS service installation and configuration As with the Data Analytics use case, the DC/OS service can be installed and configured by using a simple command. Install the marathon-lb using the following command. $ dcos package install –yes marathon-lb At this point, you will have a DC/OS cluster environment with marathon-lb running on the DC/OS Public Agent ready to expose VIP addresses and ports of Marathon applications that are configured to use load balancing services.

Figure 16. Marathon UI showing Container Orchestration use case. Test corporate web menu server using native Linux containers DC/OS supports both native Linux containers as well as Docker containers—all with the same Marathon application specification language.

The following steps show how to configure a Marathon application to run a Web Server in Python inside a native Linux container. The application serves a Corporate Cafeteria Menu from the Load Balancer VIP. The Marathon Load Balancer will proxy the connections back to the pool members as we scale up the application.

As shown in Figure 17, the Marathon application definition is a simple.json file.

Technical white paper Page 21 Figure 17. Web Menu Python application definition for native Linux container. We can deploy the application from the Marathon UI or from the DC/OS CLI. The example below uses the DC/OS CLI. $ dcos marathon app add 0c-python-corpmenu-lb.json Figure 18. Container Orchestration Marathon UI with Web Menu application. The Corporate Menu application definition contains instructions for connecting this application to the Load Balancer and which TCP Port to expose for the Web Service.

This port gets proxied back to the specific DC/OS Agent on a randomly chosen port that is assigned and

Technical white paper Page 22 managed by Mesos and Marathon for each instance in our application. We started the web-corpmenu-lb application with a single instance but as we scale, Marathon manages the complexity for us. NOTE: For an explanation of Marathon application definitions and syntax, see mesosphere.github.io/marathon/docs/application-basics.html. Next, we test the application by accessing the Load Balancer VIP on the service port we specified (10001). The Load Balancer is running on our DC/OS Public Agent, which is

Figure 19. Container Orchestration Web Menu application UI exposed by Marathon load balancer.

Now we can scale our application to 1000 instances. Marathon will deploy the instances, track the progress of each instance, and display the status in the UI. The instances are very quickly instantiated throughout the cluster on the nine DC/OS Private Agents.

Technical white paper Page 23 Figure 20. Scaling the Web Menu application to 1000 instances (shown in Marathon UI). Figure 21. Marathon Web UI manages and displays status during scaling activity for Web Menu application.

Technical white paper Page 24 As the Marathon application for the Corporate Web Menu scales to 1000 instances, Marathon spreads these instances automatically across the available DC/OS Agents. Marathon distributes the instances according to the utilization and the application Constraints initially provided in the Marathon application Definition.

Figure 22 shows the DC/OS cluster utilization starting to increase. Figure 22. DC/OS Cluster utilization with 1000 instances running of Web Menu application. Test network Java application using Docker image After the 1000 instances of the Corporate Web Menu are started, we will build and deploy a second Marathon application. This Marathon application leverages a previously built Docker image that installs a Java Runtime Environment and the binaries for our application from a Uniform Resource Identifier defined in the Marathon application definition. Ultimately, this application will run Apache FTP Server based on the Apache MINA Project.

Technical white paper Page 25 Figure 23. Marathon application definition for Java application in Docker container. To deploy the application using the DC/OS CLI, use the following command. $ dcos marathon app add 10b-apacheftp-java-docker.json

Technical white paper Page 26 Figure 24. Marathon UI after adding single instance of Java application for Docker. Figure 25 shows the application scaled to 250 instances. Figure 25. Marathon UI after scaling Java application to 250 instances.

Technical white paper Page 27 Unlike the Web Server example, we are not using a Load Balancer for this application.

Therefore, in this case, we would rely on a Service Discovery tool like Mesos-DNS. (Mesos-DNS is included in and configured automatically with DC/OS). For this exercise, we can use the Marathon UI to determine the IP: Port combination assigned by Marathon for the application instance that we want to connect to. Figure 26. Marathon UI network information for one instance of the Java application.

We can now use an FTP client to test one of the 250 instances deployed for our test Java application. Figure 27. Java application test From Linux Bash FTP client.

Technical white paper Page 28 Container Orchestration results In this example, we delivered a large number of application instances across the DC/OS cluster running on two different Container technologies in a matter of minutes and scaled these applications to hundreds of Instances in a matter of seconds. We also achieved higher utilization levels with our DC/OS cluster getting a better ROI for our hardware investment.

Figure 28. Marathon UI showing both applications running at scale. Figure 29. DC/OS UI cluster utilization with both test applications running at scale.

Technical white paper Page 29 Figure 30. DC/OS Dashboard with both test applications running at scale.

Technical white paper Page 30 Sign up for updates Rate this document © Copyright 2016 Hewlett Packard Enterprise Development LP. The information contained herein is subject to change without notice. The only warranties for HPE products and services are set forth in the express warranty statements accompanying such products and services. Nothing herein should be construed as constituting an additional warranty. HPE shall not be liable for technical or editorial errors or omissions contained herein.

Intel and Xeon are trademarks of Intel Corporation in the U.S. and other countries. Linux is a registered trademark of Linus Torvalds. Microsoft is a registered trademark of Microsoft Corporation in the United States and/or other countries. Red Hat and Enterprise Linux are registered trademarks of Red Hat, Inc. in the United States and other countries. 4AA6-5134ENW, April 2016 Conclusion The Datacenter Operating System (DC/OS) is an open-source, industry-proven platform of choice for enterprises running modern apps, powered by the Apache Mesos distributed systems kernel. For enterprises and cloud service providers, using DC/OS with HPE ProLiant and Cloudline Servers enables an automated hyperscale operating model using open-source software.

Enterprises get the broadest flexibility and agility in running modern distributed applications and the confidence only possible from HPE systems.

Resources, contacts, or additional links HPE solutions hpe.com/us/en/solutions/infrastructure.html HPE technical white papers hpe.com/docs/servertechnology Mesosphere mesosphere.com DC/OS open source dcos.io

You can also read