enterprise paas, cloud-native architecture and microservices
TRANSCRIPT
©"2016"IBM"Corporation
Florian"GeorgIBM"Cloud"[email protected]@florian_georg
EnterpriseEPaaS"and"CloudENative"ArchitectureGuest"Lecture"E University"Zurich
2Page©"2016"IBM"Corporation
Agenda
IntroductionEnterprise"PaaSCloud"Native"ArchitectureMicroservices
3Page©"2016"IBM"Corporation
Agenda
IntroductionEnterprise"PaaSCloud"Native"ArchitectureMicroservices
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
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
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
7Page©"2016"IBM"Corporation
http://www.cloudcomputingpatterns.org/Elastic_Platform
Customer Development Operations
8Page©"2016"IBM"Corporation
Different"Levels"of"Abstraction
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
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""
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
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:
14Page©"2016"IBM"Corporation
15Page©"2016"IBM"Corporation
IoT
IBM’s"Open"Cloud"Architecture"E Technologies
DevOps
Runtimes
OAuth
Security
Web$and$Mobile Data$and$Analytics
Operating$ Environment
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
17Page©"2016"IBM"Corporation
Agenda
IntroductionEnterprise"PaaSCloud"Native"ArchitectureMicroservices
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)
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
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
21Page©"2016"IBM"Corporation
http://12factor.net/
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)"
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
24Page©"2016"IBM"Corporation http://www.reactivemanifesto.org/
25Page©"2016"IBM"Corporation
Example"concept:"UI"Latency"Compensation
Instant"UI"updates
ClientEside"data"replica
From:"https://meteorhacks.com/introductionEtoElatencyEcompensation.html
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
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
28Page©"2016"IBM"Corporation
Resiliency"Testing"and"SelfEhealing
29Page©"2016"IBM"Corporation
Foundational"services"and"solutions
30Page©"2016"IBM"Corporation
Bluemix Architecture"Center
https://developer.ibm.com/architecture/gallery
31Page©"2016"IBM"Corporation
Scenario Implementation
33Page©"2016"IBM"Corporation
Agenda
IntroductionEnterprise"PaaSCloud"Native"ArchitectureMicroservices
34Page©"2016"IBM"Corporation
Characteristics"of"Microservices– Componentization– Business"Capabilities"vs"Technical"Layers– Design"for"Failure– Smart"Endpoints,"dumb"pipes– Decentralization– Automation
35Page©"2016"IBM"Corporation
Microservices
Source:"http://martinfowler.com/articles/microservices.html
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
37Page©"2016"IBM"Corporation
Conway’s"LawAny8organization8that8designs8a8system8(defined8broadly)8will8produce8a8design8whose8structure8is8a8copy8of8the8organization's8communication8structure.33 Melvyn8Conway,81967
38Page©"2016"IBM"Corporation
CrossEfunctional"teams"per"Business"Capability
Source:"http://martinfowler.com/articles/microservices.html
39Page©"2016"IBM"Corporation
Monolith"vs"Microservices
–Partial"Deployment
–Availability
–Promote"strong"module"boundaries"(Network)
–Multiple"platforms
–Simplicity
–Consistency
–Easy(ier)"refactoring
40Page©"2016"IBM"Corporation
The"Microservices Premium
Source:"http://martinfowler.com/blik i/MicroservicePremium.html
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
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"…)
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
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
46Page©"2016"IBM"Corporation
Types"of"NoSQL"Databases– Document– KeyEValue– ColumnEoriented– Graph"DBs– …
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.
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)
49Page©"2016"IBM"Corporation
Common"Challenges"with"Microservices– Isolation"&"Security"concerns– API"Versioning– System"complexity– Need"a"devOps culture
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
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
52Page©"2016"IBM"Corporation
Summary– Enterprise"PaaS
• What"?"Why"?– CloudEnative"Architecture
• Principles– Microservices
• Characteristics• “Cattle”:"Containers• Decentralized" Data"/"NoSQL
53Page©"2016"IBM"Corporation
Thanks
by"xkcd
Questions"?