Chapter 3. Who’s Using Docker, and for What?

Chapter 2 highlighted some of the features that make Docker so valuable and how Docker relates to older-generation infrastructure technology like virtual machines.

In this chapter, we’ll examine which types of companies have adopted Docker, the challenges they have faced in migrating to containers, and the strategies they have used for implementing Docker successfully.

Docker Adoption Trends

Surveys provide illuminating insight into the trends that have shaped Docker adoption so far. Following are the takeaways from recent studies of real-world Docker adoption, which suggest that Docker is ready for an enterprise.

An April 2016 survey by Docker revealed these trends:

  • The vast majority of organizations using Docker are in the technology sector. However, other industries, such as education and financial services, also report Docker use.
  • More than half of the companies using Docker are small, with fewer than 100 employees.
  • The majority of Docker use cases—65 percent—center on the development of new applications. Modifying existing applications so that they can run inside Docker containers remains less common.

Also notable is a June 2016 survey by ClusterHQ, a container storage vendor. Its most interesting finding was that the use of Docker for production increased 96 percent since a similar survey the previous year, and that 76 percent of respondents reported using Docker in production.

Although the survey questions did not define “production” with precision, the takeaway is presumably that a majority of organizations that have adopted Docker are now using it to host applications for end users in production environments, rather than merely using Docker to help write and test code in development. That finding suggests that the answer to whether Docker is enterprise-ready is yes.

Docker Challenges for the Enterprise

Surveys suggest, then, that even though Docker is already being used to host production deployments, the companies that have adopted Docker tend to be small, tech-focused organizations. There are few examples of large enterprises outside of the technology sector using Docker for production application deployment.

This is probably because enterprise adoption of Docker remains subject to the following challenges:

  • Moving an existing application to Docker usually requires modification of the application itself. As a result, large enterprises with established application suites face a steeper climb in using Docker in production than do startups that are designing all of their applications from scratch.
  • Integrating Docker into software delivery pipelines entails reconfiguring the way a team of programmers and admins operates. That, too, is harder to do within an enterprise, which has a large development team with established procedures, than at a startup that is designing its development process for the first time.
  • Because Docker is new, compliance and governance questions related to Docker containers have not yet been fully answered. For large enterprises with complex regulatory and governance needs, Docker is a tougher pill to swallow, at least for now.
  • Enterprise decision-makers are less likely to be familiar with Docker. It is unsurprising that small companies in the technology industry are leading Docker adoption. Their executives are plugged in to the latest innovations in the software industry, making it easy to get approval for Docker all the way up the decision chain. In contrast, a larger company operating in a different industry is likely to be managed by decision makers who have not yet heard of Docker, given that it is still quite new. Those risk-averse executives may also have a harder time understanding why Docker might be a better solution than the virtual machines that their companies have been using without issue for years.

Enterprise Use of Docker: Some Examples

Despite the challenges that enterprises face in adopting Docker, there is plenty of evidence that organizations outside of the technology sector have successfully implemented Docker to support large-scale workloads.

Docker lists a number of non-tech enterprises, such as the BBC, Oxford University Press, and ING, among its customers. And perhaps its most famous customer to date is Goldman Sachs, the investment bank, which has vowed to migrate 90 percent of its IT operations to Docker.

Goldman also happens to have invested $95 million in Docker the company, which helps to explain its interest in the technology; still, Goldman executives presumably see more than financial promise in Docker containers if they are willing to bet so much of their own infrastructure on the technology.

Following are some additional examples of large companies that have adopted Docker.

ADP

Another telling example of Docker adoption within the enterprise is the case of ADP, the human resources services provider. ADP handles more than 600,000 clients in a highly regulated industry, making security and scalability essential. These considerations drove ADP’s decision to adopt Docker. By migrating to containers, ADP gained the following:

Infrastructure that can easily scale

As demand for applications fluctuates across ADP’s large customer base, the company can increase or decrease the number of its application instances quickly by hosting those applications with Docker.

