Learn about the cloud native application maturity model, and how to evolve to microservices style applications deployed in containers, across public and private clouds.
2. 11/6/2015 Multi-cloud Microservices, DevOps Summit 2015 Nirmata
Greater Cloud Adoption Leads to
Millions of $$ in Benefits
Source: IDC Business Cloud Advisor, Info Brief, Aug 2015
3. 11/6/2015 Multi-cloud Microservices, DevOps Summit 2015 Nirmata
Cloud Application Maturity Model
You are
here
ODCA Best Practices: Architecting Cloud-Aware Applications Rev. 1.0
7. 11/6/2015 Multi-cloud Microservices, DevOps Summit 2015 Nirmata
CAMM Level 0: Virtualized
• Monoliths in VMs
o Application runs on virtual infrastructure
o Application can be deployed using an image or script
• Dev QA Ops
OS
App
VM
OS
App
VM
OS
App
VM
9. CAMM Level 1: Loosely Coupled
• Application is composed of loosely coupled services
• Application services are discoverable by name
• Application compute and storage are separated
• Application consumes one or more cloud services
(compute, network, storage)
ODCA Best Practices: Architecting Cloud-Aware Applications Rev. 1.0
11/6/2015 Multi-cloud Microservices, DevOps Summit 2015
10. 11/6/2015 Multi-cloud Microservices, DevOps Summit 2015 Nirmata
“Coupling refers to the degree of direct knowledge
that one component has of another”
great interfaces are minimal but complete!
11. Decoupling from Networks
Service Naming, Registration, and Discovery
11/6/2015 Multi-cloud Microservices, DevOps Summit 2015 Nirmata
e.g. Eureka, Consul, Nirmata, Zookeeper
• Each Service Instance
registers its availability
• Other services can resolve
a well known name to a
Service Instance locations
connect with me at:
orders.shopping.com
192.168.100.23:9065
192.168.111.12:9121
192.168.213.121:8131192.168.121:6425
12. Decoupling from Storage
• Data Services
• Inject (or lookup) data service addresses
• Application Configuration
• Environment variables
• INI files
• Application Logs
• Logging service
• Logs as streams - collectors and aggregators
11/6/2015 Multi-cloud Microservices, DevOps Summit 2015 Nirmata
13. Decoupling a Monolith
11/6/2015 Multi-cloud Microservices, DevOps Summit 2015 Nirmata
Module A Module B
Web
Service A Service B
Web
DB DB DB
14. Steps for Level 1
1. Decouple application components from networks
2. Decouple application components from storage
3. Decouple application modules into services
(Optional)
11/6/2015 Multi-cloud Microservices, DevOps Summit 2015 Nirmata
16. CAMM Level 2: Abstracted
1. Services are stateless
2. Application is unaware and unaffected by failure
of dependent services
3. Application is infrastructure agnostic and can run
anywhere
11/6/2015 Multi-cloud Microservices, DevOps Summit 2015
ODCA Best Practices: Architecting Cloud-Aware Applications Rev. 1.0
17. Steps for Level 2
1. Containerize the application
2. Evolve to Microservices
11/6/2015 Multi-cloud Microservices, DevOps Summit 2015 Nirmata
18. 11/6/2015 Multi-cloud Microservices, DevOps Summit 2015 Nirmata
Containers are a key building block
Immutable application images
Standard units of operations
Separation of DevOps concerns
19. 11/6/2015 Multi-cloud Microservices, DevOps Summit 2015 Nirmata
Server
Hypervisor
Virtual Machine Containers
Guest OS
Libs/Bins
App
Libs / Bins
App App
Libs / Bins
App
Guest OS
Libs/Bins
App
Server
Host OS
Docker / RunC / Rocket
21. 11/6/2015 Multi-cloud Microservices, DevOps Summit 2015 Nirmata
https://docs.docker.com/v1.7/terms/images
• Common image layers can be shared
• Only deltas need to be pulled / updated
Container Image Layers
22. Steps for Level 2
1. Containerize the application
2. Evolve to Microservices
11/6/2015 Multi-cloud Microservices, DevOps Summit 2015 Nirmata
23. 11/6/2015 Multi-cloud Microservices, DevOps Summit 2015 Nirmata
An initial motivation for
Microservices was scalability
* The Art of Scalability; AKF Scale Cube
30. 11/6/2015 Multi-cloud Microservices, DevOps Summit 2015 Nirmata
1. Elastic
scales up or down independently of other services
2. Resilient
services provide fault isolation boundaries
3. Composable
uniform APIs are used for each service
4. Minimal
highly cohesive set of entities
5. Complete
loosely coupled with other services
A Microservices application is composed of several
cooperating but independent services. Each Service is:
32. CAMM Level 3: Adaptive
1. Application can dynamically migrate across
infrastructure providers without interruption of
services
2. Application can elastically scale out/in
appropriately based on stimuli
ODCA Best Practices: Architecting Cloud-Aware Applications Rev. 1.0
34. Application Management
• Is my application management coupled to a cloud
provider?
• Is my application management cloud-native?
• What is the right architecture for application
management?
11/6/2015 Multi-cloud Microservices, DevOps Summit 2015 Nirmata
35. 11/6/2015 Multi-cloud Microservices, DevOps Summit 2015 Nirmata
IaaS
PaaS
SaaS
The NIST definition of Cloud Computing
Special Publication 800-145
36. 11/6/2015 Multi-cloud Microservices, DevOps Summit 2015 Nirmata
IaaS
PaaS
SaaS
“The popular wisdom that cloud computing comes in three
flavors - SaaS, IaaS and PaaS no longer describes reality,”
-- Forrester Wave
37. 11/6/2015 Multi-cloud Microservices, DevOps Summit 2015 Nirmata
Application
Services
Infrastructure
Services
Cloud Native Applications
• Composable Services
• Complement, not hide, infrastructure services
• Offer full visibility and control
Application (management) Services
38. 11/6/2015 Multi-cloud Microservices, DevOps Summit 2015 Nirmata
deploy operate optimize
Complete application container lifecycle management
Single management and control plane across any cloud
Highly scalable cloud-native service
The Nirmata Approach
39. 11/6/2015 Multi-cloud Microservices, DevOps Summit 2015 Nirmata
Policy Based
Orchestration
Real time
Analytics
Application
Blueprints
DevOps
Pipeline
Nirmata Control Plane
Host
Agent
The Nirmata Solution
Service
DB
Service
Gateway
Data Plane:
• Secure agents
• Seamless Service Discovery
• Distributed Load-balancing
• Programmable routing
Host (or VM)
DNS / LB
40. Steps for Level 3
1. Automate application and infrastructure management
Automated deployment, auto-recovery, auto-scalability, etc.
2. Deploy and operate on any cloud
3. (Optional) Plan for active-active cloud deployments
11/6/2015 Multi-cloud Microservices, DevOps Summit 2015 Nirmata
43. Cloud Native Test
Level 0: Virtualized
Can you redeploy your entire application in minutes?
Level 1: Loosely Coupled
Is your application decoupled from specific IP
addresses, ports, file systems and paths?
Can your application survive, and auto-recover from,
infrastructure (compute, network, storage) failures?
11/6/2015 Multi-cloud Microservices, DevOps Summit 2015 Nirmata
44. Cloud Native Test
Can you upgrade and downgrade, your application
(or parts of the application) without any impact to
users?
Can you run multiple versions of your application
services, in the same environment at the same time?
Can you safely test in production?
If a part of an application fails, will other parts
continue to operate?
11/6/2015 Multi-cloud Microservices, DevOps Summit 2015 Nirmata
Level 2: Abstracted
45. Cloud Native Test
Can parts of your application scale-up and scale-
down automatically, based on user load or other
factors?
Can you deploy application components across
cloud providers?
Can you deploy an application component on a
different cloud provider?
11/6/2015 Multi-cloud Microservices, DevOps Summit 2015 Nirmata
Level 3: Adaptive
47. Summary
1. Cloud adoption results in cost
savings and agility
2. Containers and Microservices are
key technologies for cloud-native
applications
3. Application services, like Nirmata,
will expedite your journey
11/6/2015 Multi-cloud Microservices, DevOps Summit 2015 Nirmata
48. Start your journey to Multi-cloud Microservices at:
http://try.nirmata.io
11/6/2015 Multi-cloud Microservices, DevOps Summit 2015
Thank you!