8
REFERENCE ARCHITECTURE Deploying a distributed application with containers & software-defined storage A Hedvig, Docker Datacenter, and Quanta Cloud Technology reference architecture

Deploying a distributed application with containers & software

Embed Size (px)

Citation preview

Page 1: Deploying a distributed application with containers & software

REFERENCE ARCHITECTURE

Deploying a distributed application with containers & software-defined storage

A Hedvig, Docker Datacenter, and Quanta Cloud Technology reference architecture

Page 2: Deploying a distributed application with containers & software

REFERENCE ARCHITECTURE | 2

Table of Contents

Executive Summary ........................................................................................................................3Introduction: Achieving Application and Infrastructure Agility ............................................4Solution: Hedvig, Docker and Quanta for Containers and Microservices .......................4

Enabling products and technologies ..................................................................................................5

Versions .................................................................................................................................................................6

Solution Deployment and Operation .................................................................................................6

Orchestration with Docker Universal Control Plane ...................................................................................6

Creating Hedvig Virtual Disk volumes .............................................................................................................7

Data persistence and portability .....................................................................................................................7

Compose, deploy and manage the application ...........................................................................................8

Solution results ...............................................................................................................................8Conclusion ........................................................................................................................................8Related resources ...........................................................................................................................8

Copyright © 2016 Hedvig Inc. All rights reserved. | Version 1.0

Hedvig believes the information in this publication is accurate as of its publication date. The information is subject to change without notice. Hedvig makes no representations or warranties of any kind with respect to the information in this publication All trademarks are the property of their respective owners.

2350 Mission College Blvd, Suite 500Santa Clara, CA 95054www.hedviginc.com

Page 3: Deploying a distributed application with containers & software

REFERENCE ARCHITECTURE | 3

Executive Summary

The pace of change in today’s marketplace has spawned the need for solutions that enable rapid rollout and iteration of business applications that help capitalize on new opportunities and revenue streams. This reality has fueled the advance and adoption of container technology and a distributed systems approach to application infrastructure. A 2015 report on container adoption reflects that over 93% of those surveyed already use or plan to use containers in the near future. Like server virtualization over the past decade, containers and a cloud-like, commodity server-based infrastructure hold the potential to transform how enterprises deliver apps with new levels of agility.

Docker has lead the way in building momentum for containers and has emerged as the de facto standard for building, shipping, and running modern distributed applications and microservices. The open-source technology helps DevOps teams deliver lightweight, portable applications that deploy effectively on any hardware and simplify scaling and system management.

Hedvig delivers the perfect complement to Docker deployments, offering a flexible software-defined storage solution for containers. Born out of distributed systems technology pioneered by web-scale giants, the Hedvig Distributed Storage Platform ensures automation of provisioning, persistence and portability of business data, full programmability, and a complete set of data services needed for a dynamic container-based environment.

Quanta Cloud Technology (QCT) delivers a wide-range of standardized hardware that enables the software-defined data center. The company partners with industry-leading software vendors to enable private and hybrid cloud initiatives with seamless interoperability and optimized performance.

This paper, intended for IT architects, administrators, and technology solution providers, highlights the utilization of these technologies with a web-application based on Apache web server and a MongoDB NoSQL database, illustrating the available building blocks, the business benefits and helpful general guidelines for a successful deployment.

Page 4: Deploying a distributed application with containers & software

REFERENCE ARCHITECTURE | 4

Introduction: Achieving Application and Infrastructure Agility

Enterprises seeking to keep pace with ever-changing

business requirements are adopting new approaches

to application delivery and infrastructure. A wealth of

solutions driven by the web-scale innovation inside

companies like Facebook, Google, and Amazon have

begun to change the face of IT inside corporations and

organizations of all sizes.

Container technology, software-defined storage, NoSQL

databases, web services, and racks of standardized

commodity x86 server nodes with flash and hard drives

are the new building blocks of the modern data center.

