SlideShare a Scribd company logo
1 of 9
Download to read offline
Powering
Microservices
with Docker
To accelerate digital innovation,
many IT organizations are
exploring microservices
architectures, but to get there
they need to address transition
complexity, keep a check on
platform costs, minimize time
to production and avoid service
disruptions. The Docker platform
is a strong contender that
supports all these objectives.
EXECUTIVE SUMMARY
Enterprise architects seek to elevate IT agility
and scalability by breaking down business func-
tional models into bounded contexts with explicit
relationships. Microservices architecture1
helps
to achieve these goals by mapping bounded con-
texts with autonomous units of software (i.e.,
microservices), each focusing on a single busi-
ness capability and equipped with well-defined
interfaces.
Cohesive teams are organized by the micro-
services that they build and manage, with
independent development velocities, implementa-
tion approaches, choice of technology stacks and
tools. In support of innovation agility and veloc-
ity, IT organizations also often adopt DevOps2
— a
practice that emphasizes a systemic, iterative and
collaborative software development approach,
with a high degree of automation in continuous
integration and continuous delivery3
(CI/CD).
Apart from enabling an elastic and “always on”
IT infrastructure, cloud computing has fueled
the evolution of platforms and technologies
that simultaneously support microservices and
Cognizant 20-20 Insights | August 2017
COGNIZANT 20-20 INSIGHTS
Cognizant 20-20 Insights
Powering Microservices with Docker | 2
DevOps. Open source as well as proprietary plat-
form-as-a-service (PaaS) offerings such as Cloud
Foundry, IBM Bluemix, Microsoft Azure, RedHat
OpenShift, etc. provide the programming models,
delivery automation capabilities and manage-
ment tools, abstracting the underlying virtualized
or cloud infrastructure.
Other open source frameworks and libraries such
as Netflix OSS4
are available as foundational com-
ponents on which organizations can build their
own microservices platform, often relying on an
infrastructure as a service (IaaS) layer hosted in
the data center or public cloud.
Container technology is a lightweight virtualiza-
tion capability that has been available in Linux
and Unix operating systems for many years (and
now in Microsoft Windows, as well). Containers
are highly portable across environments and pro-
vide improved infrastructure utilization. Docker5
has extended this technology by adding new
capabilities that significantly impact the way
software is developed, deployed and consumed.
This white paper explores what makes Docker a
great vehicle to convert microservices architec-
ture and DevOps from thoughtful constructs to
meaningful realities.
BUILDING A SOFTWARE
DEFINED ENVIRONMENT
Docker started as an open source deployment
automation project that introduced an inno-
vative approach for packaging the application
software, along with all run-time dependencies,
in a container image. A container image is a file
system and a set of parameters that fully define
the behavior of any instance of the container in
execution. Images can be layered such that each
base image resolves dependencies of the image
in the layer above (e.g., an application framework
over platform libraries and run-time over the
operating system). Docker images are stored and
version-controlled in a registry — either the pub-
licly hosted Docker Hub or the Docker Trusted
Registry (DTR) hosted on-premises — to facilitate
search and reuse.
Target images are automatically assembled from
base container images pulled from the regis-
try when required using a set of command-line
instructions. The build automation system uses
Dockerfile — a simple and human-readable text
script, making it a self-documenting and declar-
ative build automation mechanism. Integrated
with a continuous integration tool such as
Jenkins, Docker provides the capability for build
and deployment automation across various
software lifecycle stages. Distribution and pro-
visioning can be automated with Docker-aware
provisioning tools such as Vagrant or Ansible.
When used in production, Docker images are de-
ployed and run on a number of containers, usu-
ally spread across physical or virtual hosts for
scalability, using the popular service instance
per container pattern. These containers can
be clustered and centrally managed using the
Docker Swarm/Universal Control Plane (UCP)
or third-party open source alternatives such as
Kubernetes or Mesos.
When used in production, Docker images are
deployed and run on a number of containers,
usually spread across physical or virtual
hosts for scalability, using the popular service
instance per container pattern.
Powering Microservices with Docker | 3
Cloud providers have rapidly adopted Docker
to build container-as-a-service (CaaS) offerings,
where the container infrastructure, image reg-
istry, and automation tool-chain, as well as the
orchestration and management capabilities, are
delivered as a service. Public-cloud-hosted CaaS
examples are Amazon EC2 Container Service (dis-
tinct from Docker-aware AWS Elastic Beanstalk),
Google Container Engine and Azure Container
Service. Docker Datacenter and Rancher are
CaaS options that can be deployed on public as
well as private cloud.
AN ECOSYSTEM FOR
MICROSERVICES
Docker’s advantages significantly multiply when
used along with popular open source tools such
as Kubernetes and Jenkins or commercial, enter-
prise-grade build and release management auto-
mation products. With the capabilities described
above, the Docker ecosystem offers several fea-
tures that help implement microservices archi-
tecture and DevOps practices:
•	 Container as the unit of deployment: The
cross-functional team that owns a given micro-
service continually develops and manages a
container image as its deliverable software
package. The Dockerfile used for its build
automation is common across environments —
development, testing, production or any other
environment. In effect, developers define or
extend (by extending base images defined by
operations) and use a production-like environ-
ment throughout the development lifecycle.
Docker images are portable, from a develop-
er’s laptop to the data center to the cloud.
Defects arising from configuration differences
between the development and production
environments are automatically eliminated. By
unifying the build and deploy processes for a
given microservice across its lifecycle stages,
the Docker ecosystem significantly reduces
the amount of complexity and room for error.
•	 Encapsulation and isolation: Each con-
tainer is a self-contained “full stack” envi-
ronment for the application it hosts. Docker
allows a wide range of technology platforms
and tools to realize services as long as sys-
tem resource prerequisites are met and a ro-
bust interface governance is observed. This
enables a technical as well as functional en-
capsulation, hiding the implementation de-
tails. Docker containers provide an efficient
and simple form of isolation: containers get
their own memory space and network stack
and also support resource limits or reserva-
tion. Not only does it provide an indepen-
dent delivery lifecycle and velocity, it also
localizes the impact of any defects or failures.
Docker employs a very efficient image-packag-
ing strategy that reduces the image-building
and publishing time and resists infrastructure
sprawl. Encapsulating deployment artifacts
into Docker containers, rather than writing to-
pology-aware automation scripts, improves
the manageability and stability of the deploy-
ment process.
Docker containers provide an efficient and
simple form of isolation: containers get their
own memory space and network stack and
also support resource limits or reservation.
Cognizant 20-20 Insights
Powering Microservices with Docker | 4
•	 Dynamic service discovery, orchestration
and scaling: Docker container initialization
overhead is very small, which allows near-in-
stantaneous container spin-off and dynam-
ic auto-scaling of infrastructure. Native tools
within the Docker ecosystem (Swarm and
Compose) as well as third-party tools (Ku-
bernetes, Mesos) enable service discovery,
orchestration and load balancing capability.
In a composite application, services can be ex-
plicitly linked to resolve dependencies; how-
ever, they can be independently scaled and
managed. Rapid innovation and fail-fast strat-
egies such as blue-green deployment6
or A/B
testing7
can be implemented with the help of
automation scripts or commands issued from
a single console by slicing the infrastructure
in a more efficient and controlled way.
•	 Coherent developer tools ecosystem: Having
evolved beyond Linux container technology,
Docker is natively available for Windows 10
with Hyper-V and Mac OS X El Capitan 10.11 or
newer. It is a first-class citizen in the target
environments supported by many popular
developer tools (especially open source). For
example, Eclipse Neon provides a Dockerfile
editor, Docker registry connect and image
search/pull/push capability, container man-
agement, console access to a shell within a
running container, etc. Eclipse Che (a work-
space on the cloud) also supports Docker
Compose. Microsoft has also released a pre-
view version of Visual Studio tools for Docker.
Consequently, enterprise developers moving
from traditional programming environments
to Docker-based polyglot microservices have
a natural transition path over a period of time.
•	 Reduced enterprise middleware complexity:
Traditional enterprise middleware offers the
capability to address deployment concerns
such as clustering, load balancing, state man-
agement, application monitoring, etc., which
is beneficial for large monolithic applications.
With the adoption of microservices architec-
tural style and containerized deployment into
cloud, this capability is redundant. In response,
middleware vendors now offer smaller-foot-
print versions (e.g., IBM WebSphere Liberty
profile, RedHat JBoss, WildFly) as container
images, to address complexity reduction and
commoditization of enterprise middleware to
embrace microservices and containerization.
CAAS VS. PAAS
PaaS offerings (especially those that are vendor
driven) and the Docker ecosystem are often
compared, although they do not necessarily
compete and can be beneficial if used together.
Many PaaS vendors have actively adopted the
Docker container as their internal unit of deploy-
ment and utilize many of the same open source
components as the Docker ecosystem. Docker-
based CaaS can be effectively used as the foun-
dation to build a custom PaaS platform for
PaaS offerings (especially those that
are vendor driven) and the Docker
ecosystem are often compared, although
they do not necessarily compete and
can be beneficial if used together.
Cognizant 20-20 Insights
Powering Microservices with Docker | 5
microservices implementation. That said, orga-
nizations looking to adopt microservices archi-
tecture need to identify and track the strengths
of both these technologies. Figure 1 summarizes
our observations at present.
Integral Support for Microservices
This is the extent to which a platform enables
microservices with built-in features and capa-
bilities. PaaS platforms tend to bake in the
microservices architecture elements and prac-
tices, whereas the Docker ecosystem takes a
relatively neutral approach. For example, Pivotal
Cloud Foundry PaaS provides an implementa-
tion of a circuit-breaker pattern used for building
resilience against cascading failures across ser-
vices, whereas a custom implementation (such as
container adaptation of Hystrix from Netflix OSS)
may be necessary in a Docker-based CaaS.
CI/CD Automation
This dimension indicates how well a given plat-
form supports automation in continuous inte-
gration and continuous delivery. It is critical for
high velocity innovation and both PaaS and the
Docker ecosystem tend to leverage best-of-breed
open source CI/CD tools to implement it.
Infrastructure Abstraction
Platforms typically hide the details of underly-
ing infrastructure from developers by automating
deployment and monitoring aspects. PaaS offer-
ings tend to encapsulate hardware and virtual-
ization layers, providing a rich API for developers
to use in the application lifecycle. PaaS develop-
ers provision application run-times and available
services from a catalog. On the other hand, the
Docker ecosystem allows developers to construct
their application run-time by pulling the required
Docker images from a registry, building custom
code and applying configurations — in addition
to providing tools to automate container deploy-
ment, load balancing, etc.
Production Ready
Production readiness is a function of technology
maturity and stakeholder perception built from
field experience. As adoption grows, additional
Comparing, Contrasting CaaS and PaaS Approaches
Integral support
for microservices
CI/CD automation
Infrastructure
abstraction
Production
ready
Cloud provider
friendly
Start-up
friendly
Vendor
agnostic
Lightweight
Off-the-shelf PaaS
Docker-based CaaS
5
4
3
2
1
0
Figure 1
Powering Microservices with Docker | 6
enterprises are likely to extend the continuous
delivery automation into production environ-
ments. At the time of this writing, inter-container
networking and security are among the main com-
plexity areas in Docker container deployment.
Lightweight
Although a relative term, lightweight in this con-
text means a low overhead, nimble platform that
does not warrant a large up-front infrastructure
setup or change management effort. Docker has
far less of an entry (or exit) barrier from a tech-
nology adoption perspective, compared to most
PaaS offerings.
Vendor Agnostic
Portability and avoidance of vendor lock-in are
quite high on the agenda of most organiza-
tions going digital. With the penetration of open
source components in each and every aspect of
today’s software lifecycle, platforms are far less
proprietary than ever before. However, it is still
necessary to trade off between out-of-the-box
value from a platform versus flexibility, control
and freedom of choice.
Start-Up Friendly
This comparison parameter is significant since
enabling rapid innovation is a key promise
of microservices and DevOps, and start-ups
have often been the birthplace of disruptive
innovation. Start-up-friendly platforms are char-
acterized by a low entry barrier, open source
culture and a vibrant community that drives
rapid and collaborative feature enhancements
via experimental work.
Cloud Provider Friendly
Not only start-ups, but even large businesses
and enterprises are betting big on cloud-native
systems, expecting the underlying infrastructure
and services to be techno-commercially elas-
tic. In turn, cloud providers look to include rapid
innovation platform capabilities within their
offerings and are becoming the main source
of these capabilities. Naturally, the cloud-pro-
vider-friendly platforms will find broader and
accelerated traction.
ENTRY POINTS INTO THE
ENTERPRISE IT LANDSCAPE
Docker is enormously popular; however, it has
been finding its way into the enterprise IT land-
scape via one of three distinct entry points: as an
instrument of lightweight virtualization, as the
foundation of CaaS platform (public or on-prem-
ises) or as the built-in container governance
construct of PaaS (also public or on-premises).
Organizations that are freshly implementing
microservices, or have very few legacy mono-
lithic systems, can leverage Docker in a CaaS
environment. Start-ups can choose from the
numerous IaaS cloud providers that fully support
(or even promote) Docker, whereas others look-
ing to host on premises can build their own CaaS
fairly quickly with modest infrastructure updates
or investments.
On the other hand, large organizations may take
a gradual migration route due to the preponder-
ance of monolithic legacy applications running
in their production environments. Our current
Docker has far less of an entry (or exit)
barrier from a technology adoption
perspective, compared to most PaaS
offerings.
Cognizant 20-20 Insights
Powering Microservices with Docker | 7
view, based on conversations and engagement
experiences with our clients, indicates that a
majority of such organizations have evaluated
Docker and are using Docker container images
as lightweight virtual instances in build/test auto-
mation, but aren’t yet ready to deploy it in their
production environments. The focus is on image
standardization and reuse via DTR and just-in-
time instantiation of containers (e.g., Jenkins
slaves) with an aspiration to achieve blue-green
deployment, A/B testing or canary releases.
A number of large IT organizations with whom we
have spoken have made up-front investments in
PaaS cloud (typically on premises) to achieve bet-
ter infrastructure abstraction or even production
readiness, and have embarked on vendor-sup-
ported monolith-to-microservices transforma-
tion projects. Docker containers are seen even in
these environments, often natively built into the
PaaS or in an experimental/labs setup.
LOOKING AHEAD
Organizations adopting containerization can
leverage Docker as a software-defined unit of ap-
plication delivery, testing and deployment. Dock-
er adds significant value into CI/CD automation
due to its low-overhead virtualization and com-
mand-line programming interface for scripting.
Docker registry promotes discovery and reuse
of self-contained software, whereas Docker UCP
or open source alternatives enable service dis-
covery, orchestration and load balancing of
container-hosted microservices instances.
IT organizations looking at a Docker-based CaaS
model as an option to build a microservices archi-
tecture need to consider the following points in
order to validate techno-cultural fit:
•	 Does the existing IT infrastructure support
Docker out of the box or with minor upgrades?
•	 Does the IT landscape leverage Docker-aware
open source software?
•	 Is the IT team inclined to build and manage
in-house applications provisioning and de-
ployment?
•	 Are there custom nonfunctional components
(e.g., cluster management, load balancing) or
a CI/CD automation harness that can be re-
used in a containerized environment?
•	 Has containerization been achieved or planned
in the production environment?
Affirmative responses indicate a natural fit for
the Docker-based CaaS model.
Cognizant 20-20 Insights
Powering Microservices with Docker | 8
Milind Lele
Chief Architect, Global
Technology Office
Milind Lele is a Chief Architect within Cognizant’s Global Technology
Office, where he leads numerous initiatives in software engineering
and architecture labs. He has a post-graduate diploma in software
technology and has over 22 years of IT experience spanning enter-
prise architecture, technology consulting, large green-field system
integration projects and technology research, and innovation.
Milind can be reached at Milind.Lele@cognizant.com.
ABOUT THE AUTHORS
FOOTNOTES
1	 Microservices architecture is an architectural style that promotes implementation of software applications as a set of
independent, self-contained services, each focusing on one business concern; www.cognizant.com/InsightsWhitepapers/
Overcoming-Ongoing-Digital-Transformational-Challenges-with-a-Microservices-Architecture-codex1598.pdf.
2	 DevOps is a practice that integrates the activities of developers and IT operations to enable a more agile relationship. For a
deeper dive, read www.cognizant.com/content/dam/Cognizant_Dotcom/whitepapers/patterns-for-success-lessons-learned-
when-adopting-enterprise-devops-codex2393.pdf.
3	 Continuous delivery refers to a software engineering approach where software is released in short, rapid cycles leveraging
build, test and deployment automation; martinfowler.com/books/continuousDelivery.html.
4	 Netflix OSS is a set of components useful for building a microservices platform. Netflix deploys these in production for its
own services and has open sourced under Apache License; netflix.github.io/.
5	 Docker is an open platform for developers and sysadmins to build, ship and run distributed applications, whether on laptops,
data center virtual machines or the cloud. For more information, visit www.docker.com.
6	 Blue-green deployment is a release-management technique where two identical environments called blue and green are
simultaneously running; at any time, one is “live” and the other is used for fresh deployments and preproduction testing;
martinfowler.com/bliki/BlueGreenDeployment.html.
7	 A/B testing refers to a controlled experiment in production environment where two variants of the same software is simulta-
neously available to targeted sets of users; en.wikipedia.org/wiki/A/B_testing.
Saroj Pradhan
Head of Software Engineering
and Architecture Lab
Saroj Pradhan heads the Software Engineering and Architecture
Lab within Cognizant’s Global Technology Office. He has over 20
years of experience in product engineering and innovation, build-
ing solutions and platforms in software engineering automation,
DevOps and cloud computing. Saroj has a master’s degree in com-
puter applications from National Institute of Technology, Rourkela.
He can be reached at Saroj.Pradhan@cognizant.com.
World Headquarters
500 Frank W. Burr Blvd.
Teaneck, NJ 07666 USA
Phone: +1 201 801 0233
Fax: +1 201 801 0243
Toll Free: +1 888 937 3277
European Headquarters
1 Kingdom Street
Paddington Central
London W2 6BD England
Phone: +44 (0) 20 7297 7600
Fax: +44 (0) 20 7121 0102
India Operations Headquarters
#5/535 Old Mahabalipuram Road
Okkiyam Pettai, Thoraipakkam
Chennai, 600 096 India
Phone: +91 (0) 44 4209 6000
Fax: +91 (0) 44 4209 6060
© Copyright 2017, Cognizant. All rights reserved. No part of this document may be reproduced, stored in a retrieval system, transmitted in any form or by any means,electronic, mechanical,
photocopying, recording, or otherwise, without the express written permission from Cognizant. The information contained herein is subject to change without notice. All other trademarks
mentioned herein are the property of their respective owners.
TL Codex 2790
ABOUT COGNIZANT
Cognizant (NASDAQ-100: CTSH) is one of the world’s leading professionalservices companies, transforming clients’ business, operating and
technology models for the digital era. Our unique industry-based, consultative approach helps clients envision, build and run more innova-
tive and efficient businesses. Headquartered in the U.S., Cognizant is ranked 205 on the Fortune 500 and is consistently listed among the
most admired companies in the world. Learn how Cognizant helps clients lead with digital at www.cognizant.com or follow us @Cognizant.

