Deploying Docker Containers on CenturyLink Cloud

If you’ve been reading cloud-related news lately or you follow any developers or system admins on Twitter, then you’ve undoubtedly seen the words “container”, “Docker”, and “CoreOS” written a few thousand times over the past year or so. Chatter has particularly picked up in the last few months with Docker 1.0 being released in June and CoreOS announcing their first stable release within the past few weeks. CoreOS also received an 8 million dollar investment just a couple of months ago, and Docker just got another $40 million in funding a few days ago. And just yesterday, CenturyLink joined the container party and announced the release of the open-source Docker management platform, Panamax. Developed by the recognized thought-leaders at CenturyLink Labs, Panamax was described by RedMonk principal analyst James Governor as “Docker management for humans. It dramatically simplifies multi-container app deployment.”

This is bleeding edge technology we’re talking about here, so if you haven’t heard about any of it yet, there’s no time like the present. Docker is one of the fastest-growing open-source projects ever, with more than 550 contributors and 7 million downloads in just over a year since its release. The power of Docker lies in its ability to build and deploy applications in containers, which are extremely efficient and more portable than traditional virtual machines. This is because they abstract only the operating system kernel rather than an entire device. Of course, there are plenty of places to read up and find out more information on what all the fuss is about, and none are better than our very own CenturyLink Labs blog, where the Labs team has been pumping out exceptional content about all things Docker and CoreOS for months.

But if you’re like me, you’ll never be satisfied just reading about anything – you want to try it already! If so, I’ve got good news for you. Whether you’re looking to just get your feet wet and experiment with containers or you’re feeling ready to jump right into the deep-end and start deploying applications with them, CenturyLink Cloud has got you covered. There are at least three ways you can get Docker up and running on CenturyLink Cloud right now: install Docker on a CentOS server, provision a CoreOS server running Docker, or take advantage of Panamax and make it even easier to use Docker. Whichever route you choose, all you need is a CenturyLink Cloud account to get started.

Option #1 – Installing Docker on CentOS

You might not be too familiar with CoreOS, so if you want to get started using Docker on a more familiar Linux distribution, you can easily use our Docker blueprint to install it on any CentOS server running on CenturyLink Cloud. You’ll even get the option to deploy a Hello World container so you can see a simple example of how Docker containers work and get started building your own.

CentOS Blueprint Docker CentOS Blueprint


Option #2 – Installing CoreOS

Interested in CoreOS? This lightweight Linux distribution is optimized for massive server deployments and it comes with Docker preinstalled because it’s designed specifically to run applications as containers. You can follow our step-by-step instructions or watch our how-to video for using blueprints to build a CoreOS server cluster on CenturyLink Cloud and start deploying your applications on Docker in minutes.

Option #3 – Installing Panamax on CoreOS

Maybe you like the idea of Docker and CoreOS, but you’re not a Linux expert and you’re a little afraid of getting too into the weeds on the command line. If so, CenturyLink Labs has developed just the answer for you: Panamax. Panamax is a single management platform for creating, sharing, and deploying Docker-containerized applications. By following similar steps to our CoreOS deployment above and selecting the “with Panamax” version of the blueprint, you can have a CoreOS server up and running with Panamax installed in no time, and there’s no easier way to get started with Docker.

Docker Instructions

Not only can you use Panamax to deploy images from Docker’s repository, you can also deploy complex multi-container Dockerized apps from Panamax’s Open-Source Application Template Library. Think of these templates as collections of Docker images that work together to form the complete architecture of an application, with separate containers for the database vs. web tiers, for example.

Docker Management

CentOS Docker Management


If you’re looking to deploy one of the available template options like Wordpress or Drupal, you’ll have it working with a single click in seconds flat. However, you can also choose to define your own custom templates to use and even add custom repositories to search as the Panamax community grows. There’s no easier or faster way to start using Docker containers than with Panamax, and it’s built to leverage the power and scale of CoreOS.

Panamax & Docker Portal

CentOS Server

Wordpress & Drupal On Docker

Have a server already? Install Docker! Curious about CoreOS? Provision it! Feeling overwhelmed? Try Panamax. With CenturyLink Cloud, you’ve got lots of ways to get started using Docker right now, so no more excuses! Sign up for a CenturyLink Cloud account today and add containers to your repertoire of application deployment options today and start enjoying their power, performance, and portability.

Related Resources: Cloud Server, Private Cloud, Object Storage, Cloud Orchestration

