Migrating to Docker: Why We’re Going All in at RightScale

When mania for a new technology is in full swing, it’s easy to fall into the hype vortex. So when Docker came along two years ago, it generated cautious optimism at RightScale. For the last 18 months we’ve been on a step-by-step journey to migrate to Docker in our own software development and deployment processes. We’ve also been blogging about Docker and doing Docker webinars on our early learnings.

While we’ve faced challenges along the way as we’ve worked to overcome gaps in this still-maturing technology, we’ve validated that containers really can bring significant value, from reduced costs to increased agility. Early concerns and objections have been addressed through early experiments where we involved our Dev, Ops, and Architecture teams as well as our CTO. As a result, we’ve now made the decision to go “all in” and migrate completely to Docker. We are launching an internal project that we’ve dubbed Project Sherpa to move our entire RightScale cloud management platform (encompassing 52 services and 1,028 cloud instances) to Docker containers over the next several months.

This blog will chronicle our migration to Docker week-by-week. We’ll share the trials and tribulations; the challenges we face and the solutions we devise to address them; and an insider’s view of the blood, sweat, and tears along the way. Hopefully we can keep the tears to a minimum and our learnings will help others who decide to follow in our footsteps (or not). We do not work for or with Docker (the company), so you’ll get at least one development team’s unvarnished opinion based on our own experience in our own environment. You might liken it to watching someone diving off the cliff into the lake to see if you want to try it next.

The Why

Our last 18 months using Docker has convinced us that it’s the real deal. Yep it’s not fully mature, and yes there are some gaps, but the concept is sound and the implementation of Docker is quickly catching up. In our early use of Docker, we found that we were able to increase velocity in the development teams that had started using Docker because they can iterate more quickly. We also have started to realize some savings from Docker as we were able to increase host density in a few of our services. And, most telling, our normally skeptical operations teams gave a thumbs up as they started to see efficiencies from using Docker.

We are also convinced that containers will be one of those major technology shifts in the world of software delivery. It will impact how we, and our customers, deliver software over the next decade. The speed at which we saw adoption in our customer base was also impressive. Our “digital” customers, who tend to be closer to the leading edge of technology, are diving heavily into containers, while our traditional enterprise customers are already starting to sit up and take notice.

As a result, we knew that our own RightScale cloud management platform would need to support containerized workloads alongside our customers’ existing cloud workloads. So what better way to learn exactly what they would need from us, than to jump off the diving board first. By using Docker across development, test, and production, we hope to expand the benefits we’ve seen so far and also accelerate support for containers in our platform so that our customers can leverage Docker as well.

The Expected Results

We’re expecting to get a bunch of good stuff out of this project:

  1. Velocity increase in development (more features faster) based on what we’ve seen in the services that have already been containerized.
  2. Reduce the number and complexity of ServerTemplates (that’s the name of our templating mechanism in RightScale) needed to configure infrastructure.
  3. Save money on cloud bills. We think we can get 70 percent savings in dev/test infrastructure and at least 40 percent in production. Part of the savings in dev will be because we can do more on laptops, which wasn’t possible before.
  4. Learn a cool new technology.
  5. Learn exactly what features our customers will need to support Docker (and hopefully get a jump start on some of those features).

The What and When

We’ve got 52 service offerings, and 7 are already in containers, so there are 45 left to tackle. The remaining ones range from easy to “super-mega-crazy-hard” (actual description from Doug in Ops). We will also retool our development workflow to enable developers to stand up systems on their laptops (we currently do it all in cloud-based environments) and evolve our ops release automation tools. All in about four weeks. What could go wrong?

We gave our initiative the code name Project Sherpa, after the Sherpas that help climbers get to the top of Mount Everest. You get the analogy. To kick off Project Sherpa, I decided to dress the part with all of the requisite mountain climbing gear.

One of our designers even came up with a Project Sherpa logo that you can see in the background. Can T-shirts be far behind? Any engineer knows that behind every successful project is a kick*ss T-shirt.

The How

To get this yuuuuge amount of work done in just four weeks, we’re going to pause all but our most-critical feature development. We’ll continue to work on things that we’ve promised to customers, but everything else will have to wait a month.

Since we’ve got nine engineering teams working on different pieces of our platform, we’re divvying up all the work. Each development team will tackle a few services and there is an Ops person assigned to work with each team. So our entire Engineering team will become Docker experts over the next four weeks. Luckily we’ve got a core of people who have been using Docker over the last 18 months to help bootstrap the rest of the team. There was a lot of prep work to get ready but I’ll cover that in the next blog.

Time to get to work.

To learn more about how we are using Docker, watch our on-demand webinar, Overcoming 5 Common Docker Challenges: How We Did It at RightScale, which covers:

  • Tips for securely producing high-quality, easy-to-manage Docker images
  • Options for multi-host networking between laptops and the cloud
  • Orchestrating Docker in production: service discovery, configuration, and auditability
  • Increasing host density with Docker
  • Dynamic monitoring and alerting for Docker containers

Watch the on-demand webinar.

This article was originally published on FierceDevOps.

Read More Articles on Migrating to Docker:
Migrating to Docker: Getting the Flywheel Turning
Migrating to Docker: Barely Controlled Chaos
Migrating to Docker: Halfway There
Migrating to Docker: The Second (Harder) Half
Migrating to Docker: The Final Results