More Related Content

What's hot

Microservices and containers for the unitiated
Microservices and containers for the unitiatedMicroservices and containers for the unitiated
Microservices and containers for the unitiatedKevin Lee
 
Are containers the future of it
Are containers the future of itAre containers the future of it
Are containers the future of itDaniel Chiossi
 
Using Containers to More Effectively Manage DevOps Continuous Integration
Using Containers to More Effectively Manage DevOps Continuous IntegrationUsing Containers to More Effectively Manage DevOps Continuous Integration
Using Containers to More Effectively Manage DevOps Continuous IntegrationCognizant
 
Containers - Portable, repeatable user-oriented application delivery. Build, ...
Containers - Portable, repeatable user-oriented application delivery. Build, ...Containers - Portable, repeatable user-oriented application delivery. Build, ...
Containers - Portable, repeatable user-oriented application delivery. Build, ...Walid Shaari
 
Federated Cloud Computing - The OpenNebula Experience v1.0s
Federated Cloud Computing  - The OpenNebula Experience v1.0sFederated Cloud Computing  - The OpenNebula Experience v1.0s
Federated Cloud Computing - The OpenNebula Experience v1.0sIgnacio M. Llorente
 
UnaCloud: Opportunistic Cloud Computing Infrastructure as a Service
UnaCloud: Opportunistic Cloud Computing Infrastructure as a ServiceUnaCloud: Opportunistic Cloud Computing Infrastructure as a Service
UnaCloud: Opportunistic Cloud Computing Infrastructure as a ServiceMario Jose Villamizar Cano
 
