- A cloud-native application platform can enable organizations to transform by providing speed to market, better customer experiences, and engaging their workforce.
- Key elements of such a platform include continuous delivery, immutable infrastructure, blue/green deployments, self-service provisioning, environment parity, and a self-healing elastic runtime.
- A cloud-native microservices architecture can provide benefits like independent scaling of services, independent development cycles, experimentation, and resilience. Managing microservices requires services for configuration, service registration, circuit breaking, and monitoring.
10. 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
11. It Takes a Platform
People
http://radar.oreilly.com/2007/10/operations-is-a-competitive-ad.html
12. Application Dial Tone
12
Emits application “dial tone”
• Config
• Runtime
• Logs
• Metrics
• Health Management
• Security
• Operations
Your Application
Code
Virtualized
Infrastructure
13. Enabling Devops - Teams Delivering Outcomes
3
Database
Web
Server
Messaging
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.
14. Essential Elements to Enabling Devops
14
• Complete test suites
RUN in DEV, TEST and PROD
• Deployment construction
SINGLE DEPLOYABLE ARTIFACT
15. 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
? ?
16. 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”
18. 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
21. 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
23. Application Instances and Availability Zones
23
Router
Cell
Cell
Cell
Cloud Foundry
Elastic Runtime
Cell
Cell
Cell
Zone 1 Zone 2 Application instances
are evenly distributed
over two availability
zones.
Loosing an AZ keeps
instances running and
available.
24. Failed Application Instances Replaced
24
Router
Blobstore Cloud Controller
etcd
Cell Cell Cell
Cloud Foundry
Elastic Runtime
Access
App
DB
Service
credentialscreds
Converger & Auctioneer
Desired State
credscreds
Actual State
25. 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
26. Application Teams Focus on Their Products…
26
cmtcmtcmt v201cmt cmt cmt cmt v202 cmt
… …
Prod
Acceptance
CI
27. … And Platform Teams on Theirs
7
cmt v201cmt cmt cmt cmt v202 cmt
… …
Prod
Acceptance
CI
28. … And Platform Teams on Theirs
8
cmt v201cmt cmt cmt cmt v202 cmt
… …
App
Platform
CVE
Prod
Acceptance
29. PCF – Each Layer Upgradable with Zero Downtime
9
* 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
30. 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
35. Example: Microservice Architecture
35
UI
JS (Angular)
Customers
Stores
• 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?
40. 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.