Traditional approaches to infrastructure – namely

proprietary, monolithic hardware-software solutions – are

falling out of favor due to their inflexibility, long deployment

cycles, and high cost. Enterprises instead want to decouple

applications from the underlying hardware, to spin up

applications quickly, to scale infrastructure incrementally,

and to expand or contract as needed based on business

requirements.

The solutions highlighted in this paper, each considered a

leader in their respective technology space, are combined

to deliver a highly flexible, cost-optimized architecture. This

includes:

‹ Docker for container creation, deployment and

management.

‹ Hedvig for software-defined storage.

‹ Quanta Cloud Technology for hyperscale application

and storage server hardware.

These companies and technologies work together to

deliver an easily-deployable, highly-scalable, automated

application infrastructure. The following information details

an example two-tier web application deployment and

illustrates how the technologies complement each other

and enable scale from small to extremely large.

Solution: Hedvig, Docker and Quanta for Containers and Microservices

Modern applications need a modern platform to ensure

speed and scale. Docker, Hedvig and Quanta have

collaborated to deliver a blueprint that helps you build, deploy and manage containerized applications and

Figure 1. A flexible application platform with Hedvig, Docker, and Quanta

Page 5: Deploying a distributed application with containers & software

REFERENCE ARCHITECTURE | 5

microservices simply and effectively, and to scale-out to meet growing demands. The solution is designed to support businesses as they move toward a continuous integration and continuous deployment (CI/CD) model and to help DevOps engineers and IT professionals get started with container-based applications in a commodity-based, software-defined environment.

Enabling products and technologies

Hedvig Distributed Storage Platform – a software-defined storage solution that virtualizes and aggregates flash and spinning disk in a commodity-based server cluster or cloud, presenting it as a single, elastic storage system that can be accessed as block, file, or object storage. Hedvig improves storage flexibility and economics for container-based environments. There are two main components in the Hedvig architecture:

‹ Hedvig Storage Service – a distributed systems engine that scales storage performance and capacity with x86 and ARM servers – including cloud instances.

‹ Hedvig Storage Proxy – a lightweight VM, container, or physical node that delivers read/write access to the Hedvig Storage Service via industry- standard protocols, performs local read caching, and enables client-side deduplication.

Hedvig Docker Volume Plugin – driver software that utilizes the Docker Volume API and enables a Docker host to access Hedvig as its underlying storage and ensures persistent, portable access to storage resources. The Hedvig Docker Volume Plugin installs on each host that requires access to Hedvig storage.

QuantaGrid rack-mounted servers – QuantaGrid rack-mounted servers – Tailored for hyperscale data centers and software defined storage, QCT’s innovative D51PH-1ULH features a hybrid tiered storage architecture in an ultra-dense hot-swappable 1U platform. D51PH-1ULH is a rackmount server based on Intel® Xeon® processor E5-2600 v3, v4 product family and with up to 1TB memory capacity. It hosts up to 12x hot-swappable 3.5” disk drives and 4x hot-swappable 2.5” SATA SSDs.

Docker Datacenter – an integrated container-as-a-service solution that includes leading Docker open source projects, commercial software, and integrations with validated and supported configurations.

‹ Docker Engine – a lightweight Linux-based runtime operating environment used to build and run Docker containers.

‹ Docker Swarm – Docker Swarm provides container orchestration and Docker clustering that turns a group of hosts into a single, virtual Docker Engine to enable operating container deployments at scale.

‹ Docker Universal Control Plane – an enterprise-grade on-premises service and web admin graphical user interface (GUI) for managing and deploying Dockerized distributed applications on-premises or in virtual clouds.

‹ Docker Trusted Registry – an on-premises service for storing, distributing and securing container images that enables secure collaboration between developers and sys admins to build, ship and run applications.

Apache Web Server – an open source Web server application also known as Apache HTTP Server that delivers web content over the Internet.

