Today CliQr announced support for Docker containers. In this blog I’ll explain how to use CliQr to deploy and manage “composite” application stacks that include a containerized application along with a traditional MySQL image or cloud database service.
I’ll also show how easy it is to deploy a single container web app, and a multi-container topology to any supported cloud. I’ll expand on this short video demo of CliQr support for Docker to explain what is happening behind the scenes.
There are quite a few new tools in the Docker ecosystem that address various aspects of container management and orchestration. However, CliQr CloudCenter is an application centric cloud management platform that works with a wide range of existing and new application types and technologies – now including Docker containers.
In other words, we didn’t create a tool to orchestrate and manage Docker containers. We built a powerful platform that allows users to easily onboard a wide range of types of applications and deploy across multiple cloud environments without having to understand the details of the cloud platform and APIs. AND, it is extendable so that users can easily incorporate new technologies like Docker containers.
Docker has emerged as powerful new technology that eliminates friction across the software development lifecycle. Containers are not new. However, Docker offers an innovative framework that builds on Linux container technology and offers a new way to package and deploy applications. Dockers offer a “Build once, run anywhere” value proposition that helps developers streamline the SDLC, reduce time spent on non-development work, and improve time to market.
With Docker, developers can move from the typical “yum install httpd” plus two hours of detailed Apache configuration, to push-button deployment. Docker is popular with developers because it allows them to solve problems programmatically.
Find a great Docker primer “The Docker Book” by James Turnbull, formerly VP Technology Operations at Puppet Labs, now advisor with Docker.
Docker use is maturing
There is an interesting GigaOm interview with Steve Herod former CTO VMware, and now with venture firm General Catalyst Partners. He suggests that 2014 was the year of Docker awareness. But 2015 will be the year of reality as we figure out impact of containers. Steve starts at 13:00 Docker comments ~27:00
I think as the use of Docker matures, more mainstream developers are going to want to move beyond command line execution of Docker commands and utilize more familiar tools.
CliQr’s Docker strategy is based on three key assumptions:
- Containers will be found in traditional IT production environments. Containers are not just for cloud providers and web-scale apps with micro services architectures. Containers will be used in the Enterprise for both new and traditional multi-tier applications.
- However, enterprise IT environments won’t be 100% containerized. There will continue to be critical dependencies for multi-tier or distributed application architectures that aren’t containerized.
- IT doesn’t want a new silo. IT groups will want way to manage new and old applications, containers and non-containerized topologies, in both dedicated and cloud environments – from a single platform.
That is where CliQr comes in.
Why Docker + CliQr?
CliQr offers a compelling solution for container use in the enterprise. CloudCenter delivers the power of a platform to manage a wide range of applications including those based in full, or in part on container technology.
For developers, it builds on the container value proposition of not having to spend time on environment and configuration tasks. For IT, it delivers complete visibility and control including policy-based governance, role-based access control, release lifecycle management, metering and aggregated financial controls including billing, chargeback and showback.
For both developers and IT, it abstracts the details of underlying cloud technology and reduces need to learn and maintain expertise on multiple cloud platforms that will be typical in enterprise hybrid cloud deployments. Containers and composite container applications can be easily deployed to any CliQr supported on premises or public cloud environment.
Explaining how it works
To demonstrate how CliQr CloudCenter works with Docker containers, we have built and posted several single container, multi-container, and composite container application templates. CloudCenter SaaS customers can search for “Docker” in the Public Marketplace and find a group of sample application templates. They can be deployed to any cloud as-is, or easily modified for other container applications or unique POC efforts.
I’d recommend you watch this short video demo first.
Lets walk through three examples using the SaaS version of CloudCenter:
- Composite Topology – WordPress container and traditional non-containerized MySQL deployed in separate VMs, or WordPress deployed with with Amazon Cloud Service
- Two Container – WordPress and MySQL containers deployed in a single VM
- One Container – user can select any container from Public Docker Hub
To deploy a container version of WordPress sourced from the Docker public hub, along with a with a traditional MySQL database, a user would select the appropriate application template from the CliQr Enterprise Marketplace as seen in Figure 1.
A window opens, and the user gives the deployment a name, selects the target cloud – in this case Amazon East and aging policy (in this case 1 hour) as seen in Figure 2. Figure 2 – Deployment parameters
CliQr supports 8 public cloud environments in addition to 9 dedicated or private cloud environments. The user then enters database password and select the size of the resources for the container and the database (m1.small) then click submit as seen in Figure 3.
A status screen appears and show deployment is in progress as seen in Figure 4.
When deployment is complete, the status screen offers a button to access the deployed application as seen in Figure 5.
That’s it. That is all a user has to do to deploy a containerized WordPress with traditional MySQL!
Lets look at what happened behind the scenes.
Figure 6 shows the Topology Designer and selecting the containerized app node, we see that some parameters are passed to an initialization script.
Figure 7 shows the initialization script. The script installs Ubuntu, imports repository key, installs Docker, and executes “docker pull” and “docker run” using container name imported as “$1”. We use –d to run in detached mode as the container is no longer listening to command line where docker run is executed. And –p to specific hostport:container port. Then the script installs the traditional MySQL image from the CliQr repository, passes the database password, and sets port ID.
A closer look at the custom parameters for this container node shows in Figure 8 that “library/wordpress” is the file name that is sourced directly from the public Docker hub.
Figure 8 – Custom parameters.
CliQr CloudCenter is an application-centric cloud management that is designed to handle a wide range of application types and is flexible enough to include new technologies like Docker containers in the design and provisioning of multi-node stacks.
A related composite topology would be the same containerized Docker WordPress, using a cloud database service. Here is a sneak peek of future post where I’ll highlight how to use Topology Composer. As seen in Figure 9, changing out traditional MySQL database for the Amazon RDS MySQL service is as simple as dragging the Cloud Service to the pallet, then moving the connector.
CliQr CloudCenter abstracts the details of various cloud environments so users – both developers and IT operations – can design and deploy various application templates without having to understand the specifics of the underlying cloud API.
This is a longish blog post. Click here to Request a Demo. Otherwise, lets look at a couple other pure container examples in a bit less detail.
In this scenario, we’ll pull the official Docker repo version of WordPress and MySQL containers, and deploy in a single VM on Amazon. This could be a drug research app stack or insurance quoting tool or any other multi-tier enterprise application where developers are using containers for accelerated development.
A slightly different version of this example would provision each container in separate VMs. In both cases we configure ports and other specifics for the deployment. Figure 10 shows the node initialization that points to the initialization script.
Figure 11 shows the initialization script for a two container deployment. As with the previous example, the script installs Ubuntu, imports keys, installs Docker, pulls two containers and runs those containers pulling password, and setting host:container ports.
Figure 12 shows customer parameters, where library/WordPress and library/MySQL are sourced directly from the public Docker hub.
As with the previous composite example, a user would select the application stack, select the target cloud, specify resource sizes and deploy. With CliQr, the user experience deploying both containerized and non-containerized applications is the same.
This final example highlights the ability to quickly and easily select and deploy any single container web application to any supported cloud. In this case, we specify Jenkins from the Docker Public hub, and deploy to Amazon East, on an “m1.small” configuration using container port 80.
In Figure 13 – we see topology view of a single node application, and the node initialization command that passes container name and port variables to the initialization script.
Looking at the initialization script for this single container image, we see in Figure 14 this version is very similar to other examples, where variables $1 container name and $2 port ID are passed to this script.
However, in this example, the properties are set to “show user” so the image name and port number variables become input fields. When this particular application is deployed, the user would select cloud and instance size, but also input Docker image name and container port as seen in Figure 15. In this case we used “library/Jenkins” and “80”.
Figure 15 – additional launch properties
A few minutes later we check on status of cloud app runs and see successful deployment in Figure 16.
We click on the “Access single container webapp” and it takes us to a fresh Jenkins instance deployed from Docker hub container — to Amazon cloud as seen in Figure 17.
CliQr gives developers a simple way to deploy and test containers on any cloud. In a future post I’ll show how developers can use the benchmarking feature to deploy a container topology to multiple clouds simultaneously, or to multiple resource sizes – in order to benchmark price and performance.
CliQr support for Docker offers a powerful way to deploy and mange both pure container topologies, as well as composite topologies that include non-containerized components. The combination of configuration parameters specified in a Docker file with the flexibility of the CliQr CloudCenter platform – gives both developers and IT a wide range of options for container deployment in the enterprise.
Request a Demo – to find out how you can use CliQr to meet your hybrid cloud application management needs including Docker containers.
Future CliQr support for Docker blogs:
- Benchmark price and performance by simultaneously deploying container stack across clouds, or with different resource configurations.
- Using Topology Designer to drag and drop containers into multi-container or composite topologies.