Achieving Cost and Resource Efficiency through Docker, OpenShift and Kubernetes
1. 1
Achieving Cost and Resource efficiency
through Docker, Kubernetes and OpenShift
V1.0
Presented by Dean Delamont
12th July 2015
Part of a series of presentations on achieving cost and resource efficiency in our OpenStack and Cloud Deployments – please contact me if
interested in learning about other areas how to reduce our costs in deploying our solutions in the cloud.
2. 1. Context
2. Problem Statement
3. Evolving Cloud IaaS – Public, Private and Hybrid
4. Understanding the business needs and promises of
OpenStack
5. Commercial/Business Challenges for Cloud
6. The Problem Visualized (from a business perspective)
7. The Solution – How to achieve better business outcomes –
reduce cost, reduced time to market etc. through micro
services based architectures
8. Summary of benefits
9. Closing thoughts
10. Open Q&A
Agenda
Copyright 2015 –
Presented by Dean Delamont - 12th July 2015
3. One of biggest challenges to organizations is how to leverage their Openstack
infrastructure in a cost effective way to deploy their solutions.
With all our solutions in most businesses we all face the same problem of scale
and cost as our solutions grow with complexity and as a result of the growing
complexity of OpenStack where today the two are tightly coupled.
In this presentation we explore how containerisation and micro services
technologies like Docker, Kubernetes and OpenShift can help organizations to
obtain:
Cost savings;
Resource Efficiency
Reduced complexity
Accelerate Time to market
Greater portability
Context
Copyright 2015 –
Presented by Dean Delamont - 12th July 2015
4. Today when deploying on Openstack typically we deploy our applications in VMs
for which there is a high cost associated with this:
Where inherently every VM Guest is large in size compared to containers for which this has a
cost to our business.
Every VM Guest requires us to install a host O/S – i.e. CENT O/S, Ubuntu – that uses further
system resources adding further costs to our solutions.
Within every VM Guest there is a varying degree of over allocation of resources/under
utilization of resources which in a SaaS/Host model environment you pay for per the hour for
resources you don’t even use!
Whether our applications are master or slave instances we pay the same costs where for every
application we pay double the costs of the system resources needed whether or not we need
both instances are running, all just in case a component fails. Whereas in a containerisation
architecture this inherently has HA where you can spawn instances in seconds that only use the
system resources when they are active or master. Anything stateless that is non-active, passive
or slave therefore need not consume any resources.
This problem is magnified by significant factor where systems can have anything between 70 VM
Guests to 1,000 VM Guests costing anything between $100,000 to even potentially $0.5m-$1m
in unused resources per customer at a cost to a business!
As a business this is unsustainable and this erodes our profit margins as such there is a strong
business case as to why we should containerisation in our solutions.
Problem 1:
Copyright 2015 –
Presented by Dean Delamont - 12th July 2015
8. 8
The Business Promise of OpenStack
Understanding the business context & why we need to change our approach to how we
develop and deploy our solutions in the cloud if our business is to succeed.
V1.0
Presented by Dean Delamont
12th July 2015
9. The promise of OpenStack to businesses – “The promise of gold
and prosperity at the end of mountain with more customers, revenue
and profits”
At its core foundation OpenStack promises to provide:
1. A state of the art cloud platform built on open standards
2. A framework for controlling the compute, storage, and
networking resources necessary to support a large
cloud-focused data center.
3. Lower Costs - An open source, scalable, portable and
free or low cost way to deploy and build private and
public clouds. Promises to lower the costs of building
private clouds.
1. Greater Developer Agility - faster means to deploy your
solutions in private clouds through improved developer
agility and productivity
- Profits
- Reduced
Time to market
- Greater
product
velocity
Copyright 2015 –
Presented by Dean Delamont - 12th July 2015
10. Note this is a not everything!
See: https://www.openstack.org/marketplace/drivers/
The realities of using OpenStack where complexity and
approach to virtualisation = increased resource usage &
costs
C
O
S
T
11. Application
Layer
IaaS
Layer
Apps
Virtualisation
Layer
Physical LayerHW
Layer
£ $
Profit/R
evenue
Resource usage
overhead, Higher CAPEX
& OPEX
Cost / Delayed Time to
Market / Drain on Resource /
Reduced “Agility” / Lock-in
to one Cloud IaaS
Marginal
Revenues
Horizon
Dashboard
VM
Heat NOVA
KeystoneCinder Neutron Glance
OBSERVE
VM
OpenStack
Guest O/S
The business problem (Visualised)
The potential impact of using directly Virtualisation in OpenStack
Copyright 2015 –
Presented by Dean Delamont - 12th July 2015
12. Commercial/Business Challenges for Cloud – Questions we should perhaps be askin
1. How do I ensure I remain competitive in a world that is changing at such a rate?. How can I
get ahead of the ahead of the herd?
1. How do I ensure my solutions give the commercial benefits expected by my customers in
terms of reduced OPEX, CAPEX.
1. How can we achieve greater automation where automation is key to achieving “agility” the
cloud, implemented on a well designed system and you have success, implemented on a poorly
designed system that has not considered the wider aspects and you have a magnification of costs.
1. Quote "The first rule of any technology used in a business is that automation applied to an efficient
operation will magnify the efficiency. The second is that automation applied to an inefficient
operation will magnify the inefficiency.
- Bill Gates
- Example: CI/CD will either magnify your inefficiencies or result in an improvement in quality
2. How can I leverage new cloud technologies like Openstack to achieve “agility” without
burdening the costs and soaking up our resources taking critical resources away from
working on our apps.
3. How do I ensure my business costs don’t spiral out of control as a result of the adoption of
new technologies in your systems - where my solutions resource usage and need for data
increases rapidly from Gigabytes to Exabytes or one billion gigabytes where in cloud hosting model
I may pay by the hour per byte! – Example monitoring could take 150TB, which your business may or may
not have anticipated, either way this type of issue is often systemic and can negatively impacts a businesses
operating margins as such controlling your costs in the cloud should be any businesses priority.
Copyright 2015 –
Presented by Dean Delamont - 12th July 2015
13. • Greater customer uptake – through reduce barrier to entry/costs?
• Increased agility and velocity – Resulting in increased velocity in our
product developments through spending more time coding our apps and
driving up profit?
• Increased Profitability - through reductions in your CAPEX and OPEX
gained though optimization and economies of scale? Repeatable success
in the ease and speed in which you can deliver your solutions?
What do you want to achieve as a business from a cloud SaaS offering?
Copyright 2015 –
Presented by Dean Delamont - 12th July 2015
14. A key point to note is that our Developers want a reproducible environment that
they can deploy on in a repeatable and reliable manor, but where we deliver today
our applications in a VM image there is no separation between the underlying
infrastructure and our applications where we are reliant on the Openstack Services as
such deploying to cloud is both time consuming and expensive on OpenStack evident by
the number of man years investment we are making on developing our solutions to work
on Openstack.
Truth be told an application developer doesn't care for the infrastructure, this is a hindrance, cost,
burden to them. What they want is to deliver SW in a way that they can control the E2E environment
where the results from their development testing is repeatable in which we are not impacted by
changes to the infrastructure layer.
Here in this presentation we only talk about the cost savings from a resource perspective through our
solutions adopting a containerisation and Microservices architecture, however to be very clear there is
also a significant saving to our business in cost of developing our solutions for the cloud that this
approach would also provide in which technologies like OpenSwift, Docker and Kubernetes could
enable us to deploy on any OpenStack IaaS or Private/Public Cloud infrastructure where we achieve a
cloud agnostic solution at the same time in which our solutions become self contained.
This has far reaching business implications to businesses in the reduction of costs to deploy and
support our solutions in the cloud where it is possible to gain cost efficiencies in OPEX, internal
CAPEX,
According to a survey by ZDNet9, respondents stated they saw benefits from the ability to deploy
applications faster (54 percent); reduced effort to deploy applications (40 percent); streamlined
development and testing (38 percent); reduced application deployment costs (31 percent); and
server consolidation (25 percent).
The developer needs
Copyright 2015 –
Presented by Dean Delamont - 12th July 2015
15. 15
The solution – “Finding the silver lining in the
cloud”
Presented by Dean Delamont
12th July 2015
A business first lead initiative
18. Provides logical separation of the cloud IaaS and Application Layer:
Infrastructure Layer
(Network, Compute, Storage, etc.)
Application Layer
(Solutions – Apps)
Increased portability
“Abstraction Layer”
Acceleration of Development
Docker Engine
O/S - Kernal
Copyright 2015 –
Presented by Dean Delamont - 12th July 2015
19. Linux container engine
Advantages over pure VM
Size
Performance
Portability
Application-centric
LXC
Containers are isolated, but share OS and bins/libs – Docker Engine
It’s purpose is to package, instantiate, and run containerized
applications.
Introduction to Docker
Copyright 2015 –
Presented by Dean Delamont - 12th July 2015
20. Use Kubernetes, in Mantl
Kubernetes is an open-source platform for automating deployment,
scaling, and operations of application containers across clusters of
hosts.
With Kubernetes, you are able to quickly and efficiently respond to
customer demand:
Scale your applications on the fly.
Seamlessly roll out new features.
Optimize use of your hardware by using only the resources you need.
Kubernetes is:
Lean: lightweight, simple, accessible
Portable: public, private, hybrid, multi-cloud
Extensible: modular, pluggable, simple to use
Self-healing: auto-placement, auto-restart, auto-replication
Container Orchestration
Copyright 2015 –
Presented by Dean Delamont - 12th July 2015
21. OpenShift and Docker Architecture
Key Features
• Kubernetes code in
single
parameterizable OS
templates
• Persistent Volume
management
• UI for admin tasks
and visualisations
• OpenSource
• OpenShift
Origin in
GitHub
Copyright 2015 –
Presented by Dean Delamont - 12th July 2015
22. Benefits of change in approach to your development teams
1. Development savings from using Docker:
• Don’t have to ship whole VM
• Don’t need to maintain metadata on VM
• Pre-integrated - frees the developer from worrying about the IaaS
• Shipped image in self contained container in a pre-described manor
where you can spawn instances or instantly replicate your entire
solution and E2E environment in a repeatable and reliable way on
any IaaS and/or OpenStack cloud infrastructure.
1. Reduced complexity through the use of Kubenetes and OpenShift:
• You can quickly schedule your containers to be spawned where master
does scheduling
• Minions run containers
• Proxy Service - allows to people see services externally,
• POD collection of containers running on Minion that all share the same
network / single network name space
Copyright 2015 –
Presented by Dean Delamont - 12th July 2015
23. The wider organisational – the real business benefits
1. Accelerated product development, with the ability to deploy applications faster
2. Reduction in CAPEX – through consolidation of applications and the deployment of light
weight containers as opposed to high resource consuming VMs.
3. HA without the costs of paying for resources not used. A secondary benefit is a
significant reduction in costs where you only need half of the compute resources that we
use presently for everything that is is stateless.
4. Reduced effort – where developers can reproducible environment that they can deploy
on in a repeatable and reliable manor, as well as accelerating product roadmaps and
time to market.
5. Reduced integration issues and complexity where our solutions are self-contained
6. Greater Economies of Scale – where containers are small and launch much more
quickly than their virtual counter parts, clusters can be scaled up and/or down in more
cost efficient ways, simply by running or stopping additional containers so that you only
consume the resources you need to meet say increased end user demand for your
services. In a rented cloud hosting model, this is a saving to your business per hour!
Copyright 2015 –
Presented by Dean Delamont - 12th July 2015
24. • Provides Cloud Mobility - where an application with essentially its own mini
OS system “Container”, that contains a complete file system, system
libraries and everything you need to run your application regardless of the
underlying environment of the host server.
• Provides increased agility – Resulting in increased velocity in our product
developments through spending more time coding our apps and less time
worrying about OpenStack or underlying IaaS.
• Provides efficiency in lowering resource costs – Resulting in reduced
CAPEX and OPEX through smaller footprints – less hardware needed
through an optimised environment
• Provides increased profit margins – Through simplification of the
integration of solutions on different Cloud Infrastructures where our costs
go down as a result and margins go up.
Docker / Containers - What does it mean for my business?
Copyright 2015 –
Presented by Dean Delamont - 12th July 2015
25. Closing thoughts
What does our organisations need and relevancy for the need for a
separation of concerns:
Developers want a simple way to deploy our solutions on a reproducible environment
where we are not constrained or impacted by changes to the underlying Infrastructure i.e.
changes to Keystone, Nova, Glance on OpenStack.
Our development teams want a descriptive way in which they deploy our solutions in a
repeatable manner without lots of code re-writes or integration issues because of
changes to the Infrastructure.
For any organization that sells software solutions not Infrastructure, we need a means to
have a separation between the OpenStack IaaS and Host O/S where we can free up our
resources by removing the considerable effort needed today when working with
Openstack. Thereby allowing our efforts to be more focused as a result on getting our
applications out the door quicker to customers, resulting in increased productivity and
velocity.
For most business there is a need to lower the TCO for their solutions to improve their
operating margins and EBITDA, where specifically we need to reduce our OPEX and
CAPEX costs if we are to remain competitive. To do this we need make a separation
between the Infrastructure layer an our applications.
Copyright 2015 –
Presented by Dean Delamont - 12th July 2015
26. 26
Thanks for listening!
Achieving Cost and Resource efficiency
through Docker and Kubernetes (OpenShift)
V1.0
Presented by Dean Delamont
12th July 2015
Part of a series of presentations on achieving cost and resource efficiency in our OpenStack
and Cloud Deployments – please contact Dean Delamont for more information
Editor's Notes
These are just some of the factors that impact the cost out of many associated with our current approach to OpenStack and our solutions today.
The problem of tightly knitted solutions where you have many co-dependencies resulting from your own monolithic systems and also resulting from the direct use of OpenSource SW such as OpenStack. The impact of this is increased costs, slower time to market, increased complexity and risks in meeting your committed schedules and/or product roadmaps. This is why it is important to design in portability for which later we will discuss how containerisation through Docker, Kubernetes and OpenShift can help vs. virtualisation approaches using directly the OpenStack services.
The public cloud is defined as a multi-tenant environment, where you buy a “server slice” in a cloud computing environment that is shared with a number of other clients or tenants.
The Private Cloud is an on demand configurable pool of shared computing resources allocated within a public cloud environment built on a virtualized infrastructure such as OpenStack, used providing a certain services – in our case broadcast and interactive apps.
The Hybrid Cloud is a composition of two or more clouds (private, community or public) where applications may be interfacing across different IaaS and APIs where you may have an application that is running in OpenStack which interfaces with another application running in a separate Cloud such as AWS. There could be many real use case examples where your solution could be required to support this.
You’ll note here the number of Private Clouds and that OpenStack of which we operate only within a small number of distros today only represents 12-13% of the overall Private Cloud market, or to put it another way over 85% of businesses are choosing not to deploy on OpenStack for their private cloud which is a trend that is continuing where we see greater growth in other Cloud implementations. This is just food for thought.
Before you ask what about going forward in 2018 - 2020!:
Morgan Stanley predicts Microsoft cloud products will be 30% of revenue by 2018 in the Private Cloud space. A major proportion of the market share compared to OpenStack and VMWare.
Worldwide spending on public cloud services will grow at a 19.4% CAGR from $70B in 2015 to $141B in 2019. Forbes Weekly Business Insider.
To-date, OpenStack is the most successfully organized effort to build an open source software infrastructure for cloud computing. The broader promise of OpenStack is compelling, and the progress to-date is impressive given the ambition of the project in terms of the number of contributors to the project. Also some of the work being done is highly innovative and really pushing the boundaries of cloud.
However that’s not enough as a business for us to have sustainable business built on Cloud.
Looking at the OpenStack Architecture - what comes to mind when you see this?
The reality and the promise though of its aims are very different seen in practice where its seen that:
Yes it provides a open standard to a varying degree but there is still vendor lock-in, so its not truly open source.
Yes it provides a comprehensive framework for managing and controlling the compute, storage, and networking resources but the complexity is vastly over complex at a steep cost to many organisations wanting to deploy their solutions in a private cloud.
Lower Costs –
Yes it can lower your costs when consolidating large systems where you have multi-tenancy, but for some smaller or mid range systems in which we don’t support multi-tenancy today where the cost of the infrastructure is high and where we have virtualisation we see the cost to deploy on Openstack as a multiple of the cost of going bare metal. OpenStack recognised themselves their own failings in achieving this hence why notably one the new features is Ironic, the first OpenStack integrated component for provisioning OpenStack on bare metal machines, rather than in virtual environments. In addition OpenStack has extended its SW stack and API framework to support Kubernetes and Docker for the same reasons.
Great Agility
it doesn’t really achieve due to the complexity of OpenStack – where considerable man years of effort is needed to reach the business benefits and promise of openstack that is of a significant cost to the organisation. Again Openstack recognizes this which is why they are embracing Containerisation and Micro services
Also we see in our developments of our solutions where we are spinning up lots of complex deployments with lots of services and clients all interconnected such as the use of mySQL databases, use of Openstack APIs, third party SW, block storage etc. The complexity is not only magnifying our costs but slowing down our agility to execute on OpenStack, where we have to build a complete framework in our development, test and production environments every time there is a change to our SW or OpenStack itself, requiring to re-deploy all these services on OpenStack again that quite literally killing our development teams causing significant delays in our product roadmaps. To understand this you must understand the developers mindset (see next slide)
The reality therefore is that executing efficiently our development environments and achieving the goal of lowering costs is extremely difficult to achieve, where in practice our costs are being magnified. Also remember in the previous slide we spoke about the cost of virtualization, this in reality is also killing any chance we have to gain cost savings and worse is magnifying our costs where VMs a relatively high resource usage compared to lightweight containers or bare metal. In part this struggle with the cost of our solutions is due to the complexity of OpenStack and where this is changing in its own development this has an continuing impact on our development teams. The other part is due to our own approach to OpenStack and Cloud Infrastructures in general in which the following slides shall discuss an alternative approach.
Please do not misinterpret the message here it would be a mistake to ignore OpenStack today or to think what I am proposing is a replacement for OpenStack as it’s not! At the same time we need to protect our businesses interests by better leveraging the benefits of OpenStack without the costs associated. Which is what will talk about shortly how we can achieve this.
The rest of the presentation shall now focus on achieving lower costs. For more information on how to improve agility see presentations on how to achieve automation in the cloud.
To much focus on IaaS. Heat a lot of issues to do with configuration management which is very complex, whereas with Kubuntes just simplifies the whole thing. See: http://kubernetes.io
Above is just a sample of some of the issues that your business maybe dealing with in trying to port its solutions to the cloud. It’s a very long list of items that impact your businesses success. Some we have the ability to each influence, others we don’t have the ability to control such as in the use of open source SW for which this is potentially significantly impacting to the business if not controlled.
Here its important to understand the developer mindset and problem from their perspective.
Part of a series of presentations on achieving cost and resource efficiency in our OpenStack and Cloud Deployments – please contact Dean Delamont if interested in learning about other areas how to reduce our costs in deploying our solutions in the cloud.
Without being tied to specific Cloud Infrastructure APIs such the Heat API or other Cloud IaaS like AWS EC2 (Private or Public) this may allow you to port more easily our applications between different cloud implementations.
- Here development teams can use Kuberlet CTL commands to schedule the master that will then orchestrate the PODs and container services.
- Services allow you publish containers to outside world - proxy service
- PODs allow you define the deployment of containers.
Think of this as a separation of concern, remembering the triangle we showed earlier. What this gives us is more flexibility for swapping out one Infrastructure for another when they become end of life without the costs allowing us to innovate faster.
Part of a series of presentations – please contact me if interested in other areas how to reduce our costs in deploying our solutions in the cloud.