OpenNebula Interoperability and Portability DMTF 2011
OpenNebula Interoperability and Portability  DMTF 2011OpenNebula Interoperability and Portability  DMTF 2011
OpenNebula Interoperability and Portability DMTF 2011Ignacio M. Llorente
 
Introducción a Microservicios, SUSE CaaS Platform y Kubernetes
Introducción a Microservicios, SUSE CaaS Platform y KubernetesIntroducción a Microservicios, SUSE CaaS Platform y Kubernetes
Introducción a Microservicios, SUSE CaaS Platform y KubernetesSUSE España
 
Open nebula leading innovation in cloud computing management
Open nebula   leading innovation in cloud computing managementOpen nebula   leading innovation in cloud computing management
Open nebula leading innovation in cloud computing managementIgnacio M. Llorente
 
Research Inventy : International Journal of Engineering and Science
Research Inventy : International Journal of Engineering and ScienceResearch Inventy : International Journal of Engineering and Science
Research Inventy : International Journal of Engineering and Scienceinventy
 
StratusLab: Darn Simple Cloud
StratusLab: Darn Simple CloudStratusLab: Darn Simple Cloud
StratusLab: Darn Simple Cloudstratuslab
 
ISC Cloud 2013 - Cloud Architectures for HPC – Industry Case Studies
 ISC Cloud 2013 - Cloud Architectures for HPC – Industry Case Studies ISC Cloud 2013 - Cloud Architectures for HPC – Industry Case Studies
ISC Cloud 2013 - Cloud Architectures for HPC – Industry Case StudiesOpenNebula Project
 
HPC Cloud Computing with OpenNebula
HPC Cloud Computing with OpenNebulaHPC Cloud Computing with OpenNebula
HPC Cloud Computing with OpenNebulaIgnacio M. Llorente
 
Innovation in cloud computing architectures with open nebula
Innovation in cloud computing architectures with open nebulaInnovation in cloud computing architectures with open nebula
Innovation in cloud computing architectures with open nebulaIgnacio M. Llorente
 
Constantino vazquez open nebula cloud case studies
Constantino vazquez   open nebula cloud case studiesConstantino vazquez   open nebula cloud case studies
Constantino vazquez open nebula cloud case studiesCloudExpoEurope
 
Openstack overview-datasheet
Openstack overview-datasheetOpenstack overview-datasheet
Openstack overview-datasheetcatalogs
 
Managing the Cloud with Open Source Tools
Managing the Cloud with Open Source ToolsManaging the Cloud with Open Source Tools
Managing the Cloud with Open Source ToolsNakul Ezhuthupally
 
OpenFlow as a Service from research institute
OpenFlow as a Service from research instituteOpenFlow as a Service from research institute
OpenFlow as a Service from research instituteVijayaguru Jayaram
 

What's hot (20)

Microservices and containers for the unitiated
Microservices and containers for the unitiatedMicroservices and containers for the unitiated
Microservices and containers for the unitiated
 
Are containers the future of it
Are containers the future of itAre containers the future of it
Are containers the future of it
 
Using Containers to More Effectively Manage DevOps Continuous Integration
Using Containers to More Effectively Manage DevOps Continuous IntegrationUsing Containers to More Effectively Manage DevOps Continuous Integration
Using Containers to More Effectively Manage DevOps Continuous Integration
 