Five Things I Learned From Attendees at the Microsoft WPC Conference

Last week, CenturyLink Cloud attended the Microsoft Worldwide Partner Conference in Houston, TX and hosted a booth where hundreds of attendees stopped by to talk about the cloud. Besides seeking what one attendee called “the best t-shirt from any conference, ever”, most people wanted to have a discussion about how the cloud could positively impact their business. With over 15,000 attendees from over 150 countries represented, this conference offered us a prime opportunity to hear about the interests and needs of a diverse audience.

Over the course of four days, I noticed a theme among the conversations I had with software vendors, Managed Service Providers, consulting companies, and even Microsoft themselves!

#1 - We’re past the “cloud 101” discussion

It appears that a vast majority of technical staff now understand the basics of the cloud value proposition. There was no “what is this cloud thing people are talkin’ about?” types of questions from any of the attendees. Rather, the questions and conversations were more nuanced as Microsoft partners were trying to figure out how they could capitalize on the cloud, and where the cloud was forcing them to change their existing set of products and services. Most people understood that the cloud brings agility, and that it may not result in an explicit cost savings. It was fun to brainstorm and debate the merits of cloud computing for specific scenarios and workloads and help people find the right uses for cloud platforms.

#2 – The market seems interested in much more than CPU cost and massive scale

Price drops and eye-popping case studies dominate the tech press, but these conference attendees were more focused on looking at the whole picture. Cheap CPUs and storage are nice, but there’s a lot more to running applications in the cloud than that. Likewise, the stories of customers running 50,000 core clusters or scaling to thousands of machines are fantastic, but those represent a small fraction of the daily workloads being run by small and large businesses. Instead, I heard again and again that organizations are looking for all-up value in a maintainable package. Many were asking about flexible provisioning options (i.e. locations, VM sizes, application services), enterprise-class management options, and a monthly bill they could understand.

The partners and users we talked wanted solutions, not just components.

#3 - The reseller market is a huge, unaddressed space

CenturyLink Cloud was at the show to tout our Reseller Edition capabilities that let customers rebrand and white label our cloud for their own needs. A handful of other cloud providers offer some type of reseller program, but few offer a comprehensive – and lucrative – set of services for offering someone else’s cloud as their own. I spoke to many software vendors who have to send their potential customers elsewhere to get temporary infrastructure to try their software. These vendors were very interested in being able to offer software AND a globally distributed set of infrastructure to run it on.

I also heard numerous consulting companies complain about the challenges of migrating the infrastructure of small customers to the cloud. They loved the idea of being able to offer “their” cloud to their customers and centrally manage and maintain modern and legacy systems – including those running Microsoft software –  using the CenturyLink Cloud platform. Managed Service Providers were also looking to complement their existing product portfolio’s with cloud services and I saw that many of them are shopping around for a partner to collaborate with.

Building clouds is hard. Many smart companies have failed doing it. However, being able to rapidly white label someone else’s world-class cloud infrastructure is compelling and I heard that over and over again at the conference.

#4 - Usability matters

Cloud providers aren’t selling services, they’re selling an experience. Just about every cloud infrastructure provider is offering the same base capability to provision virtual servers. There are differences to be sure, but most providers are selling an experience delivered through programmatic APIs, web-based management tools, professional services, and a support organization. For the self-service options like APIs and web-based tools, usability is an enormous factor in the long-term success of the customer.

The easiest way for me to get people to stop at our booth was to do a demonstration of our platform. We are still one of the only cloud providers who features our software on our company home page. Why? Because we spend a significant amount of time crafting and optimizing a user experience that helps our customers quickly and efficiently provision and manage cloud assets. Organizations are asking their existing staff to maintain more (transient) infrastructure without adding new headcount, and we think it’s important to introduce thoughtful design and usability-focused enhancements wherever possible. The WPC attendees really responded positively to time-saving CenturyLink Cloud features like Group-based server management, server environment orchestration, server scheduling, global search, simple billing, and much more.

#5 - Cloud race is FAR from over

Some have said that we’re in the first inning of a nine inning game, and I agree. Cloud computing is in its infancy and while leaders are emerging, the market is constantly expanding. CenturyLink Cloud was attending a Microsoft conference where Windows Azure and Office 365 were front and center, and we STILL had hundreds of people approach us about partnering with us on their cloud efforts. That’s not an indictment of Microsoft’s cloud, but rather a fantastic example of the diversity of customer needs and the ability of cloud providers like CenturyLink Cloud to address unmet demand.  I talked to VERY few people who had a fully committed cloud strategy and found that scores of attendees had workloads spread around different clouds, or were simply trying things out.

