52
© 2016 IBM Corporation Florian Georg IBM Cloud Advisor [email protected] @florian_georg EnterpriseEPaaS and CloudENative Architecture Guest Lecture E University Zurich

Enterprise PaaS, Cloud-Native Architecture and Microservices

Embed Size (px)

Citation preview

Page 1: Enterprise PaaS, Cloud-Native Architecture and Microservices

©"2016"IBM"Corporation

Florian"GeorgIBM"Cloud"[email protected]@florian_georg

EnterpriseEPaaS"and"CloudENative"ArchitectureGuest"Lecture"E University"Zurich

Page 2: Enterprise PaaS, Cloud-Native Architecture and Microservices

2Page©"2016"IBM"Corporation

Agenda

IntroductionEnterprise"PaaSCloud"Native"ArchitectureMicroservices

Page 3: Enterprise PaaS, Cloud-Native Architecture and Microservices

3Page©"2016"IBM"Corporation

Agenda

IntroductionEnterprise"PaaSCloud"Native"ArchitectureMicroservices

Page 4: Enterprise PaaS, Cloud-Native Architecture and Microservices

4Page©"2016"IBM"Corporation

The"Different"Cloud"Delivery"ModelsTraditional on premises

Applications

Data

Runtime

Middleware

O/S

Virtualization

Servers

Storage

Networking

Infrastructureas a Service(IaaS)Applications

Data

Runtime

Middleware

O/S

Virtualization

Servers

Storage

Networking

Platformas a Service(PaaS)Applications

Data

Runtime

Middleware

O/S

Virtualization

Servers

Storage

Networking

Softwareas a Service(SaaS)Applications

Data

Runtime

Middleware

O/S

Virtualization

Servers

Storage

Networking

Customer managed

IBM managed

Standardization; lower costs; faster time to value

Page 5: Enterprise PaaS, Cloud-Native Architecture and Microservices

5Page©"2016"IBM"Corporation

TwoEspeed"/"biEmodality"of"modern"IT

Different"layers"and"workloads

IT"workloads"emerge"and"evolve"at"different"speeds.

Analysts"predicts"75%"of"IT"orgs"will"have"a"biEmodal"capability"in"2017

Page 6: Enterprise PaaS, Cloud-Native Architecture and Microservices

6Page©"2016"IBM"Corporation

Systemsof

Innovation

Systemsof Record

New$Projects: The"speed to driveinnovation and growth

Traditional$Projects: The"capabilities tocapitalize on"your institutional knowledge

AgileEdge Industrialized

Core

Hybrid$Integration

Successful$hybrid$clouds$deliver:‒ Developer$productivity‒ Integration$and$portability‒ Data$and$analytics‒ Visibility,$control$and$security

Hybrid"Cloud:"Integrate"Clouds"and"OnEPremises

Page 7: Enterprise PaaS, Cloud-Native Architecture and Microservices

7Page©"2016"IBM"Corporation

http://www.cloudcomputingpatterns.org/Elastic_Platform

Customer Development Operations

Page 8: Enterprise PaaS, Cloud-Native Architecture and Microservices

8Page©"2016"IBM"Corporation

Different"Levels"of"Abstraction

Page 9: Enterprise PaaS, Cloud-Native Architecture and Microservices

9Page©"2016"IBM"Corporation

Use"Cases"for"PaaS"in"an"Enterprise"Context– Innovation"platform"(developer"centric)– Hybrid"Integration,"securely"consume"public"services– Systems"of"engagement,"Mobile,"IoT…"– User"Experience"(UX)"and"lean"experimentation– SaaSify existing"applications– Small"“backoffice”"apps"(“The"Long"Tail”)– Building"Partner"ecosystem"/"dev"collaboration– API"Layer"/"API"economy

Page 10: Enterprise PaaS, Cloud-Native Architecture and Microservices

10Page©"2016"IBM"Corporation

