multi-cloud microservices - devops summit silicon valley 2015

48
Multi-Cloud Microservices Jim Bugwadia

Upload: jim-bugwadia

Post on 08-Apr-2017

979 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: Multi-Cloud Microservices - DevOps Summit Silicon Valley 2015

Multi-Cloud MicroservicesJim Bugwadia

Page 2: Multi-Cloud Microservices - DevOps Summit Silicon Valley 2015

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

Page 3: Multi-Cloud Microservices - DevOps Summit Silicon Valley 2015

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

Page 4: Multi-Cloud Microservices - DevOps Summit Silicon Valley 2015

11/6/2015 Multi-cloud Microservices, DevOps Summit 2015 Nirmata

Agenda

• Introduction

• CAMM Level 1: Loosely Coupled

• CAMM Level 2: Abstracted

• CAMM Level 3: Abstracted

• Summary

Page 5: Multi-Cloud Microservices - DevOps Summit Silicon Valley 2015

11/6/2015 Multi-cloud Microservices, DevOps Summit 2015 Nirmata

About me• Founder at Nirmata

• Software Developer (C++, Java, Javascript, Go)

• Large-scale distributed systems

Page 6: Multi-Cloud Microservices - DevOps Summit Silicon Valley 2015

11/6/2015 Multi-cloud Microservices, DevOps Summit 2015 Nirmata

Cloud native applications are crafted to run optimally on cloud infrastructure

Page 7: Multi-Cloud Microservices - DevOps Summit Silicon Valley 2015

11/6/2015 Multi-cloud Microservices, DevOps Summit 2015 Nirmata

CAMM Level 0: Virtualized

• Monoliths in VMs

o Application runs on virtual infrastructureo Application can be deployed using an image or script

• Dev QA Ops

OS

App

VM

OS

App

VM

OS

App

VM

Page 8: Multi-Cloud Microservices - DevOps Summit Silicon Valley 2015

11/6/2015 Multi-cloud Microservices, DevOps Summit 2015 Nirmata

Agenda

• Introduction

• CAMM Level 1: Loosely Coupled

• CAMM Level 2: Abstracted

• CAMM Level 3: Adaptive

• Summary

Page 9: Multi-Cloud Microservices - DevOps Summit Silicon Valley 2015

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

Page 10: Multi-Cloud Microservices - DevOps Summit Silicon Valley 2015

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!

Page 11: Multi-Cloud Microservices - DevOps Summit Silicon Valley 2015

Decoupling from NetworksService 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

Page 12: Multi-Cloud Microservices - DevOps Summit Silicon Valley 2015

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

Page 13: Multi-Cloud Microservices - DevOps Summit Silicon Valley 2015

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

Page 14: Multi-Cloud Microservices - DevOps Summit Silicon Valley 2015

Steps for Level 11. 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

Page 15: Multi-Cloud Microservices - DevOps Summit Silicon Valley 2015

11/6/2015 Multi-cloud Microservices, DevOps Summit 2015 Nirmata

Agenda

• Introduction

• CAMM Level 1: Loosely Coupled

• CAMM Level 2: Abstracted

• CAMM Level 3: Adaptive

• Summary

Page 16: Multi-Cloud Microservices - DevOps Summit Silicon Valley 2015

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

Page 17: Multi-Cloud Microservices - DevOps Summit Silicon Valley 2015

Steps for Level 2

1. Containerize the application

2. Evolve to Microservices

11/6/2015 Multi-cloud Microservices, DevOps Summit 2015 Nirmata

Page 18: Multi-Cloud Microservices - DevOps Summit Silicon Valley 2015

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

Page 19: Multi-Cloud Microservices - DevOps Summit Silicon Valley 2015

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

Page 20: Multi-Cloud Microservices - DevOps Summit Silicon Valley 2015

11/6/2015 Multi-cloud Microservices, DevOps Summit 2015 Nirmata

http://blog.octo.com/en/docker-registry-first-steps/

Container Lifecycle

Page 21: Multi-Cloud Microservices - DevOps Summit Silicon Valley 2015

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

Page 22: Multi-Cloud Microservices - DevOps Summit Silicon Valley 2015

Steps for Level 2

1. Containerize the application

2. Evolve to Microservices

11/6/2015 Multi-cloud Microservices, DevOps Summit 2015 Nirmata

Page 23: Multi-Cloud Microservices - DevOps Summit Silicon Valley 2015

11/6/2015 Multi-cloud Microservices, DevOps Summit 2015 Nirmata

An initial motivation for Microservices was scalability

* The Art of Scalability; AKF Scale Cube

Page 24: Multi-Cloud Microservices - DevOps Summit Silicon Valley 2015

11/6/2015 Multi-cloud Microservices, DevOps Summit 2015 Nirmata

X-Axis Scalingscale by replicating the entire application

Client Load Balancer Application

Application

Application

Page 25: Multi-Cloud Microservices - DevOps Summit Silicon Valley 2015

11/6/2015 Multi-cloud Microservices, DevOps Summit 2015 Nirmata

Y-Axis Scalingscale by splitting the application

Client Load BalancerCustomers

Service

Catalog Service

Orders Service

/catalog

/customers

/orders