Want to partner with a successful, globally available cloud provider that delivers a well-engineered and easy to use platform? Give CenturyLink Cloud a try!

A Better Way to Provision Cloud Servers (And Why Templates Aren’t Enough)

If you’ve ever looked at cloud server prices, or deployed a cloud server instance, you’ve likely noticed that most providers have a selection of “templates” to choose from. Users browse and select from a library of pre-baked server templates that contain combinations of compute, storage, operating systems, database technology, web servers, and commercial software. This isn’t the approach we take at CenturyLink Cloud, however.


We see at least two challenges with templates.

  1. Impossible for providers to match complete need, and difficult for customers to maintain custom templates. The number of templates offered by leading cloud providers range from dozens to thousands. With templates, the provider aims to offer as many useful combinations of OS + software as possible. However, this requires providers to engage in an endless quest to assemble server images that are useful to customers.

    What if the customer doesn’t see anything they like? Sure, you can upload custom templates, but that shifts the maintenance responsibility to the customer. The provider may have automation tools available for updating and patching images, but enterprise IT departments may not have the necessary capabilities to do the care and feeding of a custom template library.

  2. Not a complete replacement for the way enterprise IT builds servers today. IT organizations don’t typically rely on a library of server templates when they build new machines. Instead, they follow a more assembly-line approach to stand up a server for a particular system. This includes selecting the operating system, joining a server to a domain, adding storage, and installing the relevant software. Advanced organizations have software catalogs that help with automated installation, but many companies still rely on physical media or installation files residing on shared network drives. So what’s the problem? We find that a template-driven model can give a misleading sense of deployment speed as the server is *available* quickly, but still requires a significant number of follow on tasks until the server is actually enterprise-ready.

So what is CenturyLink Cloud’s model?

The Better Way

Instead of relying on templates, CenturyLink Cloud offers a reliable orchestration engine (called Blueprints) that lets you choose what software and script commands to run when creating a new server.

Build CenturyLink Cloud Server

There are three things that our customers like about this.

  1. Match unique needs through just-in-time software combinations. It’s impossible to pre-build server templates that match the individual needs of each customer. While a good template can serve as a foundation for subsequent manual activities, we went a step further. We offer a diverse set of base operating system templates, and offer a catalog of enterprise software products that can be layered on after the server is built.

    Select Software for CenturyLink Cloud Server

  2. The logical – and automated – extension to how IT builds servers today.Building a server isn’t just about installing an operating system and some software. System administrators go through a series of activities to provision storage, join network domains, acquire IP addresses, disable unnecessary services, and much more. Besides just offering a software catalog, we also provide a series of tasks and scripts that you can run against a new server. Tasks include activities such as adding a (public) IP address or taking a snapshot of the new server.

    Add Tasks to CenturyLink Cloud Server Build Process

    Scripts are commonly used to configure the server (and its corresponding software). CenturyLink Cloud’s build process lets you run a variety of scripts to get your server into a finished state.

    Choose Scripts to Run Against CenturyLink Cloud Servers

  3. Extensible to meet enterprise standards. We won’t claim to have all the software and scripts that you need to meet your enterprise security and software standards. That’s why we fully encourage you to upload your own software and scripts into a private library just for your organization. Anything in your library can be applied to your new or existing servers.

    CenturyLink Cloud Software Library

    Do you have a unique script command to run just for a single server build process? The CenturyLink Cloud Blueprints engine supports custom PowerShell, Command, and SSH script statements that get executed after the server is built.

    Run Custom Script Against CenturyLink Cloud Server

Customers are free to create and maintain server templates in the CenturyLink Cloud environment, and some do. But we’re seeing more and more customers opt for the orchestration engine approach. This way, customers can build servers exactly how they want them, every time! Check out our Servers and Blueprints pages to learn more about how we help you automate the server build process.

SaaS Your App: “Blueprinting” Your Application (Part II)

In the first article of this series, we discussed the major things to consider when looking to create a software-as-a-service version hosted on a cloud platform. One major factor called out in that article was the need for a solid hosting environment. In this article, we will look at how to use the CenturyLink Cloud Enterprise Cloud Platform to package a web application for SaaS provisioning.

Solution Overview