Use"Case"#1:"Modernization"+"Backend"Integration– Improved"Agility"&"Time"to"market"for"new"capabilities

– Improved"lifecycle"management"and"faster"dev/ops"turnaround

– Modernization"(e.g."new"Frontends" /"Systems"of"Engagement)

– Highly"scalable"API"or"frontend"layer"for"backend"systems

– Keep"compliance"and"data"locality

Legacy"Application

Backend

New"Capabilities

Secure"connection"/"API

! traditional Cloud""

Page 11: Enterprise PaaS, Cloud-Native Architecture and Microservices

11Page©"2016"IBM"Corporation

Use"Case"#2:"CloudEnative"reEarchitecturing– Build" true,"scalable"multiEtenant"SaaS"solutions

– Highly" improve"fault"tolerance"and"resiliency" of"architecture

– Manage"complexity"of"product"portfolio

Legacy"Application

S1

! traditional Cloud""

S1S3

S1

S4

S2

S3S3S3

Page 12: Enterprise PaaS, Cloud-Native Architecture and Microservices

12Page©"2016"IBM"Corporation

Use"Case"#3:"Hybrid"dev/prod"for"2Espeed"ITE Agile"prototypes,"pilots,"explorations"and"PoCsE Option"to"operate"in"managed"environment"for"productionE Introduce"and"validate"new"features"and"versions"quicklyE Seamless"migration"between"clouds

Idea" /"Project" /"New"

Capability

Dev

Bluemix Public"E off"premises! traditional Cloud""

Test

Prod

Bluemix Local"E on"premisesSpeed

ControlFocus:

Page 13: Enterprise PaaS, Cloud-Native Architecture and Microservices
Page 14: Enterprise PaaS, Cloud-Native Architecture and Microservices

14Page©"2016"IBM"Corporation

Page 15: Enterprise PaaS, Cloud-Native Architecture and Microservices

15Page©"2016"IBM"Corporation

IoT

IBM’s"Open"Cloud"Architecture"E Technologies

DevOps

Runtimes

OAuth

Security

Web$and$Mobile Data$and$Analytics

Operating$ Environment

Page 16: Enterprise PaaS, Cloud-Native Architecture and Microservices

16Page©"2016"IBM"Corporation

CloudFoundry:"Pushing"Code"

Buildpack(“Runtime”)

Droplet

cf push

Developer(or"delivery"pipeline)

Source

Application"(n"instances)

Workstation"/"Buildserver Bluemix PaaS

Router

User

https://myapp.url

Staging ExecutionEnvironment

run"on

DEAs(="VMs)

loadEbalance"1..n

Page 17: Enterprise PaaS, Cloud-Native Architecture and Microservices

17Page©"2016"IBM"Corporation

Agenda

IntroductionEnterprise"PaaSCloud"Native"ArchitectureMicroservices

Page 18: Enterprise PaaS, Cloud-Native Architecture and Microservices

18Page©"2016"IBM"Corporation

What"kind"of"a"motivation"do"we"have?– Start"small,"scale"fast– Minimize"upfront"invest"E pay"as"you"scale– Minimize"Risks"(financial,"productEmarket"fit,"technical"feasability)– Build"for"multiEtenancy"(SaaS)– High"Availability"at"(potential)"massive"scale– Agility"and"Speed

• Time"to"Market• Minimize" Risk• Cut"costs"(yes!)

– Leverage"new"technologies"and"services– Support"a"devOps culture"(Conway’s"Law)

Page 19: Enterprise PaaS, Cloud-Native Architecture and Microservices

19Page©"2016"IBM"Corporation

CultureFoundational

values"and"principles

ThinkConceptualization,"refinement,"and"prioritization"of"capabilities

CodeGeneration,"enhancement,"optimization"and"testing"of"features

DeliverAutomated"

production"and"delivery"of"offerings

RunServices,"options,"and"capabilities"required"to"run"in"

the"Cloud

ManageOngoing"monitoring,"support,"and"recovery"of"offerings

