3. IT Evolution and the Challenges
What is Virtualization?
What are Containers?
Containers vs. Hypervisors
Why Containers?
Application Deployment Automation Tools
www.dchq.io 3
4. The Evolution
■ Today’s Systems are bigger than ever before.
■ There was a huge evolution from standalone applications running on
physical infrastructure to SOA, Cloud Computing and Microservices.
DEV Box
Cloud Computing
QA Env
Data Center
Management
DR
Production
Web services
Analytics
Big Data
Queues
Automations
Caching
Load Balancers
Virtual Machines Web APIs
Micro Services
www.dchq.io 4
5. The Evolution
Few months back NGINX conducted a survey on the
“current state of application development and
deployment and where it’s likely to go in the future”.
■ More than 1800 users (DEV, Architects, DevOPs, CTOs etc.) participated in
the survey.
■ Here are the results
www.dchq.io 6
12. Infrastructure related Challenges
■ The Challenges related to infrastructure
– Infrastructure Procurement, Provisioning, Configuration
– Infrastructure Maintenance, Upgrade
– Capacity Planning for Business Continuity
– Disaster Recovery
www.dchq.io 13
13. What is Virtualization?
■ Virtualization is an abstraction layer that decouples the physical
hardware from the operating system to deliver greater IT resource
utilization and flexibility.
• It allows you to:
- Consolidate workloads to
reduce hardware, power,
and space requirements.
- Run multiple Operating
Systems simultaneously
on the same hardware
www.dchq.io 14
14. Types of Virtualization
Type1 / Bare Metal / Native
Hypervisor
■ Run directly on the
hardware. A guest
OS runs on the
hypervisor.
Type2 / Hosted Hypervisor
■ Runs on OS. Guest
OS runs on the
hypervisor.
www.dchq.io 15
15. Virtualization use cases
According to a CIO research these are the top reasons to virtualize severs.
Cut costs via server consolidation 81%
Improve disaster recovery and backup plans 63%
Provision computing resources to end users more quickly 55%
Offer more flexibility to the business 53%
Provide competitive advantage 13%
www.dchq.io 16
16. Application Delivery Challenges
■ Application behavior changes when moved form one ENV to other due to
– Multiple Configurations
– Library versions
– Different underlying components
– Etc.,
• VMs can solve the problems to some extent but
• VMs bundle the entire image along with OS
• Very large in size ( tens of GBs)
• Slow to move around
• And not just the software,
• The network topology
• Security policies
• Storage etc.,
Might be different where the software has to run
What is Application Delivery? Shipping the Code
How are Physical Products Shipped? In Containers
www.dchq.io 17
17. What are Containers?
■ Containers are a solution to the problem of how to get software to run reliably
when moved from one computing environment to another.
■ This could be from a DEV Box to QA, from a Staging to PROD and perhaps from a
physical machine in a data center to a virtual machine in a private or public cloud.
APP Lib Bin Conf+ + +
Container
+ …
• A container consists of an entire runtime environment:
• an application, plus
• all its dependencies,
• Libraries,
• binaries, and
• configuration files
needed to run it, bundled into one package.
www.dchq.io 18
18. Are Containers different from Virtualization?
■ Containers and virtual machines have similar resource isolation and allocation benefits --
but a different architectural approach allows containers to be more portable and efficient.
■ VM hypervisors are "based on emulating virtual hardware. That means they’re fat in terms
of system requirements.“
■ Containers, however, use shared operating systems. That means they are much more
efficient than hypervisors in system resource terms.
• Instead of virtualizing
hardware, containers
rest on top of a single
OS instance.
www.dchq.io 19
19. Why Containers?
■ By containerizing the application platform and its dependencies,
differences in OS distributions and underlying infrastructure are
abstracted away.
■ Containers gives you instant application portability.
■ Developers can use Docker to pack, ship, and run any application
as a lightweight, portable, self sufficient LXC container that can
run virtually anywhere
www.dchq.io 20
20. Why Containers?
■ It makes it possible to get far more apps running on the same old
servers and it also makes it very easy to package and ship programs.
■ This in turn means you can “leave behind the useless 99.9% VM junk,
leaving you with a small, neat capsule containing your application”
■ Can save a data center or cloud provider tens-of-millions of dollars
annually in power and hardware costs.
www.dchq.io 21
21. Docker
■ Companies are adopting Docker at a remarkable rate.
■ Docker containers wrap a piece of software in a complete filesystem
that contains everything needed to run: code, runtime, system tools,
system libraries – anything that can be installed on a server. This
guarantees that the software will always run the same, regardless of
its environment.
www.dchq.io 22
23. Why Docker?
■ 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.
■ In a nutshell, here's what Docker can do for you
– It can get more applications running on the same hardware than
other technologies
– It makes it easy for developers to quickly create, ready-to-
run containerized applications
– And it makes managing and deploying applications much easier.
www.dchq.io 24
24. Why only Docker?
■ Docker has become synonymous with containers, but it's not the only provider.
■ Even before Docker there were Linux-based Docker containers, Solaris Zones, or
FreeBSD Jails, but their uptake was limited by the fact that comparatively few
companies use Solaris and FreeBSD operating systems.
■ When Google and the Linux Control Groups successfully got container functionality
included in the Linux kernel, containers were instantly within reach of every business
and government data center.
■ Developers understood that containers would be much more useful and portable if
there was one way of creating them and moving them around, instead of having a
proliferation of container formatting engines. About the same time, Docker came along
as a company.
www.dchq.io 25
25. Some Advanced Tools
■ With the new Application Packaging and Delivery approach a lot of
new tools are coming up in the market adopting this. For Example
■ Kubernetes
– Open source container cluster manager originally designed by Google
■ DCHQ ( Now HyperForm )
– The leading enterprise Docker management solution focusing on enterprise
application modeling, deployment, service discovery and lifecycle
management.
■ Mesosphere
– Container and Data Services Management tool
www.dchq.io 26
27. Demo with DCHQ
www.dchq.io
■ A simple Pizza Shop Java application.
■ Deploy this 3-Tier Docker Java Application on Nginx, Tomcat Application Server and
MySQL. Once the application is deployed, get access to monitoring, alerts and
notifications, continuous delivery using Jenkins, application backups, scale in/out,
in-browser terminal to access the containers, log viewing, and container updates
using custom plug-ins.
■ Load Balancer : NGINX
■ App Server : Tomcat
■ Database : My SQL
www.dchq.io 28
Containers are the hottest trend in data center innovation
A Physical Transport Analogy
Common issues: Worked in DEV / TEST but failed in PROD
You're going to test using Python 2.7, and then it's going to run on Python 3 in production and something weird will happen
you'll rely on the behavior of a certain version of an SSL library and another one will be installed.
You'll run your tests on Debian and production is on Red Hat and all sorts of weird things happen