Containers - Portable, repeatable user-oriented application delivery. Build, ...
Containers - Portable, repeatable user-oriented application delivery. Build, ...Containers - Portable, repeatable user-oriented application delivery. Build, ...
Containers - Portable, repeatable user-oriented application delivery. Build, ...
 
Federated Cloud Computing - The OpenNebula Experience v1.0s
Federated Cloud Computing  - The OpenNebula Experience v1.0sFederated Cloud Computing  - The OpenNebula Experience v1.0s
Federated Cloud Computing - The OpenNebula Experience v1.0s
 
UnaCloud: Opportunistic Cloud Computing Infrastructure as a Service
UnaCloud: Opportunistic Cloud Computing Infrastructure as a ServiceUnaCloud: Opportunistic Cloud Computing Infrastructure as a Service
UnaCloud: Opportunistic Cloud Computing Infrastructure as a Service
 
OpenNebula Interoperability and Portability DMTF 2011
OpenNebula Interoperability and Portability  DMTF 2011OpenNebula Interoperability and Portability  DMTF 2011
OpenNebula Interoperability and Portability DMTF 2011
 
Introducción a Microservicios, SUSE CaaS Platform y Kubernetes
Introducción a Microservicios, SUSE CaaS Platform y KubernetesIntroducción a Microservicios, SUSE CaaS Platform y Kubernetes
Introducción a Microservicios, SUSE CaaS Platform y Kubernetes
 
Open nebula leading innovation in cloud computing management
Open nebula   leading innovation in cloud computing managementOpen nebula   leading innovation in cloud computing management
Open nebula leading innovation in cloud computing management
 
Research Inventy : International Journal of Engineering and Science
Research Inventy : International Journal of Engineering and ScienceResearch Inventy : International Journal of Engineering and Science
Research Inventy : International Journal of Engineering and Science
 
StratusLab: Darn Simple Cloud
StratusLab: Darn Simple CloudStratusLab: Darn Simple Cloud
StratusLab: Darn Simple Cloud
 
ISC Cloud 2013 - Cloud Architectures for HPC – Industry Case Studies
 ISC Cloud 2013 - Cloud Architectures for HPC – Industry Case Studies ISC Cloud 2013 - Cloud Architectures for HPC – Industry Case Studies
ISC Cloud 2013 - Cloud Architectures for HPC – Industry Case Studies
 
Nimbus Concept
Nimbus ConceptNimbus Concept
Nimbus Concept
 
HPC Cloud Computing with OpenNebula
HPC Cloud Computing with OpenNebulaHPC Cloud Computing with OpenNebula
HPC Cloud Computing with OpenNebula
 
Innovation in cloud computing architectures with open nebula
Innovation in cloud computing architectures with open nebulaInnovation in cloud computing architectures with open nebula
Innovation in cloud computing architectures with open nebula
 
Constantino vazquez open nebula cloud case studies
Constantino vazquez   open nebula cloud case studiesConstantino vazquez   open nebula cloud case studies
Constantino vazquez open nebula cloud case studies
 
Open Source Cloud
Open Source CloudOpen Source Cloud
Open Source Cloud
 
Openstack overview-datasheet
Openstack overview-datasheetOpenstack overview-datasheet
Openstack overview-datasheet
 
Managing the Cloud with Open Source Tools
Managing the Cloud with Open Source ToolsManaging the Cloud with Open Source Tools
Managing the Cloud with Open Source Tools
 
OpenFlow as a Service from research institute
OpenFlow as a Service from research instituteOpenFlow as a Service from research institute
OpenFlow as a Service from research institute
 

Similar to Powering Microservices with Docker

Docker-PPT.pdf for presentation and other
Docker-PPT.pdf for presentation and otherDocker-PPT.pdf for presentation and other
Docker-PPT.pdf for presentation and otheradarsh20cs004
 
Docker - Alem da virtualizaćão Tradicional
Docker - Alem da virtualizaćão Tradicional Docker - Alem da virtualizaćão Tradicional
Docker - Alem da virtualizaćão Tradicional Marcos Vieira
 
Using Docker container technology with F5 Networks products and services
Using Docker container technology with F5 Networks products and servicesUsing Docker container technology with F5 Networks products and services
Using Docker container technology with F5 Networks products and servicesF5 Networks
 
Docker 101 - all about Docker containers
Docker 101 - all about Docker containers Docker 101 - all about Docker containers
Docker 101 - all about Docker containers Ian Lumb
 
Docker Application to Scientific Computing
Docker Application to Scientific ComputingDocker Application to Scientific Computing
Docker Application to Scientific ComputingPeter Bryzgalov
 
Backend Master | 3.4.2 Deploy - Docker Introduction
Backend Master | 3.4.2 Deploy - Docker IntroductionBackend Master | 3.4.2 Deploy - Docker Introduction
Backend Master | 3.4.2 Deploy - Docker IntroductionKyunghun Jeon
 
The ABC of Docker: The Absolute Best Compendium of Docker
The ABC of Docker: The Absolute Best Compendium of DockerThe ABC of Docker: The Absolute Best Compendium of Docker
The ABC of Docker: The Absolute Best Compendium of DockerAniekan Akpaffiong
 
HPC Cloud Burst Using Docker
HPC Cloud Burst Using DockerHPC Cloud Burst Using Docker
HPC Cloud Burst Using DockerIRJET Journal
 
An operational view into docker registry with scalability, access control and...
An operational view into docker registry with scalability, access control and...An operational view into docker registry with scalability, access control and...
An operational view into docker registry with scalability, access control and...Conference Papers
 
Docker and containerization
Docker and containerizationDocker and containerization
Docker and containerizationAmulya Saxena
 
Container Ecosystem and Docker Technology
Container Ecosystem and Docker TechnologyContainer Ecosystem and Docker Technology
Container Ecosystem and Docker Technologyijtsrd
 
Adoption of Cloud Computing in Healthcare to Improves Patient Care Coordination
Adoption of Cloud Computing in Healthcare to Improves Patient Care CoordinationAdoption of Cloud Computing in Healthcare to Improves Patient Care Coordination
Adoption of Cloud Computing in Healthcare to Improves Patient Care CoordinationMindfire LLC
 
Dockers and kubernetes
Dockers and kubernetesDockers and kubernetes
Dockers and kubernetesDr Ganesh Iyer
 
OpenNebula Conf 2014 | Cloud Automation for OpenNebula by Kishorekumar Neelam...
OpenNebula Conf 2014 | Cloud Automation for OpenNebula by Kishorekumar Neelam...OpenNebula Conf 2014 | Cloud Automation for OpenNebula by Kishorekumar Neelam...
OpenNebula Conf 2014 | Cloud Automation for OpenNebula by Kishorekumar Neelam...NETWAYS
 
OpenNebulaConf 2014 - Cloud Automation for OpenNebula - Kishorekumar Neelamegam
OpenNebulaConf 2014 - Cloud Automation for OpenNebula - Kishorekumar NeelamegamOpenNebulaConf 2014 - Cloud Automation for OpenNebula - Kishorekumar Neelamegam
OpenNebulaConf 2014 - Cloud Automation for OpenNebula - Kishorekumar NeelamegamOpenNebula Project
 

Similar to Powering Microservices with Docker (20)

Docker-PPT.pdf for presentation and other
Docker-PPT.pdf for presentation and otherDocker-PPT.pdf for presentation and other
Docker-PPT.pdf for presentation and other
 
Docker - Alem da virtualizaćão Tradicional
Docker - Alem da virtualizaćão Tradicional Docker - Alem da virtualizaćão Tradicional
Docker - Alem da virtualizaćão Tradicional
 
What is Docker?
What is Docker?What is Docker?
What is Docker?
 
Using Docker container technology with F5 Networks products and services
Using Docker container technology with F5 Networks products and servicesUsing Docker container technology with F5 Networks products and services
Using Docker container technology with F5 Networks products and services
 
Docker 101 - all about Docker containers
Docker 101 - all about Docker containers Docker 101 - all about Docker containers
Docker 101 - all about Docker containers
 