To provide some real-life applicability to this article series, let us work with a fictitious, but realistic, use case. Elections to government posts are a regular part of most societies and it’s becoming increasingly critical for candidates to have a robust web presence. Let’s imagine that a web developer successfully built a web site for a local candidate and has realized that this site template could be reused by multiple candidates. Recall from the previous article that an application can be multi-tenant (and thus easier to maintain for multiple customers) in multiple ways:

  1. All customers could reside on the same instance of the web application and database.
  2. Customers can share a web application but maintain unique databases.
  3. Each customer gets their own web application and database instance and MAY share underlying infrastructure.

There are benefits and risks of each choice, but let’s assume that our web developer chooses option #3 because candidates will be hesitant to intermingle their donor list with others in the same database, and each candidate may want to perform some unique customizations that wouldn’t be shared by all web application users. Option #3 only works at scale if your hosting provider has significant automation capabilities that can handle actions like OS patching, system upgrades, and server scale-out with limited manual intervention. Fortunately, CenturyLink Cloud offers substantial environment automation capabilities that make management of distinct “per customer” environments entirely manageable.

Today, this web developer has a simple two tier application.

What he hoped to have is the ability to bundle up this configuration, and deploy one of these “pods” for each customer. Then, he wanted to add a single provisioning and management interface that could be shared by all the customers. The CenturyLink Cloud Enterprise Cloud Platform allows servers to be managed in “groups”, so in this case, each customer (candidate) will be provisioned into their own group. This makes billing, scale thresholds, and configuration much more personalized.

Creating Application Templates

We’re going to help this web developer out by showing the steps necessary to get his application deployed in a SaaS-y way. The first activity to perform involved creating templates of each “pod” of servers. A basic pod consists of two web servers (for a load balancing) and a single database server. Using CenturyLink Cloud’s “template” technology, we can take a server and turn it into a reusable image. So first off, we needed to create a template out of the web server that had the web application installed. However, note that the database server will NOT be converted to a template as we want a fresh SQL Server installation for each new pod. Unless a specific sysprep occurs on a SQL Server machine, there can be issues (e.g. server name collisions) when instantiating a SQL Server-based virtual machine snapshot. As CenturyLink Cloud doesn’t yet offer a SQL Server-specific sysprep, we’ll rely on a bit of automation and a bit of manual intervention to get each pod deployed.

First off, we built a web server that could be templatized. In the CenturyLink Cloud Control Panel, I navigated to a Group meant to hold all of this customer’s servers.

After clicking Create Server, I selected which Group to put this server into, and chose a location, type, and name for the machine.

Next, I had the option of defining the network segment, resource allocation and server operating system.

At this point, we’ve walked through what many Infrastructure clouds have to offer when provisioning servers. What follows after that is fairly unique to CenturyLink Cloud. The final (optional) step for any server provisioning is the choice of server tasks (e.g. reboot machine), software installation (e.g. SQL Server) or script execution (e.g. “install Windows Active Directory”). In this case, we wanted a server that already had the IIS 7.5 web server installed so that we could avoid doing it manually.

The Create Server button queued up the server for construction, and within a few minutes, the machine became available for access. The next step was to install the web application onto this server. By default, CenturyLink Cloud servers aren’t exposed to the public internet, so we used a VPN client to access the machine. Once connected, we transferred the web application bits to the server and created a website in IIS 7.5.

With this web server in a “complete” state, it was now ready to be turned into a template. The “server details” page on the CenturyLink Cloud Control Portal has a button called Create Template which, when clicked, crafts a reusable template from a server. These templates than then be leveraged for new servers or play a part in a Blueprint.

Building the Application Blueprint

Blueprints are CenturyLink Cloud’s orchestration component which lets developers and system administrators craft complex environments that can then be deployed with a single click. In this case, we want a Blueprint that creates a pair of web servers (based on our just-created template) and a database server. This Blueprint can then be used by every customer and save the SaaS provider from manually constructing each and every environment.

This Blueprint started off with a name, version and privacy setting. Blueprints can be made public (for all CenturyLink Cloud customers) or private / private shared which restricts access to a given CenturyLink Cloud account holder.

The second step of a Blueprint involves adding servers. Our first two servers relied on the web server template that was created earlier. During the configuration of each server, we had the option of selecting server tasks, software installation and script execution activities to apply to it. For the web servers, no new software was needed because everything we needed was already contained within the template.

After defining the two web servers, a third server was added to the Blueprint. For this one, the Blueprint installed SQL Server 2008 after the machine was built.

