Docker is an open source platform which encapsulates applications into highly efficient
“containers”. Many containers can run on a host without interfering with each
other. The community edition is available for
free.
3 minute video version of this post is here.
Docker Inc – is a commercial organisation which
sells Docker enterprise edition to
organisations which need tools which are fully tested, validated and supported
for use in an enterprise setting.
You may be familiar with server
virtualisation from vendors like VMware and Microsoft. It enables the creation of virtual
machines. Many virtual machines can run on a single host without interfering
with each other.
It
sounds a bit like Docker containers but
the origin of server virtualisation is different to that of containers and on
the inside they are different too.
The adoption of server virtualisation has
been driven by the needs of IT departments to
drastically reduce IT infrastructure running costs. Physical
servers historically ran a single application to ensure no conflicts occurred
between them. With requirements for lots of applications, that meant lots of expensive servers, all needing space, power and cooling. Advances in computing power and the development of virtualisation technology means that a single host server can replace many physical servers and contain many virtual machines - each with its own operating system and application.
Containerisation, on the other hand, has been driven by the
needs of application developers. As businesses increasingly use digital technology to become more competitive,
so the need to update and add new applications faster has become critical. It is a technology which is linked to the rise in DevOps, whereby businesses are putting dedicated teams in place to develop new applications. These projects must easily migrate from test and development phase into production so that they can run reliably and at scale. Ongoing application development continues to require the code to move between environments seamlessly.
A big
overhead when developing applications turns out to be the IT infrastructure
itself. Software is typically developed
by teams using a range of platforms like PC's, laptops, servers and even cloud based systems. These may not be compatible. Each platform
move requires customisation and testing for reliable operations. This really
slows down progress and hinders collaboration across developer teams.
Containerisation starts with the
application. An application does not need an entire dedicated operating system, it
can make do with a cut down set of files called “bins and libraries” – together
these can be put in a container. The
container needs access to a shared operating system plus the Docker software. The operating system is typically Linux with Microsoft Windows a more recent
option.
Containers don’t each hold an
operating system so they are much smaller than
virtual machines and many more can fit into a single host. A
container is much faster to start up and easier to maintain than a virtual
machine, helping developers be more productive.
Although
virtual machines can be easily moved around between hosts or even out to the
cloud – this is typically under the control of IT departments. This
functionality often comes at a cost. With
containers, the developers don’t need to ask IT for help. Sharing containers,
jointly developing applications and moving them from test to production to the
cloud – and back – is quick and easy.
So when comparing containers with virtual machines – its less to do
with what they are, and more to do with why they came about in the first place.
- Server
virtualisation is helping IT departments do more for less.
- Containerisation,
led by Docker, is helping developers do more, faster.
Luckily
they can also co-exist, containers can run inside virtual machines - so organisations can benefit from the best of
both.
Although Docker is not the only container technology, it is the most widely adopted and the most talked about. More information is available at www.docker.com
No comments:
Post a Comment
Have your say - or tell me what you would like to read about