Chinese Internet and search giant Baidu today announced that it has chosen the open source Docker containerization system as the basis for its upcoming Baidu Application Engine 2.0. This signals a move away from sandbox-based PaaS to container-based PaaS, according to Docker, Inc., the developers of the Docker project.
Increasingly, Platform-as-a-Service (PaaS) seems to be gaining momentum in cloud-based adoption. Why shouldn't it? For many users, the cloud is a place to run their applications. The same way they don't want to have to worry about hardware and network connectivity, they don't want to deal with OS issues either. As long as their application runs, that is what they care about.
The first generation of PaaS platforms used sandbox technology to allow multiple applications to run on a single instance of an OS. However, sandboxes have their drawbacks. Perhaps the biggest is that you need a different sandbox for each particular language you are using. With the plethora of development languages prevalent today, this makes for a very complex situation. In fact, many PaaS sandbox technologies use the number of languages they support as their killer feature. In addition to language support, sandboxing also made development, security and maintenance much more complicated. While many companies, including Baidu, originally chose sandboxing as the basis of their PaaS offering, next-generation PaaS platforms are increasingly migrating to containers as a better solution.
"With traditional PaaS, resource isolation and constraints are achieved through sandbox technology," said Yifei Chen, tech leader of the BAE team at Baidu. "We were drawn to Docker because it replaces sandboxing with containerization, enabling a multi-lingual, agile and cost-effective solution that provides our developers with the flexibility needed to support a growing number of frameworks and applications. Docker has a thriving ecosystem, and we are happy to officially join it."
According to Docker, the Baidu team chose Docker containers for the following reasons:
- Docker (and containers in general) are a generic approach, making it much easier to support new programming languages, frameworks, and databases, compared to traditional sandboxes.
- As a consequence, the cost of platform development and maintenance is significantly lower.
- Containers are lightweight and don’t incur performance overheads, which means that platform operating costs are also under control.
- The possibility to use regular frameworks, instead of custom platform-specific APIs, results in broader user adoption.
- Last but not least, the Docker community is very active and is growing very fast.
According to the press release, Baidu further engaged with the Docker community by making contributions to the Docker repository. The company also recently presented on their use of Docker during the Cloud Computing Architect Summit in China. Here is a slideshare of the translated presentation by the Baidu team: (if you don't see a slideshare window, hit reload on your browser)
Baidu is not the only PaaS player to embrace Docker's containers in place of sandboxes though. Google and Red Hat have also announced support for Docker. Running on any version of Linux, it would seem that containers are poised to become the dominant form of PaaS offerings.
I know that in speaking with friends in the DevOps world they are big fans of containers. The ability to easily spin up language independent VM containers regardless of whether it be in public, private or hybrid clouds via Chef or Puppet scripts is a big plus.
Container-based PaaS promises to allow application developers the freedom to spin up and down applications even easier than spinning up cloud instances is now. Not worrying about the OS management of the environment allows them to truly focus on just their application.
I am interested to hear from developers if they think PaaS based on containers will be as attractive as many are saying it might be. Leave a comment if you are a developer either using PaaS or thinking about it with your experiences.
As PaaS usage continues to grow, the use of containers promises to skyrocket. As I wrote two weeks ago, containerization may become as prevalent as hypervisor virtualization. It would seem that the open source Docker project and Docker, Inc. are the leading players in this movement. Xen was sold for a billion or so dollars to Citrix, could a similar happy ending be in store for Docker?