BLOG: Baidu chooses Docker containers over sandbox for PaaS

Alan Shimel |
Dec. 12, 2013

Baidu Application Engine (BAE) 2.0 to use containers, not sandboxes

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)