MongDB – an open source, document-oriented NoSQL database that stores records using Javascript Object Notation (JSON) and scales across multiple distributed systems and locations.

Figure 2. Node monitoring with Quanta System Manager (QSM)

Page 6: Deploying a distributed application with containers & software

REFERENCE ARCHITECTURE | 6

Versions

Product Version/Model

Hedvig Distributed Storage Platform 1.2.0

QuantaGrid D51PH-1ULH

Docker Engine 1.11.1

Docker Swarm 1.2.3

Docker Universal Control Plane 1.1.1

MongoDB 3.2

Apache HTTP Server 2.4.20

Solution Deployment and Operation

As an example of how the combination of containers, software-defined storage, and a commodity server infrastructure facilitate application deployment, consider a two-tier Web application deployment composed of a web-tier (Apache HTTP Server) and a database tier (MongoDB).

The solution test environment includes:

Three QuantaGrid D51PH-1ULH storage nodes running the Hedvig Storage Service:

‹ 2 x Intel ES5-2630 v3 8-core CPU ‹ 192GB RAM ‹ 12 x 6TB HDD to store Hedvig storage pools ‹ 2 x 960GB SSD to host Hedvig metadata and server-side

caching ‹ 1 x 10GbE Dual Port RJ45 module network (data) & 1 x

1GbE network (management)

One QuantaGrid D51PH-1ULH application node running Docker Datacenter components, the Hedvig Storage Proxy and Hedvig Docker Volume Plugin:

‹ 2 x Intel ES5-2620 v3 6-core CPU ‹ 64 GB RAM ‹ 6 x 1 TB HDD to store local OS and applications ‹ 2 x 400 GB SSD to host Hedvig metadata and client-side

caching ‹ 1 x 10GbE Dual Port RJ45 Module Network (data) & 1 x

1GbE Network (management)

Orchestration with Docker Universal Control Plane

Docker Universal Control Plane (UCP) is designed for organizations of all sizes that want to deploy an application environment on-premises or virtual private cloud. UCP integrates with key systems like LDAP/AD to manage users and provides an interface for IT operations teams to deploy and manage Dockerized applications – including storage volumes – in production environments. With a simple point and click, you can perform functions like start, stop, destroy, rename and scale applications and containers.

Once you deploy containers and compose apps they appear in the UCP web UI letting you monitor applications and containers, and view details such as stats logs and CPU utilization. With a simple point and click, you can perform functions like start, stop, destroy, rename and scale applications and containers.

Figure 3. Docker Universal Control Plane overview dashboard

Page 7: Deploying a distributed application with containers & software

REFERENCE ARCHITECTURE | 7

Creating Hedvig Virtual Disk volumes

To host stateful data created and used by MongoDB, a first step is to create storage volumes, known as Hedvig Virtual Disks. Rather than enforcing features at a global level, Hedvig Virtual Disks let you customize volumes by protocol, capacity, and a range of storage services. The advantage of this approach is that you can select at a granular level the kind of storage characteristics you need for a perfect fit with your container or microservice workload.

As shown in Figure 3, you can define a volume directly within UCP. Simply input a name, indicate “Hedvig” as the driver, and then choose characteristics for the volume including size and optional features as comma separated values in the OPTIONS field.

The available parameters for Hedvig Virtual Disks include:

‹ Deduplication and compression – reduces size of data stored.

‹ Replication factor – indicates the number of copies to create across the storage cluster.

‹ Replication policy – indicates where to place copies including across different racks or different data centers.

‹ Client-side caching – enables write-through caching on local SSDs to accelerate read performance at the application host.

Once the name, size, and any options are entered, by clicking Create, Docker will communicate via the Hedvig Volume Plugin to the Hedvig Storage Service to request that the Virtual Disks be created and made available.

Data persistence and portability

