Docker and Containers
In the past, enterprise cloud adoption was primarily focused on software as a service (SaaS) and infrastructure as a service (IaaS) offerings, but lately there’s been an increasing call for enterprise adoption of Container Services, a technology that allows IT to package computing workloads onto a single server, increasing speed, scalability and the potential for competitive edge. Containers give businesses the ability to innovate and enhance services on the fly. With agile development capabilities, container technology is the perfect tool to support a DevOps approach. Vendors are now looking at ways that deliver the technology more efficiently: building on open container technologies in an effort to help enterprises IT teams deliver Container Services to their development teams.
IT research and advisory firm Gartner, Inc. defines PaaS in their IT glossary:
“A [PaaS] offering, usually depicted in all cloud diagrams between the SaaS layer above it and the IaaS layer below, is a broad collection of application infrastructure (middleware) services (including application platform, integration, business process management, and database services). However, the hype surrounding the PaaS concept is focused mainly on application PaaS as the representative of the whole category.”
Enter Container Technology, where the tides begin to turn.
Gartner reports that through 2018, more than 70 percent of IT organizations planning a private PaaS will deploy a container service (rather than PaaS framework software). Over the last couple years the PaaS landscape has changed significantly with the advent of containers. Container Services are gaining popularity driven by the widespread adoption of container technologies such as Docker. In fact, this adoption in container technology is also disrupting Cloud Management Platforms, accelerating consolidation in that space.
Containers and Software Delivery
Lucero del Alba, author of the article, “Understanding Docker, Containers and Safer Software Delivery” explains how delivering software used to be easy:
“The hard part was programming, but once you finished you would just handle the product, maybe fix some bugs, and that’d be all. Later, with the “LAMP stack” (Linux, Apache, MySQL, PHP) — which was widely supported by hosting companies — things got slightly more complicated, but were still manageable. You could deliver dynamic sites linked to databases and set everything up via control panels.”
As times change, new technologies like NoSQL databases, and programming languages like Ruby and Python have gained popularity creating more possibilities, but making software delivery more difficult.
Lucero del Alba explains the magic of containers: a solution that seemed obvious, and was utilized to tackle some major technical issues.
“In software development, we may spend days trying to get things working on a different environment — only for them to fail a couple of days later. It’s easier and faster to ship a working car to a different continent than to deliver software that works reliably. Isn’t that kind of embarrassing? So people started thinking of something similar to shipping containers for delivering software — something you could use to ship software in a reliable way, that would actually work as expected: software containers.”
When, and When NOT to Use Software Containers
If you are exploring the idea of utilizing software containers for your organization, Del Alba, programmer, entrepreneur and container aficionado, gives interested parties some pointers about when, and when containers would not be beneficial.
Beneficial scenarios for using software containers:
- a service (such as web, or database) that needs the be scaled up and down based on demand
- an application (web or otherwise) with a very specific setup (OS, tools, environment variables, etc.)
- an environment for sandboxing (to test things safely) that can rapidly be created and disposed as many times as needed
There are other situations in which containers have little to offer, such as:
- a simple desktop application that can otherwise be distributed with a software installer
- a Windows-based development environment (such as .NET Framework, or VisualBasic runtimes) that cannot be implemented on Linux.
Discover more about container uses at Sitepoint.com
Docker and Other Container Providers
In the article by Informationweek, “Containers Explained: 9 Essentials You Need To Know”, author, Charles Babcock reminds folks that Docker is not the only container solution, but is the undisputed leader of the pack.
“Docker is a company that came up with a standard way to build out a container workload so that it could be moved around and still run in a predictable way in any container-ready environment. All containers — whether Linux-based Docker containers, Solaris Zones, or FreeBSD Jails – provide some form of isolation for an application running on a multi-application host. So why is all we hear these days Docker, Docker, Docker? The answer lies in the fact that Jails and Zones were indeed container pioneers, but their uptake was limited by the fact that comparatively few companies use Solaris and FreeBSD operating systems. They still enjoy use in the enterprise, but are only lightly used in public cloud settings.”