Docker Application to Scientific Computing
Docker Application to Scientific ComputingDocker Application to Scientific Computing
Docker Application to Scientific Computing
 
Backend Master | 3.4.2 Deploy - Docker Introduction
Backend Master | 3.4.2 Deploy - Docker IntroductionBackend Master | 3.4.2 Deploy - Docker Introduction
Backend Master | 3.4.2 Deploy - Docker Introduction
 
The ABC of Docker: The Absolute Best Compendium of Docker
The ABC of Docker: The Absolute Best Compendium of DockerThe ABC of Docker: The Absolute Best Compendium of Docker
The ABC of Docker: The Absolute Best Compendium of Docker
 
HPC Cloud Burst Using Docker
HPC Cloud Burst Using DockerHPC Cloud Burst Using Docker
HPC Cloud Burst Using Docker
 
An operational view into docker registry with scalability, access control and...
An operational view into docker registry with scalability, access control and...An operational view into docker registry with scalability, access control and...
An operational view into docker registry with scalability, access control and...
 
Docker and containerization
Docker and containerizationDocker and containerization
Docker and containerization
 
Docker
DockerDocker
Docker
 
paper
paperpaper
paper
 
Containerization
ContainerizationContainerization
Containerization
 
Docker training
Docker trainingDocker training
Docker training
 
Container Ecosystem and Docker Technology
Container Ecosystem and Docker TechnologyContainer Ecosystem and Docker Technology
Container Ecosystem and Docker Technology
 
Adoption of Cloud Computing in Healthcare to Improves Patient Care Coordination
Adoption of Cloud Computing in Healthcare to Improves Patient Care CoordinationAdoption of Cloud Computing in Healthcare to Improves Patient Care Coordination
Adoption of Cloud Computing in Healthcare to Improves Patient Care Coordination
 
Dockers and kubernetes
Dockers and kubernetesDockers and kubernetes
Dockers and kubernetes
 
OpenNebula Conf 2014 | Cloud Automation for OpenNebula by Kishorekumar Neelam...
OpenNebula Conf 2014 | Cloud Automation for OpenNebula by Kishorekumar Neelam...OpenNebula Conf 2014 | Cloud Automation for OpenNebula by Kishorekumar Neelam...
OpenNebula Conf 2014 | Cloud Automation for OpenNebula by Kishorekumar Neelam...
 
OpenNebulaConf 2014 - Cloud Automation for OpenNebula - Kishorekumar Neelamegam
OpenNebulaConf 2014 - Cloud Automation for OpenNebula - Kishorekumar NeelamegamOpenNebulaConf 2014 - Cloud Automation for OpenNebula - Kishorekumar Neelamegam
OpenNebulaConf 2014 - Cloud Automation for OpenNebula - Kishorekumar Neelamegam
 

More from Cognizant

Using Adaptive Scrum to Tame Process Reverse Engineering in Data Analytics Pr...
Using Adaptive Scrum to Tame Process Reverse Engineering in Data Analytics Pr...Using Adaptive Scrum to Tame Process Reverse Engineering in Data Analytics Pr...
Using Adaptive Scrum to Tame Process Reverse Engineering in Data Analytics Pr...Cognizant
 
Data Modernization: Breaking the AI Vicious Cycle for Superior Decision-making
Data Modernization: Breaking the AI Vicious Cycle for Superior Decision-makingData Modernization: Breaking the AI Vicious Cycle for Superior Decision-making
Data Modernization: Breaking the AI Vicious Cycle for Superior Decision-makingCognizant
 
It Takes an Ecosystem: How Technology Companies Deliver Exceptional Experiences
It Takes an Ecosystem: How Technology Companies Deliver Exceptional ExperiencesIt Takes an Ecosystem: How Technology Companies Deliver Exceptional Experiences
It Takes an Ecosystem: How Technology Companies Deliver Exceptional ExperiencesCognizant
 
Intuition Engineered
Intuition EngineeredIntuition Engineered
Intuition EngineeredCognizant
 
The Work Ahead: Transportation and Logistics Delivering on the Digital-Physic...
The Work Ahead: Transportation and Logistics Delivering on the Digital-Physic...The Work Ahead: Transportation and Logistics Delivering on the Digital-Physic...
The Work Ahead: Transportation and Logistics Delivering on the Digital-Physic...Cognizant
 
Enhancing Desirability: Five Considerations for Winning Digital Initiatives
Enhancing Desirability: Five Considerations for Winning Digital InitiativesEnhancing Desirability: Five Considerations for Winning Digital Initiatives
Enhancing Desirability: Five Considerations for Winning Digital InitiativesCognizant
 
The Work Ahead in Manufacturing: Fulfilling the Agility Mandate
The Work Ahead in Manufacturing: Fulfilling the Agility MandateThe Work Ahead in Manufacturing: Fulfilling the Agility Mandate
The Work Ahead in Manufacturing: Fulfilling the Agility MandateCognizant
 
The Work Ahead in Higher Education: Repaving the Road for the Employees of To...
The Work Ahead in Higher Education: Repaving the Road for the Employees of To...The Work Ahead in Higher Education: Repaving the Road for the Employees of To...
The Work Ahead in Higher Education: Repaving the Road for the Employees of To...Cognizant
 
Engineering the Next-Gen Digital Claims Organisation for Australian General I...
Engineering the Next-Gen Digital Claims Organisation for Australian General I...Engineering the Next-Gen Digital Claims Organisation for Australian General I...
Engineering the Next-Gen Digital Claims Organisation for Australian General I...Cognizant
 
Profitability in the Direct-to-Consumer Marketplace: A Playbook for Media and...
Profitability in the Direct-to-Consumer Marketplace: A Playbook for Media and...Profitability in the Direct-to-Consumer Marketplace: A Playbook for Media and...
Profitability in the Direct-to-Consumer Marketplace: A Playbook for Media and...Cognizant
 
Green Rush: The Economic Imperative for Sustainability
Green Rush: The Economic Imperative for SustainabilityGreen Rush: The Economic Imperative for Sustainability
Green Rush: The Economic Imperative for SustainabilityCognizant
 
Policy Administration Modernization: Four Paths for Insurers
Policy Administration Modernization: Four Paths for InsurersPolicy Administration Modernization: Four Paths for Insurers
Policy Administration Modernization: Four Paths for InsurersCognizant
 
The Work Ahead in Utilities: Powering a Sustainable Future with Digital
The Work Ahead in Utilities: Powering a Sustainable Future with DigitalThe Work Ahead in Utilities: Powering a Sustainable Future with Digital
The Work Ahead in Utilities: Powering a Sustainable Future with DigitalCognizant
 
AI in Media & Entertainment: Starting the Journey to Value
AI in Media & Entertainment: Starting the Journey to ValueAI in Media & Entertainment: Starting the Journey to Value
AI in Media & Entertainment: Starting the Journey to ValueCognizant
 
Operations Workforce Management: A Data-Informed, Digital-First Approach
Operations Workforce Management: A Data-Informed, Digital-First ApproachOperations Workforce Management: A Data-Informed, Digital-First Approach
Operations Workforce Management: A Data-Informed, Digital-First ApproachCognizant
 
Five Priorities for Quality Engineering When Taking Banking to the Cloud
Five Priorities for Quality Engineering When Taking Banking to the CloudFive Priorities for Quality Engineering When Taking Banking to the Cloud
Five Priorities for Quality Engineering When Taking Banking to the CloudCognizant
 
Getting Ahead With AI: How APAC Companies Replicate Success by Remaining Focused
Getting Ahead With AI: How APAC Companies Replicate Success by Remaining FocusedGetting Ahead With AI: How APAC Companies Replicate Success by Remaining Focused
Getting Ahead With AI: How APAC Companies Replicate Success by Remaining FocusedCognizant
 
Crafting the Utility of the Future
Crafting the Utility of the FutureCrafting the Utility of the Future
Crafting the Utility of the FutureCognizant
 
Utilities Can Ramp Up CX with a Customer Data Platform
Utilities Can Ramp Up CX with a Customer Data PlatformUtilities Can Ramp Up CX with a Customer Data Platform
Utilities Can Ramp Up CX with a Customer Data PlatformCognizant
 