By default, a Docker host access local storage. With the Docker Volume Plugin framework however, containers on a host have the ability to send read and write I/O to shared storage paths. The benefit of this approach is to maintain stateful data outside of the container and outside of any given host to allow data to be persisted and made available to other containers on the same or different hosts. You can destroy, update, rebuild, or move your container and the data volumes will remain in place. If a container is stopped on host A, for example, it can be restarted on host B and have full access to its data.

Hedvig works with the Docker Swarm orchestration layer, which moves, spins down, and spins up containers with the ability for that container to access its volume from any host in the cluster. If you stop a container on host A, for example, it can restart on host B with full access to its data.

There are two approaches to ensuring data persistence and portability with Hedvig and Docker:

1) Define Virtual Disks as NFS volumes: Container volumes defined as NFS Virtual Disks enables a volume to be mounted and available via multiple hosts. Hedvig’s unique software-defined capabilities ensure this scales across a multi-reader environment. The Hedvig Storage Proxy architecture optimizes NFS traffic, eliminating any performance downside while maintaining the multi-host, multi-tenant upside.

Figure 4. Creating a Hedvig Virtual Disk from UCP using the Hedvig Volume Plugin

Page 8: Deploying a distributed application with containers & software

REFERENCE ARCHITECTURE | 8

ABOUT HEDVIG

Built by software engineers of the world’s largest distributed systems, Hedvig delivers modern storage for enterprise compute environments running at any scale. Customers using the Hedvig platform transform their storage from a box where data resides to a fundamental business enabler.

©2016 Hedvig Inc. All rights reserved. | Version 1.0

2350 Mission College Blvd, Suite 500Santa Clara, CA 95054www.hedviginc.com

2) Define Virtual Disks as iSCSI volumes with Flocker: Virtual Disks can alternatively be defined as iSCSI volumes. While iSCSI doesn’t support access to volumes across hosts, this functionality can be achieved by utilizing the ClusterHQ Flocker solution. Hedvig’s Flocker driver provides the integration with Flocker to enable volumes to move between Docker hosts and delivers multi-host access to containerized applications. (For more information on

Hedvig & ClusterHQ, visit http://www.hedviginc.com/flocker).

Compose, deploy and manage the application

From UCP you can compose a web application directly in the web interface. In the application tab you can name the application and load a Docker Compose file that defines the services, networks and volumes you wish to use.

For our application, Docker Compose pulls the Apache and MongoDB images from the repository on the Docker Trusted Registry and start the containers with the indicated parameters – including creating and mounting the Hedvig Virtual Disks. You can manually or automatically move containers, deploy additional containers, and even reduce the number of deployed containers with ease without disrupting the application.

Docker Swarm schedules the containers on the available hosts. Where multiple hosts exist, Swarm chooses to place containers on nodes based on your company’s chosen

strategy for scheduling on or across nodes.

Solution results

The combination of Hedvig, Docker, and Quanta provides an enterprise-ready, horizontally scalable solution that helps you rapidly roll out applications to keep pace with your fast changing business. Its modular nature scales from a small environment supporting test and development to thousands of stateful containers in a production deployment, all dynamically provisioned across a distributed systems architecture. Simply add nodes to scale

application capacity, storage capacity, or both.

Conclusion

Modern, software-defined, distributed application platforms and infrastructure enable today’s enterprises to develop and deliver applications at a higher velocity than ever before possible. By combining Docker Datacenter container orchestration with Hedvig software-defined storage, all running on standard x86 datacenter-class servers from Quanta, enterprises can:

‹ Maintain a competitive edge by responding quickly to business opportunities and change.

‹ Shorten development cycles and lower the costs of deploying and maintaining applications.

‹ Decrease infrastructure complexity and lower total cost of ownership (TCO) while increasing efficiency.

Related resources

‹ Delivering Containers as a Service with Docker Datacenter

‹ Quanta Cloud Technology – Extending the power of hyperscale datacenter design

‹ How Hedvig software-defined storage integrates with Docker Datacenter

Figure 5. Application definition with Docker Compose