Page 26: Multi-Cloud Microservices - DevOps Summit Silicon Valley 2015

11/6/2015 Multi-cloud Microservices, DevOps Summit 2015 Nirmata

Z-Axis Scaling

Client Load BalancerCatalog

Service 3

Catalog Service 1

Catalog Service 3

/catalog [A – I]

/catalog [J – R]

/catalog [S – Z]

scale by splitting the data

Page 27: Multi-Cloud Microservices - DevOps Summit Silicon Valley 2015

11/6/2015 Multi-cloud Microservices, DevOps Summit 2015 Nirmata

Microservices combines X-Y axis scalingscale by splitting the application & replicating services

Client Load BalancerCustomers

Service

Catalog Service

Orders Service

/catalog

/customers

/orders

Page 28: Multi-Cloud Microservices - DevOps Summit Silicon Valley 2015

11/6/2015 Multi-cloud Microservices, DevOps Summit 2015 Nirmata

Microservices combines X-Y axis scalingscale by splitting the application & replicating services

Client Load BalancerCustomers

Service

Catalog Service

Orders Service

/catalog

/customers

/orders

Best scalability

Best efficiency

Page 29: Multi-Cloud Microservices - DevOps Summit Silicon Valley 2015

11/6/2015 Multi-cloud Microservices, DevOps Summit 2015 Nirmata

Page 30: Multi-Cloud Microservices - DevOps Summit Silicon Valley 2015

11/6/2015 Multi-cloud Microservices, DevOps Summit 2015 Nirmata

1. Elasticscales up or down independently of other services

2. Resilientservices provide fault isolation boundaries

3. Composableuniform APIs are used for each service

4. Minimalhighly cohesive set of entities

5. Completeloosely coupled with other services

A Microservices application is composed of several cooperating but independent services. Each Service is:

Page 31: Multi-Cloud Microservices - DevOps Summit Silicon Valley 2015

11/6/2015 Multi-cloud Microservices, DevOps Summit 2015 Nirmata

Agenda

• Introduction

• CAMM Level 1: Loosely Coupled

• CAMM Level 2: Abstracted

• CAMM Level 3: Adaptive

• Summary

Page 32: Multi-Cloud Microservices - DevOps Summit Silicon Valley 2015

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

Page 33: Multi-Cloud Microservices - DevOps Summit Silicon Valley 2015

Why Enterprises choose Multiple Clouds?

1. Hybrid Cloud

2. Privacy and Data Locality

3. Avoid application lock-in

4. Resiliency and Availability

5. Flexibility

11/6/2015 Multi-cloud Microservices, DevOps Summit 2015 Nirmata

Page 34: Multi-Cloud Microservices - DevOps Summit Silicon Valley 2015

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

Page 35: Multi-Cloud Microservices - DevOps Summit Silicon Valley 2015

11/6/2015 Multi-cloud Microservices, DevOps Summit 2015 Nirmata

IaaS

PaaS

SaaS

The NIST definition of Cloud ComputingSpecial Publication 800-145

Page 36: Multi-Cloud Microservices - DevOps Summit Silicon Valley 2015

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

Page 37: Multi-Cloud Microservices - DevOps Summit Silicon Valley 2015

11/6/2015 Multi-cloud Microservices, DevOps Summit 2015 Nirmata

ApplicationServices

Infrastructure Services

Cloud Native Applications

• Composable Services

• Complement, not hide, infrastructure services

• Offer full visibility and control

Application (management) Services

Page 38: Multi-Cloud Microservices - DevOps Summit Silicon Valley 2015

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

Page 39: Multi-Cloud Microservices - DevOps Summit Silicon Valley 2015

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

Page 40: Multi-Cloud Microservices - DevOps Summit Silicon Valley 2015

Steps for Level 31. 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

Page 41: Multi-Cloud Microservices - DevOps Summit Silicon Valley 2015

Solution demos

11/6/2015 Multi-cloud Microservices, DevOps Summit 2015 Nirmata

http://youtube.com/nirmata

Page 42: Multi-Cloud Microservices - DevOps Summit Silicon Valley 2015

11/6/2015 Multi-cloud Microservices, DevOps Summit 2015 Nirmata

Agenda

• Introduction

• CAMM Level 1: Loosely Coupled

• CAMM Level 2: Abstracted

• CAMM Level 3: Adaptive

• Summary

Page 43: Multi-Cloud Microservices - DevOps Summit Silicon Valley 2015

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

Page 44: Multi-Cloud Microservices - DevOps Summit Silicon Valley 2015

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

Page 45: Multi-Cloud Microservices - DevOps Summit Silicon Valley 2015

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

Page 46: Multi-Cloud Microservices - DevOps Summit Silicon Valley 2015

11/6/2015 Multi-cloud Microservices, DevOps Summit 2015 Nirmata

Containerize Automate Transformyour applications deployment & operations DevOps - Microservices

Page 47: Multi-Cloud Microservices - DevOps Summit Silicon Valley 2015

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

Page 48: Multi-Cloud Microservices - DevOps Summit Silicon Valley 2015

Start your journey to Multi-cloud Microservices at:http://try.nirmata.io

11/6/2015 Multi-cloud Microservices, DevOps Summit 2015

Thank you!