The Work Ahead in Intelligent Automation: Coping with Complexity in a Post-Pa...
The Work Ahead in Intelligent Automation: Coping with Complexity in a Post-Pa...The Work Ahead in Intelligent Automation: Coping with Complexity in a Post-Pa...
The Work Ahead in Intelligent Automation: Coping with Complexity in a Post-Pa...Cognizant
 

More from Cognizant (20)

Using Adaptive Scrum to Tame Process Reverse Engineering in Data Analytics Pr...
Using Adaptive Scrum to Tame Process Reverse Engineering in Data Analytics Pr...Using Adaptive Scrum to Tame Process Reverse Engineering in Data Analytics Pr...
Using Adaptive Scrum to Tame Process Reverse Engineering in Data Analytics Pr...
 
Data Modernization: Breaking the AI Vicious Cycle for Superior Decision-making
Data Modernization: Breaking the AI Vicious Cycle for Superior Decision-makingData Modernization: Breaking the AI Vicious Cycle for Superior Decision-making
Data Modernization: Breaking the AI Vicious Cycle for Superior Decision-making
 
It Takes an Ecosystem: How Technology Companies Deliver Exceptional Experiences
It Takes an Ecosystem: How Technology Companies Deliver Exceptional ExperiencesIt Takes an Ecosystem: How Technology Companies Deliver Exceptional Experiences
It Takes an Ecosystem: How Technology Companies Deliver Exceptional Experiences
 
Intuition Engineered
Intuition EngineeredIntuition Engineered
Intuition Engineered
 
The Work Ahead: Transportation and Logistics Delivering on the Digital-Physic...
The Work Ahead: Transportation and Logistics Delivering on the Digital-Physic...The Work Ahead: Transportation and Logistics Delivering on the Digital-Physic...
The Work Ahead: Transportation and Logistics Delivering on the Digital-Physic...
 
Enhancing Desirability: Five Considerations for Winning Digital Initiatives
Enhancing Desirability: Five Considerations for Winning Digital InitiativesEnhancing Desirability: Five Considerations for Winning Digital Initiatives
Enhancing Desirability: Five Considerations for Winning Digital Initiatives
 
The Work Ahead in Manufacturing: Fulfilling the Agility Mandate
The Work Ahead in Manufacturing: Fulfilling the Agility MandateThe Work Ahead in Manufacturing: Fulfilling the Agility Mandate
The Work Ahead in Manufacturing: Fulfilling the Agility Mandate
 
The Work Ahead in Higher Education: Repaving the Road for the Employees of To...
The Work Ahead in Higher Education: Repaving the Road for the Employees of To...The Work Ahead in Higher Education: Repaving the Road for the Employees of To...
The Work Ahead in Higher Education: Repaving the Road for the Employees of To...
 
Engineering the Next-Gen Digital Claims Organisation for Australian General I...
Engineering the Next-Gen Digital Claims Organisation for Australian General I...Engineering the Next-Gen Digital Claims Organisation for Australian General I...
Engineering the Next-Gen Digital Claims Organisation for Australian General I...
 
Profitability in the Direct-to-Consumer Marketplace: A Playbook for Media and...
Profitability in the Direct-to-Consumer Marketplace: A Playbook for Media and...Profitability in the Direct-to-Consumer Marketplace: A Playbook for Media and...
Profitability in the Direct-to-Consumer Marketplace: A Playbook for Media and...
 
Green Rush: The Economic Imperative for Sustainability
Green Rush: The Economic Imperative for SustainabilityGreen Rush: The Economic Imperative for Sustainability
Green Rush: The Economic Imperative for Sustainability
 
Policy Administration Modernization: Four Paths for Insurers
Policy Administration Modernization: Four Paths for InsurersPolicy Administration Modernization: Four Paths for Insurers
Policy Administration Modernization: Four Paths for Insurers
 
The Work Ahead in Utilities: Powering a Sustainable Future with Digital
The Work Ahead in Utilities: Powering a Sustainable Future with DigitalThe Work Ahead in Utilities: Powering a Sustainable Future with Digital
The Work Ahead in Utilities: Powering a Sustainable Future with Digital
 
AI in Media & Entertainment: Starting the Journey to Value
AI in Media & Entertainment: Starting the Journey to ValueAI in Media & Entertainment: Starting the Journey to Value
AI in Media & Entertainment: Starting the Journey to Value
 
Operations Workforce Management: A Data-Informed, Digital-First Approach
Operations Workforce Management: A Data-Informed, Digital-First ApproachOperations Workforce Management: A Data-Informed, Digital-First Approach
Operations Workforce Management: A Data-Informed, Digital-First Approach
 
Five Priorities for Quality Engineering When Taking Banking to the Cloud
Five Priorities for Quality Engineering When Taking Banking to the CloudFive Priorities for Quality Engineering When Taking Banking to the Cloud
Five Priorities for Quality Engineering When Taking Banking to the Cloud
 
Getting Ahead With AI: How APAC Companies Replicate Success by Remaining Focused
Getting Ahead With AI: How APAC Companies Replicate Success by Remaining FocusedGetting Ahead With AI: How APAC Companies Replicate Success by Remaining Focused
Getting Ahead With AI: How APAC Companies Replicate Success by Remaining Focused
 
Crafting the Utility of the Future
Crafting the Utility of the FutureCrafting the Utility of the Future
Crafting the Utility of the Future
 
Utilities Can Ramp Up CX with a Customer Data Platform
Utilities Can Ramp Up CX with a Customer Data PlatformUtilities Can Ramp Up CX with a Customer Data Platform
Utilities Can Ramp Up CX with a Customer Data Platform
 
The Work Ahead in Intelligent Automation: Coping with Complexity in a Post-Pa...
The Work Ahead in Intelligent Automation: Coping with Complexity in a Post-Pa...The Work Ahead in Intelligent Automation: Coping with Complexity in a Post-Pa...
The Work Ahead in Intelligent Automation: Coping with Complexity in a Post-Pa...
 