With all the servers defined, we could then rearrange the build order, add tasks (such as software installation) and even embed OTHER Blueprints! In this case, the Blueprint was finished and could be saved. After the Blueprint was published to the library, it could be instantiated, or “deployed.” The first deployment step required us to pick server passwords, which Group to place the servers in, and since we chose to install SQL Server, we were asked for database credentials.

The second step of this wizard simply asks the user to confirm all their choices before the Blueprint runs and builds all the servers. Satisfied with our selections, the Blueprint was deployed and its status could be closely monitored.

Testing the Deployment

All three servers were now online. To finish provisioning this environment, we first needed to install the application’s database on our new database server, and then update the web application’s connection strings on the two web servers. There are new capabilities in the CenturyLink Cloud product pipeline that would automate this step, but for this example, the process was done manually.

Note that we had yet to configure a centralized management application (that’s coming in an upcoming article!), so for now, the configuration tables were also included in this website’s database. In total, the WebsiteDb database had two tables: one for storing donations to the candidate, and the other which drove the look-and-feel of the website.

The WebsiteConfiguration table described the colors used by the site, the candidate’s name and more.

Finally, the website application was updated so that it pointed to this database for its configuration and donations.

Upon browsing the website, we could see that everything was working and online.


In this article, we saw how a developer could decide to “SaaS their app” and bundle their previously-built web application into a template that could be deployed over and over again for each customer. However, deployment of the application is just one piece. In the next article, we will look at how the SaaS provider can use the CenturyLink Cloud Enterprise Cloud Platform to monitor, backup and configure their SaaS environment. After that, we will see how to use the CenturyLink Cloud API to create a provisioning and management interface that SaaS customers could use to create and configure their personal environment. 

Making it Even Easier for Our Customers to Deploy Hybrid Cloud

Manual environment deployments can be time-consuming and expensive. Over the years we’ve felt our customers’ frustrations: enterprise IT departments trying to be more agile in the face of business demands; ISVs that need faster time-to-money; Systems Integrators that are bogged down in repetitive work. That’s why we’re thrilled to announce the launch of Environment Engine, a toolset that automates environment and application deployments to the enterprise cloud using “Blueprints.” Blueprints contain the DNA of an environment—from host configurations, to firewall and load balancing rules, to any applications running on top. (And yes, before you ask, these tools are completely free to use for all CenturyLink Cloud customers.) With Environment Engine, the elusive IT-as-a-Service is no longer a myth. Now IT pros can create best practice-optimized Blueprints that others can use later to deploy complex applications and environments on-demand. Rollout times drop from days or weeks to hours or minutes, and because deployments are automated across the whole technology stack, build-outs are consistent and leave little room for pesky human errors. So how exactly does all of this work? Let’s get into the nitty-gritty… 1. Using the Blueprint Designer, a technical expert can create Blueprints that include host and network configurations; firewall, load balancing, and autoscale rules; and applications that will run in that environment. The resulting Blueprint can be published to private libraries for internal use or to the public CenturyLink Cloud Blueprint Library for increased exposure and adoption across organizational boundaries. 2. From the Blueprint Library, users can select the Blueprint best suited to their requirements based on variables including categories, keyword, characteristic filters such as OS or sizing, Blueprint maturity, and social feedback. 3. Because no one likes surprises on their bills, the Blueprint Builder displays estimated monthly costs of an environment, as well as any resource or software requirements. From there users can adjust pre-defined variables in the selected Blueprint to ensure proper configuration, then deploy best practice-optimized environments to the CenturyLink Cloud Enterprise Cloud Platform. Curious as to what kinds of applications you can deploy using Environment Engine? We are in the process of creating several Blueprints based on common environments, or those that may benefit from our team’s expertise. (Our goal is to expand this list over time as others publish to the public Blueprint Library and we add Blueprints to meet demand.) - Microsoft SharePoint® Server - Microsoft Exchange® Server (Single Server) - Microsoft Exchange® Server HA: Using data availability groups - Microsoft SQL Server 2008 - Active Directory - Team Foundation Services - ASP.NET & SQL Web App: Single Node - ASP.NET 2 Node Web Application: Contains front end web server and backend SQL server - LAMP Stack Check out the Environment Engine Datasheet, the recorded Environment Engine demo, or drop by Booth #213 at VMworld from August 29 –Sept 1 in Las Vegas for a live demonstration.