©"2016"IBM"Corporation
Florian"Georg
IBM"Cloud"Advisor
florian.georg@ch.ibm.com
@florian_georg
EnterpriseEPaaS"and"
CloudENative"Architecture
Guest"Lecture"E University"Zurich
2Page©"2016"IBM"Corporation
Agenda
Introduction
Enterprise"PaaS
Cloud"Native"Architecture
Microservices
3Page©"2016"IBM"Corporation
Agenda
Introduction
Enterprise"PaaS
Cloud"Native"Architecture
Microservices
4Page©"2016"IBM"Corporation
The"Different"Cloud"Delivery"Models
Traditional
on premises
Applications
Data
Runtime
Middleware
O/S
Virtualization
Servers
Storage
Networking
Infrastructure
as a Service
(IaaS)
Applications
Data
Runtime
Middleware
O/S
Virtualization
Servers
Storage
Networking
Platform
as a Service
(PaaS)
Applications
Data
Runtime
Middleware
O/S
Virtualization
Servers
Storage
Networking
Software
as 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
Systems
of
Innovation
Systems
of Record
New$Projects: The"speed to drive
innovation and growth
Traditional$Projects: The"capabilities to
capitalize on"your institutional knowledge
Agile
Edge
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" multiE
tenant"SaaS"
solutions
– Highly" improve"
fault"tolerance"and"
resiliency" of"
architecture
– Manage"
complexity"of"
product"portfolio
Legacy"
Application
S1
! traditional Cloud""
S1
S3
S1
S4
S2
S3S3S3
12Page©"2016"IBM"Corporation
Use"Case"#3:"Hybrid"dev/prod"for"2Espeed"IT
E Agile"prototypes,"
pilots,"explorations"
and"PoCs
E Option"to"operate"in"
managed"environment"
for"production
E Introduce"and"validate"
new"features"and"
versions"quickly
E Seamless"migration"
between"clouds
Idea"/"
Project"/"
New"
Capability
Dev
Bluemix Public"E off"premises
! traditional Cloud""
Test
Prod
Bluemix Local"E on"premises
Speed
Control
Focus:
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 Execution
Environment
run"on
DEAs
(="VMs)
loadE
balance"
1..n
17Page©"2016"IBM"Corporation
Agenda
Introduction
Enterprise"PaaS
Cloud"Native"Architecture
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)
19Page©"2016"IBM"Corporation
Culture
Foundational
values"and"principles
Think
Conceptualization,"
refinement,"and"
prioritization"of"
capabilities
Code
Generation,"
enhancement,"
optimization"and"
testing"of"features
Deliver
Automated"
production"and"
delivery"of"
offerings
Run
Services,"options,"
and"capabilities"
required"to"run"in"
the"Cloud
Manage
Ongoing"
monitoring,"
support,"and"
recovery"of"
offerings
Learn
Continuously"
learn"based"on"
outcomes"from"
experiments
Combining"industry"best"practices"for"
Design$Thinking,$Lean$Startup,$
Agile$Development,$DevOps,$and
Cloud$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"for
E 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/monitori
ngEwithEnagiosEandEganglia
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/introductionEtoElatencyE
compensation.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/bliki/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
Introduction
Enterprise"PaaS
Cloud"Native"Architecture
Microservices
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
Microservice Based
Prox
y
Application
DB
Middleware
Storefront"UI
Orders
service
Shipping"
service
Catalog
service
Monolith
37Page©"2016"IBM"Corporation
Conway’s"Law
Any8organization8that8designs8a8system8(defined8broadly)8will8produce8
a8design8whose8structure8is8a8copy8of8the8organization's8
communication8structure.
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/bliki/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"(urbancode
deploy,"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)
• Partition8tolerance (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"E
operations)
49Page©"2016"IBM"Corporation
Common"Challenges"with"Microservices
– Isolation"&"Security"concerns
– API"Versioning
– System"complexity
– Need"a"devOps culture
50Page©"2016"IBM"Corporation
Requests A
B
DevOps
Services
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’
Service8
Proxy
Microservice"
instances
Edge8
Router
Microservice"Applications"– IBM"Point"of"View
App$Deployment
51Page©"2016"IBM"Corporation
A"Microservice"App"on"IBM"Bluemix
51
Orders
Catalog
UI
Sd
RuleLbased
Routing$$&
Load$Balancing$ $
S
p
Service$ Registratiion
&$Heartbeat.
Automatically$ deletes$
unhealthy$ instances
SQLDB
service
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"?

Enterprise PaaS, Cloud-Native Architecture and Microservices