LearnContinuously"learn"based"on"outcomes" from"experiments

Combining"industry"best"practices"for"Design$Thinking,$Lean$Startup,$Agile$Development,$DevOps,$andCloud$to"build"and"deliver"innovative"solutions.

To"learn"more"visit:https://www.ibm.com/devops/method

IBM"Bluemix Garage"Method

Page 20: Enterprise PaaS, Cloud-Native Architecture and Microservices

20Page©"2016"IBM"Corporation

Architecture"Principles– Twelve"Factor"Apps– Cattle"vs"Pets"(MTTF"vs."MTTR)– Resiliency

• Reactive"programming• Design" for"Failure• Immutable"Services• Resiliency" Testing• SelfEhealing" systems

Page 21: Enterprise PaaS, Cloud-Native Architecture and Microservices

21Page©"2016"IBM"Corporation

http://12factor.net/

Page 22: Enterprise PaaS, Cloud-Native Architecture and Microservices

22Page©"2016"IBM"Corporation

Cattle"vs"Pets

E Servers"get"unique"names"(‘homer.mynetwork.com’)

E Hand"raised"and"cared"forE If"gets"sick,"we"nurse"them"back"to"health

E Servers"get"numbers"and"are"almost"identical"(‘f023eaE232.mynetwork.com’)

E If"they"get"sick,"we"shoot"them"and"clone"another"one"vE)"

Page 23: Enterprise PaaS, Cloud-Native Architecture and Microservices

23Page©"2016"IBM"Corporation

Availability"="MTTF"/"MTBF"="MTTF"/"(MTTF"+"MTTD"+"MTTR)

4/25

Different"approaches"to"HA

Source:"http://www.slideshare.net/d0cent/monitoringEwithEnagiosEandEganglia

CloudLnative:" minimize(MTTD"+"MTTR)

Traditional:"Maximize"MTTF

Page 24: Enterprise PaaS, Cloud-Native Architecture and Microservices

24Page©"2016"IBM"Corporation http://www.reactivemanifesto.org/

Page 25: Enterprise PaaS, Cloud-Native Architecture and Microservices

25Page©"2016"IBM"Corporation

Example"concept:"UI"Latency"Compensation

Instant"UI"updates

ClientEside"data"replica

From:"https://meteorhacks.com/introductionEtoElatencyEcompensation.html

Page 26: Enterprise PaaS, Cloud-Native Architecture and Microservices

26Page©"2016"IBM"Corporation

Design"for"Failure:"Circuit"Breaker"Pattern

See"also: https://www.ibm.com/devops/method/content/manage/practice_circuit_breaker_pattern/

http://martinfowler.com/blik i/CircuitBreaker.html

• Always"Anticipate" failures• Minimize" “blast"radius”• Graceful"degradation" of"service

Page 27: Enterprise PaaS, Cloud-Native Architecture and Microservices

27Page©"2016"IBM"Corporation

Immutable"Services– NonEdestructive"production"updates

– Service"versions"get"installed"sideEbyEside

– Crucial"for…• Canary"Testing• Blue/Green"Deployments

• A/B"Testing• Service"Versioning

Page 28: Enterprise PaaS, Cloud-Native Architecture and Microservices

28Page©"2016"IBM"Corporation

Resiliency"Testing"and"SelfEhealing

Page 29: Enterprise PaaS, Cloud-Native Architecture and Microservices

29Page©"2016"IBM"Corporation

Foundational"services"and"solutions

Page 30: Enterprise PaaS, Cloud-Native Architecture and Microservices

30Page©"2016"IBM"Corporation

Bluemix Architecture"Center

https://developer.ibm.com/architecture/gallery

Page 31: Enterprise PaaS, Cloud-Native Architecture and Microservices

31Page©"2016"IBM"Corporation

Scenario Implementation

Page 32: Enterprise PaaS, Cloud-Native Architecture and Microservices

33Page©"2016"IBM"Corporation