Security

Protecting sensitive data like social security numbers and payroll information within ADP’s applications is essential. Docker containers help the company secure that data through several security mechanisms. One is binary signing, which prevents Docker from executing applications that are not deemed secure. Another is image scanning, which helps detect security vulnerabilities within the applications run by Docker.

Flexibility

Docker also helps ADP separate application development from production deployment. By using separate registries to store application container images, ADP can maintain a set of applications that are under development for testing purposes, and a separate, secured set of production-ready application images. This flexibility makes it easy to add new features to applications without worrying about introducing security or stability problems to applications running in production.

ADP’s migration to Docker was complicated by the fact that the 60-year-old company has a large set of legacy applications, some of them more than a decade old. Since these applications were designed and written long before anyone was thinking of running them as microservices inside containers, migrating the applications to Docker is not a simple proposition.

ADP’s approach to this challenge was two-fold. In the short term, the company moved entire applications into Docker containers, without breaking the applications down into microservices. This change makes it possible to leverage the scalability and security features of Docker, even though it does not provide all of the benefits of a microservices architecture.

Meanwhile, over the long term, ADP developers are refactoring existing applications so that they can run as microservices. This process will take some time to complete. But by migrating to containers now, rather than waiting for all applications to be rewritten in a container-friendly way, ADP has been able to leverage many of the benefits of Docker without having to scramble to rewrite a large amount of application code quickly.

In sum, the ADP example shows that Docker containers can deliver real and immediate benefits even to large enterprises with many legacy technologies.

Spotify

Spotify, which delivers streaming music over the Web, was also an early adopter of Docker for production use. While Spotify is a newer and more tech-focused company than ADP, Spotify’s Docker story nonetheless reveals some important insights about successful container adoption for any enterprise.

For Spotify, the main benefit of containers is that they provide an easy way to host the diverse set of services that are required to run the Spotify app. The app performs a large set of distinct tasks, from streaming music to displaying album images to analyzing data about users’ music preferences. Each of these tasks is powered by a separate service running in Spotify’s data center.

By running each service inside containers, Spotify gains two advantages. The first is that the services are easier to manage and update. A problem with one service does not crash the entire application. Instead, a service can be restarted simply by respawning the containers that host it, without disrupting other services in the app.

Second, containers allow Spotify to make the most of its hardware resources. Instead of devoting an entire server to hosting an individual service, as the company used to do, Spotify uses Docker to build clusters of containers hosting multiple services. Each physical server can then host a container cluster in order to power many services at once. This approach assures that hardware resources can be distributed to different services according to their fluctuating needs. The strategy is much more efficient than permanently allocating an entire physical server to each service, especially if that service will rarely require all of the computing capacity of the server.

Key to Spotify’s successful Docker implementation was the company’s creation of its own orchestration tool, Helios. Helios, which is now open source, allows Spotify to automate the tasks of starting and stopping containers. Spotify wrote Helios from the ground up because it adopted containers at a time when other orchestration tools were not yet as robust as they are now.

Today, a variety of free, open source orchestration solutions exist that are prepared to meet the production needs of any enterprise. In addition to Helios, Swarm, Kubernetes, and Mesos are popular solutions for automating the management of container clusters.

Summary

This chapter has demonstrated the following:

  • Smaller companies in the tech sector lead Docker adoption. However, a growing number of enterprises in other industries are now using Docker in production, too.
  • Security and compliance concerns remain barriers to Docker adoption for some enterprises. So do the challenges of migrating legacy applications to run inside containers and changing established IT workflows in order to integrate Docker.
  • However, companies like ADP and Spotify have shown that the benefits of Docker adoption can certainly outweigh the challenges.
  • As the ADP case shows, migration to Docker and microservices does not have to happen overnight. It can—and, at most enterprises, probably will—be a multistep process.

In the next chapter, we’ll examine some of the strategies and resources enterprises can adopt to help migrate successfully to Docker and microservices.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
18.226.133.35