Containers are a hot ticket in 2016, and everyone seems to want to throw around the Cloud Native Application buzzword in relation to them. But despite a common perception, those two technologies are not joined at the hip! In this talk we'll distinctly cover what makes an application Cloud Native and talk about building applications with containers.
There are new applications but there are also old applications that could be operated in new ways
Getting agility includes thinking about new strategies for operating applications
Micro-services and automation are a target for everyone
Incremental approaches to getting there
Leveraging open source infrastructure for these cases
Flexibility and Freedom
Innovation
Integration
Containers are not cloud native, but are independent and even complimentary to cloud-native
Talk about this to help move towards a strategy to embrace containers
Our bottom up approach to supporting applications doesn’t work moving forwards
What are you hearing more about nowadays?
Containers and makes sense since it’s a new way of operating things
Less reliance on virtualization layers for availability
Efficiency of hypervisor isn’t driving more workloads and use cases
People are interested less in clouds
Talking to developers in your org about infra and cloud goes nowhere
Workloads have been tested in clouds, and some have moved that way
Recognized that predictable workloads can be better served in private clouds
Back to private cloud virtualization layers or IaaS?
Has to be a new layer of abstraction above the infra but mindful of infra
For customers that haven’t gotten to cloud yet, see an opportunity to enable portability to get there and back
Innovation is happening at higher layers, top down approaches for the applications versus bottom up
Real tangible benefits to operating old and new stuff in new ways
New applications can’t be operated as monolithic applications
Types of applications
Could be monolithic or new micro-service based scale-out applications
Could be custom, OSS projects, or even purchased applications
Choices and opportunities
Support developers of apps in better ways
Old and new applications in better ways
Integrating platform and lifecycle capabilities to the applications
Micro-service focused platforms that help operate applications
What is platform 2 and platform 3?
Need to take a serious look at containers and cloud native applications
Think about about the platform is supporting
Are applications in containers considered platform 3?
Can cloud native applications be platform 2?
We are seeing three general types of application platforms emerge
Custom container platforms have been the most popular for early adopters
Here any combination of platform components have been used
Take anything off the shelf and “roll your own”
Enables ultimate flexibility
Container platforms tend to be where the attention is in the Enterprise
Supported as a pre-defined stack
Some parts can be replaced
Cloud-native platform is completely packaged and moves forward as major releases
Most important thing is that we must consider operating in new ways
Must support the agility of new applications
Open source infrastructure
Flexibility and freedom
Integration
innovation
Here we flip the model upside down
Integration taking place through code taking advantage of open source
Infrastructure operated as software then is consumed by applications and consumes dependent layers of infrastructure
Application platform handles infrastructure
Enabling infrastructure as code is key
Cloud native platforms like Cloud Foundry
Container platforms like Docker, Mesosphere, and Kubernetes
Containers can be used for both and are key to delivering a layer that promotes portability and abstraction from infrastructure
Deliver a necessary abstraction to the operating system for delivering applications
Whether it’s a container or cloud-native platform they are both driving at similar goals
Tend to enable said things
Tend to differ in their requirements on the applications
Cloud native platforms
Tend to be more strict
If you meet certain requirements the applications are compatible and can be operated in new ways
Applications in containers
Containers can work with any application
Tend to be complmentary to
Option 1
Re-write your application to be 12 factor
Split front end, middleware, backend
Backend data services get sent to shared service
But what operates the shared service??
Option 2
Leverage containers
Move them into containers, or rewrite
Leverage a container platform for operating
Option 3
- Build your cloud native application and then lerverage container platform to house the data services
Rationalizing your applications is important
Cloud native is fine for applications on top
Doesn’t work for applications on bottom
So we we end up with an application that spans both
So we we end up with an application that spans both
We are EMCII so let’s drill further into data services in containers
The data for your applications needs to live somewhere. Wouldn’t it be ideal if the management of your micro-service application was done by the same platform?
Managing the persistence of your micro-service application would look like this.
In platform 2
Virtual machine infrastructure would provide availability to my monolithic application
Moving towards platform 3
Lifecycle is handled by platform with the application
Availability enabled through the container platform
Scale-out applications work here to provide availability themselves
This what a persistent application in a container separate from a cloud-native or micro-service application really looks like.