Agenda

IntroductionEnterprise"PaaSCloud"Native"ArchitectureMicroservices

Page 33: Enterprise PaaS, Cloud-Native Architecture and Microservices

34Page©"2016"IBM"Corporation

Characteristics"of"Microservices– Componentization– Business"Capabilities"vs"Technical"Layers– Design"for"Failure– Smart"Endpoints,"dumb"pipes– Decentralization– Automation

Page 34: Enterprise PaaS, Cloud-Native Architecture and Microservices

35Page©"2016"IBM"Corporation

Microservices

Source:"http://martinfowler.com/articles/microservices.html

Page 35: Enterprise PaaS, Cloud-Native Architecture and Microservices

36Page©"2016"IBM"Corporation

Monolith"to"Microservices E Example

DB

Run3time

Orders"service

Shipping"service

Catalog"service

Storefront"UI

Run3time

Run3time

Run3time

DB

DB

MicroserviceBased

Proxy

Application

DB

Middleware

Storefront"UI

Ordersservice

Shipping"service

Catalogservice

Monolith

Page 36: Enterprise PaaS, Cloud-Native Architecture and Microservices

37Page©"2016"IBM"Corporation

Conway’s"LawAny8organization8that8designs8a8system8(defined8broadly)8will8produce8a8design8whose8structure8is8a8copy8of8the8organization's8communication8structure.33 Melvyn8Conway,81967

Page 37: Enterprise PaaS, Cloud-Native Architecture and Microservices

38Page©"2016"IBM"Corporation

CrossEfunctional"teams"per"Business"Capability

Source:"http://martinfowler.com/articles/microservices.html

Page 38: Enterprise PaaS, Cloud-Native Architecture and Microservices

39Page©"2016"IBM"Corporation

Monolith"vs"Microservices

–Partial"Deployment

–Availability

–Promote"strong"module"boundaries"(Network)

–Multiple"platforms

–Simplicity

–Consistency

–Easy(ier)"refactoring

Page 39: Enterprise PaaS, Cloud-Native Architecture and Microservices

40Page©"2016"IBM"Corporation

The"Microservices Premium

Source:"http://martinfowler.com/blik i/MicroservicePremium.html

Page 40: Enterprise PaaS, Cloud-Native Architecture and Microservices

41Page©"2016"IBM"Corporation

Microservices ”Compute”:"Containers– Application"Container"(Docker,"rcket

– Lightweight"&"Fast

– Not"a"new"technology,"but"Docker"made"it"”consumable”"by"Dev"teams

– Still"considered"immature"for"enterprise"workloads

Page 41: Enterprise PaaS, Cloud-Native Architecture and Microservices

42Page©"2016"IBM"Corporation

Patterns"and"Automation

– “Infrastructure"as"Code”:"Describe"target"environments