Powering Microservices with Docker

  • 1. Powering Microservices with Docker To accelerate digital innovation, many IT organizations are exploring microservices architectures, but to get there they need to address transition complexity, keep a check on platform costs, minimize time to production and avoid service disruptions. The Docker platform is a strong contender that supports all these objectives. EXECUTIVE SUMMARY Enterprise architects seek to elevate IT agility and scalability by breaking down business func- tional models into bounded contexts with explicit relationships. Microservices architecture1 helps to achieve these goals by mapping bounded con- texts with autonomous units of software (i.e., microservices), each focusing on a single busi- ness capability and equipped with well-defined interfaces. Cohesive teams are organized by the micro- services that they build and manage, with independent development velocities, implementa- tion approaches, choice of technology stacks and tools. In support of innovation agility and veloc- ity, IT organizations also often adopt DevOps2 — a practice that emphasizes a systemic, iterative and collaborative software development approach, with a high degree of automation in continuous integration and continuous delivery3 (CI/CD). Apart from enabling an elastic and “always on” IT infrastructure, cloud computing has fueled the evolution of platforms and technologies that simultaneously support microservices and Cognizant 20-20 Insights | August 2017 COGNIZANT 20-20 INSIGHTS
  • 2. Cognizant 20-20 Insights Powering Microservices with Docker | 2 DevOps. Open source as well as proprietary plat- form-as-a-service (PaaS) offerings such as Cloud Foundry, IBM Bluemix, Microsoft Azure, RedHat OpenShift, etc. provide the programming models, delivery automation capabilities and manage- ment tools, abstracting the underlying virtualized or cloud infrastructure. Other open source frameworks and libraries such as Netflix OSS4 are available as foundational com- ponents on which organizations can build their own microservices platform, often relying on an infrastructure as a service (IaaS) layer hosted in the data center or public cloud. Container technology is a lightweight virtualiza- tion capability that has been available in Linux and Unix operating systems for many years (and now in Microsoft Windows, as well). Containers are highly portable across environments and pro- vide improved infrastructure utilization. Docker5 has extended this technology by adding new capabilities that significantly impact the way software is developed, deployed and consumed. This white paper explores what makes Docker a great vehicle to convert microservices architec- ture and DevOps from thoughtful constructs to meaningful realities. BUILDING A SOFTWARE DEFINED ENVIRONMENT Docker started as an open source deployment automation project that introduced an inno- vative approach for packaging the application software, along with all run-time dependencies, in a container image. A container image is a file system and a set of parameters that fully define the behavior of any instance of the container in execution. Images can be layered such that each base image resolves dependencies of the image in the layer above (e.g., an application framework over platform libraries and run-time over the operating system). Docker images are stored and version-controlled in a registry — either the pub- licly hosted Docker Hub or the Docker Trusted Registry (DTR) hosted on-premises — to facilitate search and reuse. Target images are automatically assembled from base container images pulled from the regis- try when required using a set of command-line instructions. The build automation system uses Dockerfile — a simple and human-readable text script, making it a self-documenting and declar- ative build automation mechanism. Integrated with a continuous integration tool such as Jenkins, Docker provides the capability for build and deployment automation across various software lifecycle stages. Distribution and pro- visioning can be automated with Docker-aware provisioning tools such as Vagrant or Ansible. When used in production, Docker images are de- ployed and run on a number of containers, usu- ally spread across physical or virtual hosts for scalability, using the popular service instance per container pattern. These containers can be clustered and centrally managed using the Docker Swarm/Universal Control Plane (UCP) or third-party open source alternatives such as Kubernetes or Mesos. When used in production, Docker images are deployed and run on a number of containers, usually spread across physical or virtual hosts for scalability, using the popular service instance per container pattern.
  • 3. Powering Microservices with Docker | 3 Cloud providers have rapidly adopted Docker to build container-as-a-service (CaaS) offerings, where the container infrastructure, image reg- istry, and automation tool-chain, as well as the orchestration and management capabilities, are delivered as a service. Public-cloud-hosted CaaS examples are Amazon EC2 Container Service (dis- tinct from Docker-aware AWS Elastic Beanstalk), Google Container Engine and Azure Container Service. Docker Datacenter and Rancher are CaaS options that can be deployed on public as well as private cloud. AN ECOSYSTEM FOR MICROSERVICES Docker’s advantages significantly multiply when used along with popular open source tools such as Kubernetes and Jenkins or commercial, enter- prise-grade build and release management auto- mation products. With the capabilities described above, the Docker ecosystem offers several fea- tures that help implement microservices archi- tecture and DevOps practices: • Container as the unit of deployment: The cross-functional team that owns a given micro- service continually develops and manages a container image as its deliverable software package. The Dockerfile used for its build automation is common across environments — development, testing, production or any other environment. In effect, developers define or extend (by extending base images defined by operations) and use a production-like environ- ment throughout the development lifecycle. Docker images are portable, from a develop- er’s laptop to the data center to the cloud. Defects arising from configuration differences between the development and production environments are automatically eliminated. By unifying the build and deploy processes for a given microservice across its lifecycle stages, the Docker ecosystem significantly reduces the amount of complexity and room for error. • Encapsulation and isolation: Each con- tainer is a self-contained “full stack” envi- ronment for the application it hosts. Docker allows a wide range of technology platforms and tools to realize services as long as sys- tem resource prerequisites are met and a ro- bust interface governance is observed. This enables a technical as well as functional en- capsulation, hiding the implementation de- tails. Docker containers provide an efficient and simple form of isolation: containers get their own memory space and network stack and also support resource limits or reserva- tion. Not only does it provide an indepen- dent delivery lifecycle and velocity, it also localizes the impact of any defects or failures. Docker employs a very efficient image-packag- ing strategy that reduces the image-building and publishing time and resists infrastructure sprawl. Encapsulating deployment artifacts into Docker containers, rather than writing to- pology-aware automation scripts, improves the manageability and stability of the deploy- ment process. Docker containers provide an efficient and simple form of isolation: containers get their own memory space and network stack and also support resource limits or reservation.
  • 4. Cognizant 20-20 Insights Powering Microservices with Docker | 4 • Dynamic service discovery, orchestration and scaling: Docker container initialization overhead is very small, which allows near-in- stantaneous container spin-off and dynam- ic auto-scaling of infrastructure. Native tools within the Docker ecosystem (Swarm and Compose) as well as third-party tools (Ku- bernetes, Mesos) enable service discovery, orchestration and load balancing capability. In a composite application, services can be ex- plicitly linked to resolve dependencies; how- ever, they can be independently scaled and managed. Rapid innovation and fail-fast strat- egies such as blue-green deployment6 or A/B testing7 can be implemented with the help of automation scripts or commands issued from a single console by slicing the infrastructure in a more efficient and controlled way. • Coherent developer tools ecosystem: Having evolved beyond Linux container technology, Docker is natively available for Windows 10 with Hyper-V and Mac OS X El Capitan 10.11 or newer. It is a first-class citizen in the target environments supported by many popular developer tools (especially open source). For example, Eclipse Neon provides a Dockerfile editor, Docker registry connect and image search/pull/push capability, container man- agement, console access to a shell within a running container, etc. Eclipse Che (a work- space on the cloud) also supports Docker Compose. Microsoft has also released a pre- view version of Visual Studio tools for Docker. Consequently, enterprise developers moving from traditional programming environments to Docker-based polyglot microservices have a natural transition path over a period of time. • Reduced enterprise middleware complexity: Traditional enterprise middleware offers the capability to address deployment concerns such as clustering, load balancing, state man- agement, application monitoring, etc., which is beneficial for large monolithic applications. With the adoption of microservices architec- tural style and containerized deployment into cloud, this capability is redundant. In response, middleware vendors now offer smaller-foot- print versions (e.g., IBM WebSphere Liberty profile, RedHat JBoss, WildFly) as container images, to address complexity reduction and commoditization of enterprise middleware to embrace microservices and containerization. CAAS VS. PAAS PaaS offerings (especially those that are vendor driven) and the Docker ecosystem are often compared, although they do not necessarily compete and can be beneficial if used together. Many PaaS vendors have actively adopted the Docker container as their internal unit of deploy- ment and utilize many of the same open source components as the Docker ecosystem. Docker- based CaaS can be effectively used as the foun- dation to build a custom PaaS platform for PaaS offerings (especially those that are vendor driven) and the Docker ecosystem are often compared, although they do not necessarily compete and can be beneficial if used together.
  • 5. Cognizant 20-20 Insights Powering Microservices with Docker | 5 microservices implementation. That said, orga- nizations looking to adopt microservices archi- tecture need to identify and track the strengths of both these technologies. Figure 1 summarizes our observations at present. Integral Support for Microservices This is the extent to which a platform enables microservices with built-in features and capa- bilities. PaaS platforms tend to bake in the microservices architecture elements and prac- tices, whereas the Docker ecosystem takes a relatively neutral approach. For example, Pivotal Cloud Foundry PaaS provides an implementa- tion of a circuit-breaker pattern used for building resilience against cascading failures across ser- vices, whereas a custom implementation (such as container adaptation of Hystrix from Netflix OSS) may be necessary in a Docker-based CaaS. CI/CD Automation This dimension indicates how well a given plat- form supports automation in continuous inte- gration and continuous delivery. It is critical for high velocity innovation and both PaaS and the Docker ecosystem tend to leverage best-of-breed open source CI/CD tools to implement it. Infrastructure Abstraction Platforms typically hide the details of underly- ing infrastructure from developers by automating deployment and monitoring aspects. PaaS offer- ings tend to encapsulate hardware and virtual- ization layers, providing a rich API for developers to use in the application lifecycle. PaaS develop- ers provision application run-times and available services from a catalog. On the other hand, the Docker ecosystem allows developers to construct their application run-time by pulling the required Docker images from a registry, building custom code and applying configurations — in addition to providing tools to automate container deploy- ment, load balancing, etc. Production Ready Production readiness is a function of technology maturity and stakeholder perception built from field experience. As adoption grows, additional Comparing, Contrasting CaaS and PaaS Approaches Integral support for microservices CI/CD automation Infrastructure abstraction Production ready Cloud provider friendly Start-up friendly Vendor agnostic Lightweight Off-the-shelf PaaS Docker-based CaaS 5 4 3 2 1 0 Figure 1
  • 6. Powering Microservices with Docker | 6 enterprises are likely to extend the continuous delivery automation into production environ- ments. At the time of this writing, inter-container networking and security are among the main com- plexity areas in Docker container deployment. Lightweight Although a relative term, lightweight in this con- text means a low overhead, nimble platform that does not warrant a large up-front infrastructure setup or change management effort. Docker has far less of an entry (or exit) barrier from a tech- nology adoption perspective, compared to most PaaS offerings. Vendor Agnostic Portability and avoidance of vendor lock-in are quite high on the agenda of most organiza- tions going digital. With the penetration of open source components in each and every aspect of today’s software lifecycle, platforms are far less proprietary than ever before. However, it is still necessary to trade off between out-of-the-box value from a platform versus flexibility, control and freedom of choice. Start-Up Friendly This comparison parameter is significant since enabling rapid innovation is a key promise of microservices and DevOps, and start-ups have often been the birthplace of disruptive innovation. Start-up-friendly platforms are char- acterized by a low entry barrier, open source culture and a vibrant community that drives rapid and collaborative feature enhancements via experimental work. Cloud Provider Friendly Not only start-ups, but even large businesses and enterprises are betting big on cloud-native systems, expecting the underlying infrastructure and services to be techno-commercially elas- tic. In turn, cloud providers look to include rapid innovation platform capabilities within their offerings and are becoming the main source of these capabilities. Naturally, the cloud-pro- vider-friendly platforms will find broader and accelerated traction. ENTRY POINTS INTO THE ENTERPRISE IT LANDSCAPE Docker is enormously popular; however, it has been finding its way into the enterprise IT land- scape via one of three distinct entry points: as an instrument of lightweight virtualization, as the foundation of CaaS platform (public or on-prem- ises) or as the built-in container governance construct of PaaS (also public or on-premises). Organizations that are freshly implementing microservices, or have very few legacy mono- lithic systems, can leverage Docker in a CaaS environment. Start-ups can choose from the numerous IaaS cloud providers that fully support (or even promote) Docker, whereas others look- ing to host on premises can build their own CaaS fairly quickly with modest infrastructure updates or investments. On the other hand, large organizations may take a gradual migration route due to the preponder- ance of monolithic legacy applications running in their production environments. Our current Docker has far less of an entry (or exit) barrier from a technology adoption perspective, compared to most PaaS offerings.
  • 7. Cognizant 20-20 Insights Powering Microservices with Docker | 7 view, based on conversations and engagement experiences with our clients, indicates that a majority of such organizations have evaluated Docker and are using Docker container images as lightweight virtual instances in build/test auto- mation, but aren’t yet ready to deploy it in their production environments. The focus is on image standardization and reuse via DTR and just-in- time instantiation of containers (e.g., Jenkins slaves) with an aspiration to achieve blue-green deployment, A/B testing or canary releases. A number of large IT organizations with whom we have spoken have made up-front investments in PaaS cloud (typically on premises) to achieve bet- ter infrastructure abstraction or even production readiness, and have embarked on vendor-sup- ported monolith-to-microservices transforma- tion projects. Docker containers are seen even in these environments, often natively built into the PaaS or in an experimental/labs setup. LOOKING AHEAD Organizations adopting containerization can leverage Docker as a software-defined unit of ap- plication delivery, testing and deployment. Dock- er adds significant value into CI/CD automation due to its low-overhead virtualization and com- mand-line programming interface for scripting. Docker registry promotes discovery and reuse of self-contained software, whereas Docker UCP or open source alternatives enable service dis- covery, orchestration and load balancing of container-hosted microservices instances. IT organizations looking at a Docker-based CaaS model as an option to build a microservices archi- tecture need to consider the following points in order to validate techno-cultural fit: • Does the existing IT infrastructure support Docker out of the box or with minor upgrades? • Does the IT landscape leverage Docker-aware open source software? • Is the IT team inclined to build and manage in-house applications provisioning and de- ployment? • Are there custom nonfunctional components (e.g., cluster management, load balancing) or a CI/CD automation harness that can be re- used in a containerized environment? • Has containerization been achieved or planned in the production environment? Affirmative responses indicate a natural fit for the Docker-based CaaS model.
  • 8. Cognizant 20-20 Insights Powering Microservices with Docker | 8 Milind Lele Chief Architect, Global Technology Office Milind Lele is a Chief Architect within Cognizant’s Global Technology Office, where he leads numerous initiatives in software engineering and architecture labs. He has a post-graduate diploma in software technology and has over 22 years of IT experience spanning enter- prise architecture, technology consulting, large green-field system integration projects and technology research, and innovation. Milind can be reached at Milind.Lele@cognizant.com. ABOUT THE AUTHORS FOOTNOTES 1 Microservices architecture is an architectural style that promotes implementation of software applications as a set of independent, self-contained services, each focusing on one business concern; www.cognizant.com/InsightsWhitepapers/ Overcoming-Ongoing-Digital-Transformational-Challenges-with-a-Microservices-Architecture-codex1598.pdf. 2 DevOps is a practice that integrates the activities of developers and IT operations to enable a more agile relationship. For a deeper dive, read www.cognizant.com/content/dam/Cognizant_Dotcom/whitepapers/patterns-for-success-lessons-learned- when-adopting-enterprise-devops-codex2393.pdf. 3 Continuous delivery refers to a software engineering approach where software is released in short, rapid cycles leveraging build, test and deployment automation; martinfowler.com/books/continuousDelivery.html. 4 Netflix OSS is a set of components useful for building a microservices platform. Netflix deploys these in production for its own services and has open sourced under Apache License; netflix.github.io/. 5 Docker is an open platform for developers and sysadmins to build, ship and run distributed applications, whether on laptops, data center virtual machines or the cloud. For more information, visit www.docker.com. 6 Blue-green deployment is a release-management technique where two identical environments called blue and green are simultaneously running; at any time, one is “live” and the other is used for fresh deployments and preproduction testing; martinfowler.com/bliki/BlueGreenDeployment.html. 7 A/B testing refers to a controlled experiment in production environment where two variants of the same software is simulta- neously available to targeted sets of users; en.wikipedia.org/wiki/A/B_testing. Saroj Pradhan Head of Software Engineering and Architecture Lab Saroj Pradhan heads the Software Engineering and Architecture Lab within Cognizant’s Global Technology Office. He has over 20 years of experience in product engineering and innovation, build- ing solutions and platforms in software engineering automation, DevOps and cloud computing. Saroj has a master’s degree in com- puter applications from National Institute of Technology, Rourkela. He can be reached at Saroj.Pradhan@cognizant.com.
  • 9. World Headquarters 500 Frank W. Burr Blvd. Teaneck, NJ 07666 USA Phone: +1 201 801 0233 Fax: +1 201 801 0243 Toll Free: +1 888 937 3277 European Headquarters 1 Kingdom Street Paddington Central London W2 6BD England Phone: +44 (0) 20 7297 7600 Fax: +44 (0) 20 7121 0102 India Operations Headquarters #5/535 Old Mahabalipuram Road Okkiyam Pettai, Thoraipakkam Chennai, 600 096 India Phone: +91 (0) 44 4209 6000 Fax: +91 (0) 44 4209 6060 © Copyright 2017, Cognizant. All rights reserved. No part of this document may be reproduced, stored in a retrieval system, transmitted in any form or by any means,electronic, mechanical, photocopying, recording, or otherwise, without the express written permission from Cognizant. The information contained herein is subject to change without notice. All other trademarks mentioned herein are the property of their respective owners. TL Codex 2790 ABOUT COGNIZANT Cognizant (NASDAQ-100: CTSH) is one of the world’s leading professionalservices companies, transforming clients’ business, operating and technology models for the digital era. Our unique industry-based, consultative approach helps clients envision, build and run more innova- tive and efficient businesses. Headquartered in the U.S., Cognizant is ranked 205 on the Fortune 500 and is consistently listed among the most admired companies in the world. Learn how Cognizant helps clients lead with digital at www.cognizant.com or follow us @Cognizant.