linux collaboration summit keynote: transformation: it takes a platform
TRANSCRIPT
TRANSFORMATION It Takes a Platform
A Cloud-native Application Platform
Cornelia Davis CTO, Transformation Practice Pivotal @cdavisafc
Enable Speed to Market
Deliver Better Customer Experience and More Value
Engage Workforce
Why Transform?
TIME
EXPE
RIE
NC
E
&
EFFI
CIE
NC
Y
Traditional IT
Disruptors
INNOVATION GAPIaaS
+ Automation
What does it take to compete?• Agile, Developer Productivity, TDD, Pairing • A Platform that supports Continuous Delivery
• Streamlines the Devops cycle • Optimizes for Modern Application Architectures
• and more…
4
Continuous DeliveryBusiness Drivers Decide Release (not technical readiness)
A Seattle book store deploys code, on average,
every second
Why?
SPEC
ULA
TIO
N
Risk Accumulation
SPEC
ULA
TIO
N
RISK
Experimentation Reduces Risk
SPEC
ULA
TIO
N
ITERATION ITERATION ITERATION ITERATION ITERATION
9
DevopsEliminate Friction
Obstacles
• Silos: Dev, QA, Operations is typical. No shared common goal
• Dissimilar Environments - “It works on my machine”
• Risky Deployments: Manual steps, done “off hours”
• Changes are treated as an exception, not the norm →Firefighting
• Processes designed around these obstacles
It Takes a Platform
People
http://radar.oreilly.com/2007/10/operations-is-a-competitive-ad.html
Application Dial Tone
12
Emits application “dial tone” • Config • Runtime • Logs • Metrics • Health Management • Security • Operations
Your Application Code
Virtualized Infrastructure
Enabling Devops - Teams Delivering Outcomes
13
Dat
abas
e
Web
S
erve
r
Mes
sagi
ng
Your Application Code
Virtualized Infrastructure
PAAS
Platform Team
Application Team
• Deploys platform • Makes standard runtimes and services
available • Monitors platform • Scales platform (ensuring
sufficient capacity) • Upgrades platform with zero-downtime
• Creates deployable artifact
• Config Prod environment • Deploys application to Prod • Monitors application • Scales application (capacity) • Deploys new app version with
zero downtime.
Essential Elements to Enabling Devops
14
• Complete test suites RUN in DEV, TEST and PROD
• Deployment construction SINGLE DEPLOYABLE ARTIFACT
Single Deployable Artifact
15
Commit Tests
Integration Tests
Deployable Artifact
Deploy to CF Test Env
Deploy to Prod
• Developer crafted (before impl.) • Stubs/mocks external services • Developer executed (before commit) • CI executed (after commit)
(after commit) • Developer or QA crafted • CI executed • Runtime context (buildpack applied) • Binds to test services (DB, messaging, etc.)
• “cf push” • Runtime context (buildpack applied) • Binds to test services (DB, messaging, etc.) • Periodic smoke tests
• “cf push” • Runtime context (buildpack applied) • Binds to prod services (DB,
messaging, etc.) • Periodic smoke tests • Monitoring
? ?
Essential Elements to Enabling Devops
16
• Complete test suites RUN in DEV, TEST and PROD
• Deployment construction SINGLE DEPLOYABLE ARTIFACT
• Self-service, Rapid Provisioning/Deprovisioning AGILITY
• Environment parity NO MORE “It works on my machine”
Environment Parity
17
cmtcmtcmt v201cmt cmt cmt cmt v202 cmt… …
Prod
Acceptance
CI
Essential Elements to Enabling Devops
18
• Complete test suites RUN in DEV, TEST and PROD
• Deployment construction SINGLE DEPLOYABLE ARTIFACT
• Self-service, Rapid Provisioning/Deprovisioning AGILITY
• Environment parity NO MORE “It works on my machine”
• Immutable Infrastructure NO SNOWFLAKES!!!
• Blue/Green Deployments ENABLE PULLBACK
Immutable Infrastructure - Deploy From Scratch
19
Router
Blobstore Cloud Controller
Messaging
Cell Cell Cell PivotalCloudFoundryRuntime(ERS)
Access App
Low Risk, Blue/Green Deploys
20
Essential Elements to Enabling Devops
21
• Complete test suites RUN in DEV, TEST and PROD
• Deployment construction SINGLE DEPLOYABLE ARTIFACT
• Self-service, Rapid Provisioning/Deprovisioning AGILITY
• Environment parity NO MORE “It works on my machine”
• Immutable Infrastructure NO SNOWFLAKES!!!
• Blue/Green Deployments ENABLE PULLBACK
• Self-healing, elastic runtime EXPECT CHANGE
Self-Healing
22
Amend
(Re)deploy
(Re)configure
(Re)connect
Monitor
Current State Desired
State
Cloud Foundry manages transformations between existing and desired system states, using immutable infrastructure.
Application Instances and Availability Zones
23
Router
Cell
Cell
Cell
CloudFoundryElasticRuntime
Cell
Cell
Cell
Zone 1 Zone 2 Application instances are evenly distributed over two availability zones.
Loosing an AZ keeps instances running and available.
Failed Application Instances Replaced
24
Router
Blobstore Cloud Controller
etcd
Cell Cell Cell
CloudFoundryElasticRuntime
Access App
DB Service credentialscreds
Converger & Auctioneer
Desired State
credscreds
Actual State
Essential Elements to Enabling Devops
25
• Complete test suites RUN in DEV, TEST and PROD
• Deployment construction SINGLE DEPLOYABLE ARTIFACT
• Self-service, Rapid Provisioning/Deprovisioning AGILITY
• Environment parity NO MORE “It works on my machine”
• Immutable Infrastructure NO SNOWFLAKES!!!
• Blue/Green Deployments ENABLE PULLBACK
• Self-healing, elastic runtime EXPECT CHANGE
• Self-healing, evolving platform AS A PRODUCT
Application Teams Focus on Their Products…
26
cmtcmtcmt v201cmt cmt cmt cmt v202 cmt… …
Prod
Acceptance
CI
… And Platform Teams on Theirs
27
cmt v201cmt cmt cmt cmt v202 cmt… …
Prod
Acceptance
CI
… And Platform Teams on Theirs
28
cmt v201cmt cmt cmt cmt v202 cmt… …
App
PlatformCVE
Prod
Acceptance
PCF – Each Layer Upgradable with Zero Downtime
29 * Devs may bring a custom buildpack
runtime layer*
OS image
application layer
linux host & kernel
App container
PCF Supported
Dev Supported
• Platform Provided • CVEs addressed by Pivotal • Canary-style, zero-
downtime upgrades
• Platform or Developer Provided
• CVEs addressed by Pivotal (for Platform Provided)
• Blue/Green deployments
• Developer/App team provided
• Blue/Green deployments
Essential Elements to Enabling Devops
30
• Complete test suites RUN in DEV, TEST and PROD
• Deployment construction SINGLE DEPLOYABLE ARTIFACT
• Self-service, Rapid Provisioning/Deprovisioning AGILITY
• Environment parity NO MORE “It works on my machine”
• Immutable Infrastructure NO SNOWFLAKES!!!
• Blue/Green Deployments ENABLE PULLBACK
• Self-healing, elastic runtime EXPECT CHANGE
• Self-healing, evolving platform AS A PRODUCT
31
Cloud-native Application DesignScale and Resilience
© 2015 Pivotal Software, Inc. All rights reserved. 32
Search µservice .
Image µservice .
Item Master µserviceReviews µservice
Shopping Cart
µservice
Other dependent µservice
Other dependent µservice
Other dependent µservice
Why?
• Scale Applications
• Scale Teams
• Independent Development Cycles
• Experimentation
• Resilience
34
Presentation
Fronted-integration
Order Status µService
Search µService
Item Master µService
Item MetaDatµService
Cart µService
Image µService
R12Ns µService
Shipping µService
µService
µServiceµService
µService
µService
Example: Microservice Architecture
35
UI JS (Angular)
CustomersStores
• How do you configure the many services?
• How do you support multiple versions?
• How does a consumer (UI, Customers) find the service instances (that are moving around)?
• How do you deal with the failure modes introduced with distributed systems?
36 http://highscalability.com/blog/2014/4/8/microservices-not-a-free-lunch.html
Example: Microservice Services
37
Spring Cloud Services
38
Spring Cloud Services
Config Server Service Registry Circuit Breaker Dashboard
39
Cloud Foundry is…
The world’s leading open source platform-as-a-service. • Supported by dozens of major organizations
• Language and framework agnostic
• Manages both VMs and containers
• Orchestrates both applications and data services
• Abstracts Infrastructure Founded and commercialized by Pivotal, Inc.
TheCloudFoundryFoundation:AnOpenIndustryStandard
41
PLATINUM
GOLD
SILVER
Thank you!
Cornelia Davis CTO, Transformation Practice Pivotal @cdavisafc