– Automate"provisioning"(Chef,"Puppet,"Ansible,"IBM"Cloud"Orchestrator,"Docker"Machine..)

– Automate"Deployment"(urbancodedeploy,"Docker"Swarm,"Kubernetes,"Mesos/Marathon"…)

Page 42: Enterprise PaaS, Cloud-Native Architecture and Microservices

44Page©"2016"IBM"Corporation

Microservices:"Datastores– Impedance"Mismatch"between"“Objects”"and"RDBMS

– Scaling"RDBMS"across"clusters"is"a"complex"task

– NoSQL"databases"• Broad"range"of"different"approaches

• Horizontal" scaling• Broad"Open"Source"ecosystem

Page 43: Enterprise PaaS, Cloud-Native Architecture and Microservices

45Page©"2016"IBM"Corporation

Characteristics"of"NoSQL"Datastores– NonErelational– Horizontally"scalable"(massive)– SchemaEless

– CAP"Theorem"(*)• Consistency (all"nodes"see"the"same"data"at"the"

same"time)• Availability (every"request"receives"a"response"about"

whether"it"succeeded"or"failed)• Partition8 tolerance (the"system"continues"to"operate"

despite"arbitrary"partitioning"due"to"network"failures)

– Popular"for"cloudEnative"/"Microservices:Many"lean"towards"Partition"Tolerance"" good"fit"for"distributed"architectures"like"Microservices

http://i.stack.imgur.com/Hx8h0.png(*)"Wikipedia

Page 44: Enterprise PaaS, Cloud-Native Architecture and Microservices

46Page©"2016"IBM"Corporation

Types"of"NoSQL"Databases– Document– KeyEValue– ColumnEoriented– Graph"DBs– …

Page 45: Enterprise PaaS, Cloud-Native Architecture and Microservices

47Page©"2016"IBM"Corporation

SchemaEless– Easier"to"migrate– Easier"to"change– Still:"implicit"schema

" data"consistency"becomes"an"“application"level"responsibility”,"instead"of"a"DB"feature."Which"is"a"good"thing.

Page 46: Enterprise PaaS, Cloud-Native Architecture and Microservices

48Page©"2016"IBM"Corporation

Data"Modeling"Tradeoffs– Most"NoSQL"databases"(except"GraphDBs)"store"aggregated"objects

– Beneficial"for"more"clear,"bounded"data"abstractions"that"are"relativly stable

– May"be"painful"for"dynamic,"multiEdimensional"analytics"(slide"&"dice"/"group"/"pivot"/"view"Eoperations)

Page 47: Enterprise PaaS, Cloud-Native Architecture and Microservices

49Page©"2016"IBM"Corporation

Common"Challenges"with"Microservices– Isolation"&"Security"concerns– API"Versioning– System"complexity– Need"a"devOps culture

Page 48: Enterprise PaaS, Cloud-Native Architecture and Microservices

50Page©"2016"IBM"Corporation

Requests AB

DevOpsServices

B’

Data$Plane

Authentication,"Provisioning,"Resource"Management,"Service"Registration,"etc.

Red/Black"Deploy,"A/B"testing

e.g.,%send%70%%to%B,%30%%B’

Control$Plane

Resiliency"Testing

D’

D

e.g.,%overload%D’%and%check%for%circuit%breaker%at%B’

Service8Proxy

Microservice"instances

Edge8Router

Microservice"Applications"– IBM"Point"of"View

App$Deployment

Page 49: Enterprise PaaS, Cloud-Native Architecture and Microservices

51Page©"2016"IBM"Corporation

A"Microservice"App"on"IBM"Bluemix

51

Orders

Catalog

UI

Sd

RuleLbasedRouting$$&Load$Balancing$ $

Sp

Service$ Registratiion&$Heartbeat.Automatically$ deletes$unhealthy$ instances

SQLDBservice

Cloudant

Bluemix Services

(Liberty)

(Liberty)

(nodeJS)

Bluemix E ContainersBluemix E Cloud"Foundry""

1."I"want"to"update"my"UI"Microservice without"any"disruption"

Deployment$ +Roll$Forward$based$ on$analytics

Ad(+Canary"Advisor)"

UI’

2."I"want"to"use"comparative"analytics"to"decide"if"to"Roll"Forward"

Go"Router

3."I"want"to"systematically"test"for"failure"recovery"before"going"live

(Liberty)

Gremlin

Bluemix Control"Plane

Systematically$ test$for$failure$ recovery$ in$testing/production$environments

Page 50: Enterprise PaaS, Cloud-Native Architecture and Microservices

52Page©"2016"IBM"Corporation

Summary– Enterprise"PaaS

• What"?"Why"?– CloudEnative"Architecture

• Principles– Microservices

• Characteristics• “Cattle”:"Containers• Decentralized" Data"/"NoSQL

Page 51: Enterprise PaaS, Cloud-Native Architecture and Microservices

53Page©"2016"IBM"Corporation

Thanks

by"xkcd

Page 52: Enterprise PaaS, Cloud-Native Architecture and Microservices

Questions"?