SlideShare a Scribd company logo
1 of 42
Download to read offline
© Copyright 2014 Pivotal. All rights reserved.© Copyright 2014 Pivotal. All rights reserved.
Cloud Foundry and Microservices
A Mutualistic Symbiotic Relationship
1
Matt Stine
Cloud Foundry Platform Engineer
CF Summit 2014
© Copyright 2014 Pivotal. All rights reserved. 2
“Software Keeps Eating the World”
© Copyright 2014 Pivotal. All rights reserved. 3
Software Keeps Changing Industries
$3.5B valuation
Financial Services
$3.5B valuation
Travel & Hospitality
$3.5B valuation
Transportation
$3.2B Acquisition by Google
Home Automation
$20B valuation
Entertainment
$26B valuation
Tesla--Automotive
$19.5B
© Copyright 2014 Pivotal. All rights reserved. 4
Warner Music: Software Factories
Warner Software Factory Platform
• New applications and major updates
- Before: 6 months, team of 10 developers
- After: 6 weeks, same team
- Speed/Agility: 400% faster on new platform
- HR Hard Savings: $1.1M per application update
delivered
© Copyright 2014 Pivotal. All rights reserved. 5
Iterative Development
Design
Develop
Test
Customer
Feedback
Customer
Delivery
Analytics
© Copyright 2014 Pivotal. All rights reserved.
Horizontal Scale
6
Slow/Expensive Fast/Cheap
© Copyright 2014 Pivotal. All rights reserved.
Diversity of Clients
7
http://money.cnn.com/2014/02/28/technology/mobile/mobile-apps-internet/
In January 2014, mobile devices accounted for 55% of Internet usage in the United
States. Apps made up 47% of Internet traffic and 8% of traffic came from mobile
browsers.
© Copyright 2014 Pivotal. All rights reserved. 8
Continuous Delivery
© Copyright 2014 Pivotal. All rights reserved. 9
Software Factories
Feedback Rapid Iteration
Horizontal Scale
Diversity of Clients
Continuous Delivery
Infrastructure
Applications
Monoliths
Microservices
Physical/Virtual Cloud Foundry
© Copyright 2014 Pivotal. All rights reserved. 10
New Architectural Constraints
• CF optimizes for 12 Factor Linux applications
• Microservices: a radical departure from traditional monolithic
applications
• In both cases, the enterprise is 

forced to “think different.”
© Copyright 2014 Pivotal. All rights reserved.
How XP Practices Support Each Other
11
http://www.kusmin.eu/wiki/index.php/How_XP_Practices_Support_Each_Other
© Copyright 2014 Pivotal. All rights reserved.
A Mutualistic Symbiotic Relationship…
12
Cloud Foundry
Microservices
http://en.wikipedia.org/wiki/Symbiosis#Mutualism
© Copyright 2014 Pivotal. All rights reserved.© Copyright 2014 Pivotal. All rights reserved.
Microservices
Overview
13
© Copyright 2014 Pivotal. All rights reserved. 14
Simple vs. Easy
• Simple
• sim- plex
• one fold/braid
• vs complex
• Easy
• ease < aise < adjacens
• lie near
• vs hard
© Copyright 2014 Pivotal. All rights reserved.
Monolithic Architecture
15
Relational Database
Data Access
Service
HTML JavaScript MVC
Service
Monolithic ApplicationBrowser
© Copyright 2014 Pivotal. All rights reserved. 16
Monolithic Architectures
• Complex / Easy
• Modularity Dependent Upon Language / Frameworks
• Change Cycles Tightly Coupled / Obstacle to Frequent Deploys
• Inefficient Scaling
• Can Be Intimidating to New Developers
• Obstacle to Scaling Development
• Requires Long-Term Commitment to Technical Stack
© Copyright 2014 Pivotal. All rights reserved.
Microservice Architecture
17
…
HTTP
HTTP
HTTP
HTTP
HTTP
HTTP
AMQP
AMQP
Relational
DB
Key/Value
Store
Graph
DB
© Copyright 2014 Pivotal. All rights reserved. 18
Microservice Architectures
• Simple / Hard
• Modularity Based on Component Services
• Change Cycles Decoupled / Enable Frequent Deploys
• Efficient Scaling
• Individual Components Less Intimidating to New Developers
• Enables Scaling of Development
• Eliminates Long-Term Commitment to Technical Stack
© Copyright 2014 Pivotal. All rights reserved.
Conway’s Law
19
Any organization that designs a system (defined broadly) will produce a design
whose structure is a copy of the organization's communication structure.
Melvyn Conway, 1967
http://martinfowler.com/articles/microservices.html#OrganizedAroundBusinessCapabilities
© Copyright 2014 Pivotal. All rights reserved.
Organize Around Business Capabilities
20
Data Access
Service
HTML JavaScript MVC
Service
UISpecialists
Middleware
Specialists
DBAs
BusinessCapability
BusinessCapability
BusinessCapability
Siloed
Functional
Teams
http://martinfowler.com/articles/microservices.html#OrganizedAroundBusinessCapabilities
Siloed
Application
Architectures
Cross-
functional
Teams
Microservice
Architectures
© Copyright 2014 Pivotal. All rights reserved. 21
Partitioning Strategies
• By Noun (e.g. product info service)
• By Verb (e.g. shipping service)
• Single Responsibility Principle

(http://programmer.97things.oreilly.com/wiki/index.php/
The_Single_Responsibility_Principle)
© Copyright 2014 Pivotal. All rights reserved. 22
UNIX Pipes and Filters
cut -d" " -f1 < access.log | sort | uniq -c | sort -rn | less
© Copyright 2014 Pivotal. All rights reserved.
Choreography over Orchestration
23
https://www.flickr.com/photos/gabrielsaldana/5896491978
https://www.flickr.com/photos/chrisbrenschmidt/2223763842
http://martinfowler.com/articles/microservices.html#SmartEndpointsAndDumbPipes
© Copyright 2014 Pivotal. All rights reserved.© Copyright 2014 Pivotal. All rights reserved. 24
Overview
http://12factor.net
© Copyright 2014 Pivotal. All rights reserved. 25
Twelve Factor + Cloud Foundry
• One codebase tracked in revision control, many deploys
• Multiple = Distributed System
• Consistent with CF application unit
• Explicitly declare and isolate dependencies
• CF emphasis on deployable units (e.g. Java WAR)
• CF Buildpacks provide runtime dependencies
© Copyright 2014 Pivotal. All rights reserved. 26
Twelve Factor + Cloud Foundry
• Store config in the environment
• Nicely facilitated via CF
• Treat backing services as attached resources
• cf create-service / cf bind-service
• Strictly separate build and run stages
• CF Buildpacks + immutable Warden containers
© Copyright 2014 Pivotal. All rights reserved. 27
Twelve Factor + Cloud Foundry
• Execute the app as one or more stateless processes
• CF Warden containers - no clustered memory, no shared FS.
• Challenge for the monolith!
• Export services via port binding
• CF provides HTTP/HTTPS today, more future (TCP?)
• Scale out via the process model
• cf scale app -i 1000
© Copyright 2014 Pivotal. All rights reserved. 28
Twelve Factor + Cloud Foundry
• Maximize robustness with fast startup and graceful shutdown
• CF scales quickly, but can only move as fast as your app
can bootstrap (challenge for the monolith!)
• Keep development, staging, and production as similar as
possible
• CF is CF! Spaces provide separation of concerns without
technical differences.
© Copyright 2014 Pivotal. All rights reserved. 29
Twelve Factor + Cloud Foundry
• Treat logs as event streams
• CF Loggregator!
• Run admin/management tasks as one-off processes
• Still a challenge to be addressed…
© Copyright 2014 Pivotal. All rights reserved. 30
Twelve Factor + Microservices
• Fully compatible architectural style
• Frameworks tend to optimize around same ideas
• Examples:
• Spring Boot + Cloud
• http://projects.spring.io/spring-boot
• http://projects.spring.io/spring-cloud
• Dropwizard (https://dropwizard.github.io/dropwizard)
© Copyright 2014 Pivotal. All rights reserved.© Copyright 2014 Pivotal. All rights reserved. 31
http://highscalability.com/blog/2014/4/8/microservices-not-a-free-lunch.html
© Copyright 2014 Pivotal. All rights reserved. 32
Paying for your lunch…
• Significant Operations Overhead
• Substantial DevOps Skills Required
• Implicit Interfaces
• Duplication of Effort
• Distributed System Complexity
• Asynchronicity is Difficult!
• Testability Challenges
© Copyright 2014 Pivotal. All rights reserved. 33
Paying for your lunch…
• Significant Operations Overhead
• Substantial DevOps Skills Required
• Implicit Interfaces
• Duplication of Effort
• Distributed System Complexity
• Asynchronicity is Difficult!
• Testability Challenges
© Copyright 2014 Pivotal. All rights reserved. 34
Significant Operations Overhead
• Mitigate polyglot language/environment provisioning complexity via CF Buildpacks
• Mitigate failover and resilience concerns via CF Scale, CF Health Monitor, and future CF
App AZ’s (http://blog.gopivotal.com/cloud-foundry-pivotal/products/the-four-levels-of-
ha-in-pivotal-cf)
• Mitigate routing/load balancing and plumbing concerns via CF Router and CF Services
• High quality monitoring = CF BP agent-based tooling, future CF metric streams
• High quality operations infrastructure = CF BOSH!
• Robust release/deployment automation = CF API, scriptable CF CLI, Maven/Gradle
Plugins, Strong Cloudbees/Jenkins partnerships
© Copyright 2014 Pivotal. All rights reserved. 35
Currently, there is not much in terms of frameworks and open source tooling to
support this from an operational perspective. It's likely therefore that a team rolling out
Microservices will need to make significant investment in custom scripting or
development to manage these processes before they write a line of code that delivers
business value.
!
Operations is the most obvious and commonly held objection towards the model,
though it is too easily brushed aside by proponents of this architecture.
http://highscalability.com/blog/2014/4/8/microservices-not-a-free-lunch.html
© Copyright 2014 Pivotal. All rights reserved. 36
© Copyright 2014 Pivotal. All rights reserved.
No Open Source Tooling?
37
© Copyright 2014 Pivotal. All rights reserved. 38
Substantial DevOps Skills Required
• This is a Good Thing™ in any architecture!
• CF keeps your microservices up and available (and your
monoliths too!)
• CF = development and production parity!
• Polyglot persistence without all the fuss: CF BOSH and
Service Brokers
© Copyright 2014 Pivotal. All rights reserved. 39
Distributed System Complexity
• Agreed: Microservices imply distributed systems.
• All of the CF platform features we’ve discussed help to
mitigate these concerns:
• latent/unreliable networks
• fault tolerance
• load variability
© Copyright 2014 Pivotal. All rights reserved. 40
Testability Challenges
• With CF, it is NOT difficult to recreate environments in a
consistent way for either manual or automated testing!
• Idiomatic Microservices involves placing less emphasis on
testing and more on monitoring
• Not sure where this idea comes from…
• CF is an enabler of both!
© Copyright 2014 Pivotal. All rights reserved.
A Mutualistic Symbiotic Relationship
41
Cloud Foundry
Microservices
http://en.wikipedia.org/wiki/Symbiosis#Mutualism
A NEW PLATFORM FOR A NEW ERA

More Related Content

What's hot

Cloud Foundry Introduction and Overview
Cloud Foundry Introduction and OverviewCloud Foundry Introduction and Overview
Cloud Foundry Introduction and Overview
Andy Piper
 
Cloud foundry architecture and deep dive
Cloud foundry architecture and deep diveCloud foundry architecture and deep dive
Cloud foundry architecture and deep dive
Animesh Singh
 
Part 1: The Developer Experience (Pivotal Cloud Platform Roadshow)
Part 1: The Developer Experience (Pivotal Cloud Platform Roadshow)Part 1: The Developer Experience (Pivotal Cloud Platform Roadshow)
Part 1: The Developer Experience (Pivotal Cloud Platform Roadshow)
VMware Tanzu
 

What's hot (20)

Introducing Cloud Native, Event Driven, Serverless, Micrsoservices Framework ...
Introducing Cloud Native, Event Driven, Serverless, Micrsoservices Framework ...Introducing Cloud Native, Event Driven, Serverless, Micrsoservices Framework ...
Introducing Cloud Native, Event Driven, Serverless, Micrsoservices Framework ...
 
Cloud Foundry Overview
Cloud Foundry OverviewCloud Foundry Overview
Cloud Foundry Overview
 
Part 2: Architecture and the Operator Experience (Pivotal Cloud Platform Road...
Part 2: Architecture and the Operator Experience (Pivotal Cloud Platform Road...Part 2: Architecture and the Operator Experience (Pivotal Cloud Platform Road...
Part 2: Architecture and the Operator Experience (Pivotal Cloud Platform Road...
 
12 Factor, or Cloud Native Apps – What EXACTLY Does that Mean for Spring Deve...
12 Factor, or Cloud Native Apps – What EXACTLY Does that Mean for Spring Deve...12 Factor, or Cloud Native Apps – What EXACTLY Does that Mean for Spring Deve...
12 Factor, or Cloud Native Apps – What EXACTLY Does that Mean for Spring Deve...
 
Cloud Foundry Introduction and Overview
Cloud Foundry Introduction and OverviewCloud Foundry Introduction and Overview
Cloud Foundry Introduction and Overview
 
Cloud Foundry Compared With Other PaaSes (Cloud Foundry Summit 2014)
Cloud Foundry Compared With Other PaaSes (Cloud Foundry Summit 2014)Cloud Foundry Compared With Other PaaSes (Cloud Foundry Summit 2014)
Cloud Foundry Compared With Other PaaSes (Cloud Foundry Summit 2014)
 
Declarative Infrastructure with Cloud Foundry BOSH
Declarative Infrastructure with Cloud Foundry BOSHDeclarative Infrastructure with Cloud Foundry BOSH
Declarative Infrastructure with Cloud Foundry BOSH
 
Cloud foundry architecture and deep dive
Cloud foundry architecture and deep diveCloud foundry architecture and deep dive
Cloud foundry architecture and deep dive
 
Running your Spring Apps in the Cloud Javaone 2014
Running your Spring Apps in the Cloud Javaone 2014Running your Spring Apps in the Cloud Javaone 2014
Running your Spring Apps in the Cloud Javaone 2014
 
Cloud Foundry for PHP developers
Cloud Foundry for PHP developersCloud Foundry for PHP developers
Cloud Foundry for PHP developers
 
Cloudfoundry Introduction
Cloudfoundry IntroductionCloudfoundry Introduction
Cloudfoundry Introduction
 
Run your Java code on Cloud Foundry
Run your Java code on Cloud FoundryRun your Java code on Cloud Foundry
Run your Java code on Cloud Foundry
 
Architecture & Operations
Architecture & OperationsArchitecture & Operations
Architecture & Operations
 
Introduction to Platform-as-a-Service and Cloud Foundry
Introduction to Platform-as-a-Service and Cloud FoundryIntroduction to Platform-as-a-Service and Cloud Foundry
Introduction to Platform-as-a-Service and Cloud Foundry
 
Part 1: The Developer Experience (Pivotal Cloud Platform Roadshow)
Part 1: The Developer Experience (Pivotal Cloud Platform Roadshow)Part 1: The Developer Experience (Pivotal Cloud Platform Roadshow)
Part 1: The Developer Experience (Pivotal Cloud Platform Roadshow)
 
Cloud Foundry Technical Overview
Cloud Foundry Technical OverviewCloud Foundry Technical Overview
Cloud Foundry Technical Overview
 
What's new in Pivotal Cloud Foundry 1.6
What's new in Pivotal Cloud Foundry 1.6What's new in Pivotal Cloud Foundry 1.6
What's new in Pivotal Cloud Foundry 1.6
 
Pivotal cloud foundry introduction
Pivotal cloud foundry introductionPivotal cloud foundry introduction
Pivotal cloud foundry introduction
 
As a Service: Cloud Foundry on OpenStack - Lessons Learnt
As a Service: Cloud Foundry on OpenStack - Lessons LearntAs a Service: Cloud Foundry on OpenStack - Lessons Learnt
As a Service: Cloud Foundry on OpenStack - Lessons Learnt
 
Introduction into Cloud Foundry and Bosh | anynines
Introduction into Cloud Foundry and Bosh | anyninesIntroduction into Cloud Foundry and Bosh | anynines
Introduction into Cloud Foundry and Bosh | anynines
 

Similar to Cloud Foundry and Microservices: A Mutualistic Symbiotic Relationship

Similar to Cloud Foundry and Microservices: A Mutualistic Symbiotic Relationship (20)

Keynote: Architecting for Continuous Delivery (Pivotal Cloud Platform Roadshow)
Keynote: Architecting for Continuous Delivery (Pivotal Cloud Platform Roadshow)Keynote: Architecting for Continuous Delivery (Pivotal Cloud Platform Roadshow)
Keynote: Architecting for Continuous Delivery (Pivotal Cloud Platform Roadshow)
 
To Microservices and Beyond
To Microservices and BeyondTo Microservices and Beyond
To Microservices and Beyond
 
Pivotal cf for_devops_mkim_20141209
Pivotal cf for_devops_mkim_20141209Pivotal cf for_devops_mkim_20141209
Pivotal cf for_devops_mkim_20141209
 
The Cloud Foundry Story
The Cloud Foundry StoryThe Cloud Foundry Story
The Cloud Foundry Story
 
Cloud Roundtable | Pivoltal: Agile platform
Cloud Roundtable | Pivoltal: Agile platformCloud Roundtable | Pivoltal: Agile platform
Cloud Roundtable | Pivoltal: Agile platform
 
Made for Each Other: Microservices + PaaS
Made for Each Other: Microservices + PaaSMade for Each Other: Microservices + PaaS
Made for Each Other: Microservices + PaaS
 
Pivotal CF 소개
Pivotal CF 소개 Pivotal CF 소개
Pivotal CF 소개
 
Supercharge Your Application Delivery: The Journey to Enterprise PaaS
Supercharge Your Application Delivery: The Journey to Enterprise PaaSSupercharge Your Application Delivery: The Journey to Enterprise PaaS
Supercharge Your Application Delivery: The Journey to Enterprise PaaS
 
Supercharge Your Application Delivery
Supercharge Your Application DeliverySupercharge Your Application Delivery
Supercharge Your Application Delivery
 
PCF Cloud-Native Workshop Slides
PCF Cloud-Native Workshop SlidesPCF Cloud-Native Workshop Slides
PCF Cloud-Native Workshop Slides
 
Ahead conference keynote deck, The Journey to Enterprise PaaS with Cloud Foun...
Ahead conference keynote deck, The Journey to Enterprise PaaS with Cloud Foun...Ahead conference keynote deck, The Journey to Enterprise PaaS with Cloud Foun...
Ahead conference keynote deck, The Journey to Enterprise PaaS with Cloud Foun...
 
Development on Cloud,PaaS and SDDC
Development on Cloud,PaaS and SDDCDevelopment on Cloud,PaaS and SDDC
Development on Cloud,PaaS and SDDC
 
Pivotal CenturyLink Cloud Platform Seminar Presentations: Architecture & Oper...
Pivotal CenturyLink Cloud Platform Seminar Presentations: Architecture & Oper...Pivotal CenturyLink Cloud Platform Seminar Presentations: Architecture & Oper...
Pivotal CenturyLink Cloud Platform Seminar Presentations: Architecture & Oper...
 
A proven path for migrating from clearcase to git and or subversion
A proven path for migrating from clearcase to git and or subversionA proven path for migrating from clearcase to git and or subversion
A proven path for migrating from clearcase to git and or subversion
 
Development on cloud_paa_s_sddc_mkim_20141216_final
Development on cloud_paa_s_sddc_mkim_20141216_finalDevelopment on cloud_paa_s_sddc_mkim_20141216_final
Development on cloud_paa_s_sddc_mkim_20141216_final
 
WHISHWORKS-MuleSoft Hyderabad Meetup -April 2019
WHISHWORKS-MuleSoft Hyderabad Meetup -April 2019WHISHWORKS-MuleSoft Hyderabad Meetup -April 2019
WHISHWORKS-MuleSoft Hyderabad Meetup -April 2019
 
The New Possible: How Platform-as-a-Service Changes the Game
 The New Possible: How Platform-as-a-Service Changes the Game The New Possible: How Platform-as-a-Service Changes the Game
The New Possible: How Platform-as-a-Service Changes the Game
 
A DevOps adoption playbook- achieving business value at scale
A DevOps adoption playbook- achieving business value at scaleA DevOps adoption playbook- achieving business value at scale
A DevOps adoption playbook- achieving business value at scale
 
Does Big Data Spell Big Costs- Impetus Webinar
Does Big Data Spell Big Costs- Impetus WebinarDoes Big Data Spell Big Costs- Impetus Webinar
Does Big Data Spell Big Costs- Impetus Webinar
 
Unlock Your VMW IaaS Investment with Pivotal CF - VMWorld 2014
Unlock Your VMW IaaS Investment with Pivotal CF - VMWorld 2014Unlock Your VMW IaaS Investment with Pivotal CF - VMWorld 2014
Unlock Your VMW IaaS Investment with Pivotal CF - VMWorld 2014
 

More from Matt Stine

Cloud Foundry Diego: Modular and Extensible Substructure for Microservices
Cloud Foundry Diego: Modular and Extensible Substructure for MicroservicesCloud Foundry Diego: Modular and Extensible Substructure for Microservices
Cloud Foundry Diego: Modular and Extensible Substructure for Microservices
Matt Stine
 
Information Sciences Solutions to Core Facility Problems at St. Jude Children...
Information Sciences Solutions to Core Facility Problems at St. Jude Children...Information Sciences Solutions to Core Facility Problems at St. Jude Children...
Information Sciences Solutions to Core Facility Problems at St. Jude Children...
Matt Stine
 

More from Matt Stine (20)

Architectures That Bend but Don't Break
Architectures That Bend but Don't BreakArchitectures That Bend but Don't Break
Architectures That Bend but Don't Break
 
Cloud Native Architecture Patterns Tutorial
Cloud Native Architecture Patterns TutorialCloud Native Architecture Patterns Tutorial
Cloud Native Architecture Patterns Tutorial
 
Resilient Architecture
Resilient ArchitectureResilient Architecture
Resilient Architecture
 
Cloud Foundry: The Best Place to Run Microservices
Cloud Foundry: The Best Place to Run MicroservicesCloud Foundry: The Best Place to Run Microservices
Cloud Foundry: The Best Place to Run Microservices
 
Reactive Fault Tolerant Programming with Hystrix and RxJava
Reactive Fault Tolerant Programming with Hystrix and RxJavaReactive Fault Tolerant Programming with Hystrix and RxJava
Reactive Fault Tolerant Programming with Hystrix and RxJava
 
Lattice: A Cloud-Native Platform for Your Spring Applications
Lattice: A Cloud-Native Platform for Your Spring ApplicationsLattice: A Cloud-Native Platform for Your Spring Applications
Lattice: A Cloud-Native Platform for Your Spring Applications
 
The Cloud Native Journey
The Cloud Native JourneyThe Cloud Native Journey
The Cloud Native Journey
 
To Microservices and Beyond
To Microservices and BeyondTo Microservices and Beyond
To Microservices and Beyond
 
Deploying Microservices to Cloud Foundry
Deploying Microservices to Cloud FoundryDeploying Microservices to Cloud Foundry
Deploying Microservices to Cloud Foundry
 
Cloud Foundry Diego: Modular and Extensible Substructure for Microservices
Cloud Foundry Diego: Modular and Extensible Substructure for MicroservicesCloud Foundry Diego: Modular and Extensible Substructure for Microservices
Cloud Foundry Diego: Modular and Extensible Substructure for Microservices
 
Building Distributed Systems with Netflix OSS and Spring Cloud
Building Distributed Systems with Netflix OSS and Spring CloudBuilding Distributed Systems with Netflix OSS and Spring Cloud
Building Distributed Systems with Netflix OSS and Spring Cloud
 
Pivotal Cloud Platform Roadshow: Sign Up for Pivotal Web Services
Pivotal Cloud Platform Roadshow: Sign Up for Pivotal Web ServicesPivotal Cloud Platform Roadshow: Sign Up for Pivotal Web Services
Pivotal Cloud Platform Roadshow: Sign Up for Pivotal Web Services
 
A Recovering Java Developer Learns to Go
A Recovering Java Developer Learns to GoA Recovering Java Developer Learns to Go
A Recovering Java Developer Learns to Go
 
Agile Development with OSGi
Agile Development with OSGiAgile Development with OSGi
Agile Development with OSGi
 
It's the End of the Cloud as We Know It
It's the End of the Cloud as We Know ItIt's the End of the Cloud as We Know It
It's the End of the Cloud as We Know It
 
Vert.x
Vert.xVert.x
Vert.x
 
Functional solid
Functional solidFunctional solid
Functional solid
 
The Seven Wastes of Software Development
The Seven Wastes of Software DevelopmentThe Seven Wastes of Software Development
The Seven Wastes of Software Development
 
Information Sciences Solutions to Core Facility Problems at St. Jude Children...
Information Sciences Solutions to Core Facility Problems at St. Jude Children...Information Sciences Solutions to Core Facility Problems at St. Jude Children...
Information Sciences Solutions to Core Facility Problems at St. Jude Children...
 
Achieve Your Goals
Achieve Your GoalsAchieve Your Goals
Achieve Your Goals
 

Recently uploaded

Tales from a Passkey Provider Progress from Awareness to Implementation.pptx
Tales from a Passkey Provider  Progress from Awareness to Implementation.pptxTales from a Passkey Provider  Progress from Awareness to Implementation.pptx
Tales from a Passkey Provider Progress from Awareness to Implementation.pptx
FIDO Alliance
 
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
TrustArc
 
Revolutionizing SAP® Processes with Automation and Artificial Intelligence
Revolutionizing SAP® Processes with Automation and Artificial IntelligenceRevolutionizing SAP® Processes with Automation and Artificial Intelligence
Revolutionizing SAP® Processes with Automation and Artificial Intelligence
Precisely
 

Recently uploaded (20)

Design Guidelines for Passkeys 2024.pptx
Design Guidelines for Passkeys 2024.pptxDesign Guidelines for Passkeys 2024.pptx
Design Guidelines for Passkeys 2024.pptx
 
Tales from a Passkey Provider Progress from Awareness to Implementation.pptx
Tales from a Passkey Provider  Progress from Awareness to Implementation.pptxTales from a Passkey Provider  Progress from Awareness to Implementation.pptx
Tales from a Passkey Provider Progress from Awareness to Implementation.pptx
 
Microsoft CSP Briefing Pre-Engagement - Questionnaire
Microsoft CSP Briefing Pre-Engagement - QuestionnaireMicrosoft CSP Briefing Pre-Engagement - Questionnaire
Microsoft CSP Briefing Pre-Engagement - Questionnaire
 
WebAssembly is Key to Better LLM Performance
WebAssembly is Key to Better LLM PerformanceWebAssembly is Key to Better LLM Performance
WebAssembly is Key to Better LLM Performance
 
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
 
How to Check CNIC Information Online with Pakdata cf
How to Check CNIC Information Online with Pakdata cfHow to Check CNIC Information Online with Pakdata cf
How to Check CNIC Information Online with Pakdata cf
 
Continuing Bonds Through AI: A Hermeneutic Reflection on Thanabots
Continuing Bonds Through AI: A Hermeneutic Reflection on ThanabotsContinuing Bonds Through AI: A Hermeneutic Reflection on Thanabots
Continuing Bonds Through AI: A Hermeneutic Reflection on Thanabots
 
Portal Kombat : extension du réseau de propagande russe
Portal Kombat : extension du réseau de propagande russePortal Kombat : extension du réseau de propagande russe
Portal Kombat : extension du réseau de propagande russe
 
ERP Contender Series: Acumatica vs. Sage Intacct
ERP Contender Series: Acumatica vs. Sage IntacctERP Contender Series: Acumatica vs. Sage Intacct
ERP Contender Series: Acumatica vs. Sage Intacct
 
Introduction to FIDO Authentication and Passkeys.pptx
Introduction to FIDO Authentication and Passkeys.pptxIntroduction to FIDO Authentication and Passkeys.pptx
Introduction to FIDO Authentication and Passkeys.pptx
 
WebRTC and SIP not just audio and video @ OpenSIPS 2024
WebRTC and SIP not just audio and video @ OpenSIPS 2024WebRTC and SIP not just audio and video @ OpenSIPS 2024
WebRTC and SIP not just audio and video @ OpenSIPS 2024
 
Frisco Automating Purchase Orders with MuleSoft IDP- May 10th, 2024.pptx.pdf
Frisco Automating Purchase Orders with MuleSoft IDP- May 10th, 2024.pptx.pdfFrisco Automating Purchase Orders with MuleSoft IDP- May 10th, 2024.pptx.pdf
Frisco Automating Purchase Orders with MuleSoft IDP- May 10th, 2024.pptx.pdf
 
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
 
Revolutionizing SAP® Processes with Automation and Artificial Intelligence
Revolutionizing SAP® Processes with Automation and Artificial IntelligenceRevolutionizing SAP® Processes with Automation and Artificial Intelligence
Revolutionizing SAP® Processes with Automation and Artificial Intelligence
 
Long journey of Ruby Standard library at RubyKaigi 2024
Long journey of Ruby Standard library at RubyKaigi 2024Long journey of Ruby Standard library at RubyKaigi 2024
Long journey of Ruby Standard library at RubyKaigi 2024
 
Oauth 2.0 Introduction and Flows with MuleSoft
Oauth 2.0 Introduction and Flows with MuleSoftOauth 2.0 Introduction and Flows with MuleSoft
Oauth 2.0 Introduction and Flows with MuleSoft
 
Human Expert Website Manual WCAG 2.0 2.1 2.2 Audit - Digital Accessibility Au...
Human Expert Website Manual WCAG 2.0 2.1 2.2 Audit - Digital Accessibility Au...Human Expert Website Manual WCAG 2.0 2.1 2.2 Audit - Digital Accessibility Au...
Human Expert Website Manual WCAG 2.0 2.1 2.2 Audit - Digital Accessibility Au...
 
TopCryptoSupers 12thReport OrionX May2024
TopCryptoSupers 12thReport OrionX May2024TopCryptoSupers 12thReport OrionX May2024
TopCryptoSupers 12thReport OrionX May2024
 
ADP Passwordless Journey Case Study.pptx
ADP Passwordless Journey Case Study.pptxADP Passwordless Journey Case Study.pptx
ADP Passwordless Journey Case Study.pptx
 
ChatGPT and Beyond - Elevating DevOps Productivity
ChatGPT and Beyond - Elevating DevOps ProductivityChatGPT and Beyond - Elevating DevOps Productivity
ChatGPT and Beyond - Elevating DevOps Productivity
 

Cloud Foundry and Microservices: A Mutualistic Symbiotic Relationship

  • 1. © Copyright 2014 Pivotal. All rights reserved.© Copyright 2014 Pivotal. All rights reserved. Cloud Foundry and Microservices A Mutualistic Symbiotic Relationship 1 Matt Stine Cloud Foundry Platform Engineer CF Summit 2014
  • 2. © Copyright 2014 Pivotal. All rights reserved. 2 “Software Keeps Eating the World”
  • 3. © Copyright 2014 Pivotal. All rights reserved. 3 Software Keeps Changing Industries $3.5B valuation Financial Services $3.5B valuation Travel & Hospitality $3.5B valuation Transportation $3.2B Acquisition by Google Home Automation $20B valuation Entertainment $26B valuation Tesla--Automotive $19.5B
  • 4. © Copyright 2014 Pivotal. All rights reserved. 4 Warner Music: Software Factories Warner Software Factory Platform • New applications and major updates - Before: 6 months, team of 10 developers - After: 6 weeks, same team - Speed/Agility: 400% faster on new platform - HR Hard Savings: $1.1M per application update delivered
  • 5. © Copyright 2014 Pivotal. All rights reserved. 5 Iterative Development Design Develop Test Customer Feedback Customer Delivery Analytics
  • 6. © Copyright 2014 Pivotal. All rights reserved. Horizontal Scale 6 Slow/Expensive Fast/Cheap
  • 7. © Copyright 2014 Pivotal. All rights reserved. Diversity of Clients 7 http://money.cnn.com/2014/02/28/technology/mobile/mobile-apps-internet/ In January 2014, mobile devices accounted for 55% of Internet usage in the United States. Apps made up 47% of Internet traffic and 8% of traffic came from mobile browsers.
  • 8. © Copyright 2014 Pivotal. All rights reserved. 8 Continuous Delivery
  • 9. © Copyright 2014 Pivotal. All rights reserved. 9 Software Factories Feedback Rapid Iteration Horizontal Scale Diversity of Clients Continuous Delivery Infrastructure Applications Monoliths Microservices Physical/Virtual Cloud Foundry
  • 10. © Copyright 2014 Pivotal. All rights reserved. 10 New Architectural Constraints • CF optimizes for 12 Factor Linux applications • Microservices: a radical departure from traditional monolithic applications • In both cases, the enterprise is 
 forced to “think different.”
  • 11. © Copyright 2014 Pivotal. All rights reserved. How XP Practices Support Each Other 11 http://www.kusmin.eu/wiki/index.php/How_XP_Practices_Support_Each_Other
  • 12. © Copyright 2014 Pivotal. All rights reserved. A Mutualistic Symbiotic Relationship… 12 Cloud Foundry Microservices http://en.wikipedia.org/wiki/Symbiosis#Mutualism
  • 13. © Copyright 2014 Pivotal. All rights reserved.© Copyright 2014 Pivotal. All rights reserved. Microservices Overview 13
  • 14. © Copyright 2014 Pivotal. All rights reserved. 14 Simple vs. Easy • Simple • sim- plex • one fold/braid • vs complex • Easy • ease < aise < adjacens • lie near • vs hard
  • 15. © Copyright 2014 Pivotal. All rights reserved. Monolithic Architecture 15 Relational Database Data Access Service HTML JavaScript MVC Service Monolithic ApplicationBrowser
  • 16. © Copyright 2014 Pivotal. All rights reserved. 16 Monolithic Architectures • Complex / Easy • Modularity Dependent Upon Language / Frameworks • Change Cycles Tightly Coupled / Obstacle to Frequent Deploys • Inefficient Scaling • Can Be Intimidating to New Developers • Obstacle to Scaling Development • Requires Long-Term Commitment to Technical Stack
  • 17. © Copyright 2014 Pivotal. All rights reserved. Microservice Architecture 17 … HTTP HTTP HTTP HTTP HTTP HTTP AMQP AMQP Relational DB Key/Value Store Graph DB
  • 18. © Copyright 2014 Pivotal. All rights reserved. 18 Microservice Architectures • Simple / Hard • Modularity Based on Component Services • Change Cycles Decoupled / Enable Frequent Deploys • Efficient Scaling • Individual Components Less Intimidating to New Developers • Enables Scaling of Development • Eliminates Long-Term Commitment to Technical Stack
  • 19. © Copyright 2014 Pivotal. All rights reserved. Conway’s Law 19 Any organization that designs a system (defined broadly) will produce a design whose structure is a copy of the organization's communication structure. Melvyn Conway, 1967 http://martinfowler.com/articles/microservices.html#OrganizedAroundBusinessCapabilities
  • 20. © Copyright 2014 Pivotal. All rights reserved. Organize Around Business Capabilities 20 Data Access Service HTML JavaScript MVC Service UISpecialists Middleware Specialists DBAs BusinessCapability BusinessCapability BusinessCapability Siloed Functional Teams http://martinfowler.com/articles/microservices.html#OrganizedAroundBusinessCapabilities Siloed Application Architectures Cross- functional Teams Microservice Architectures
  • 21. © Copyright 2014 Pivotal. All rights reserved. 21 Partitioning Strategies • By Noun (e.g. product info service) • By Verb (e.g. shipping service) • Single Responsibility Principle
 (http://programmer.97things.oreilly.com/wiki/index.php/ The_Single_Responsibility_Principle)
  • 22. © Copyright 2014 Pivotal. All rights reserved. 22 UNIX Pipes and Filters cut -d" " -f1 < access.log | sort | uniq -c | sort -rn | less
  • 23. © Copyright 2014 Pivotal. All rights reserved. Choreography over Orchestration 23 https://www.flickr.com/photos/gabrielsaldana/5896491978 https://www.flickr.com/photos/chrisbrenschmidt/2223763842 http://martinfowler.com/articles/microservices.html#SmartEndpointsAndDumbPipes
  • 24. © Copyright 2014 Pivotal. All rights reserved.© Copyright 2014 Pivotal. All rights reserved. 24 Overview http://12factor.net
  • 25. © Copyright 2014 Pivotal. All rights reserved. 25 Twelve Factor + Cloud Foundry • One codebase tracked in revision control, many deploys • Multiple = Distributed System • Consistent with CF application unit • Explicitly declare and isolate dependencies • CF emphasis on deployable units (e.g. Java WAR) • CF Buildpacks provide runtime dependencies
  • 26. © Copyright 2014 Pivotal. All rights reserved. 26 Twelve Factor + Cloud Foundry • Store config in the environment • Nicely facilitated via CF • Treat backing services as attached resources • cf create-service / cf bind-service • Strictly separate build and run stages • CF Buildpacks + immutable Warden containers
  • 27. © Copyright 2014 Pivotal. All rights reserved. 27 Twelve Factor + Cloud Foundry • Execute the app as one or more stateless processes • CF Warden containers - no clustered memory, no shared FS. • Challenge for the monolith! • Export services via port binding • CF provides HTTP/HTTPS today, more future (TCP?) • Scale out via the process model • cf scale app -i 1000
  • 28. © Copyright 2014 Pivotal. All rights reserved. 28 Twelve Factor + Cloud Foundry • Maximize robustness with fast startup and graceful shutdown • CF scales quickly, but can only move as fast as your app can bootstrap (challenge for the monolith!) • Keep development, staging, and production as similar as possible • CF is CF! Spaces provide separation of concerns without technical differences.
  • 29. © Copyright 2014 Pivotal. All rights reserved. 29 Twelve Factor + Cloud Foundry • Treat logs as event streams • CF Loggregator! • Run admin/management tasks as one-off processes • Still a challenge to be addressed…
  • 30. © Copyright 2014 Pivotal. All rights reserved. 30 Twelve Factor + Microservices • Fully compatible architectural style • Frameworks tend to optimize around same ideas • Examples: • Spring Boot + Cloud • http://projects.spring.io/spring-boot • http://projects.spring.io/spring-cloud • Dropwizard (https://dropwizard.github.io/dropwizard)
  • 31. © Copyright 2014 Pivotal. All rights reserved.© Copyright 2014 Pivotal. All rights reserved. 31 http://highscalability.com/blog/2014/4/8/microservices-not-a-free-lunch.html
  • 32. © Copyright 2014 Pivotal. All rights reserved. 32 Paying for your lunch… • Significant Operations Overhead • Substantial DevOps Skills Required • Implicit Interfaces • Duplication of Effort • Distributed System Complexity • Asynchronicity is Difficult! • Testability Challenges
  • 33. © Copyright 2014 Pivotal. All rights reserved. 33 Paying for your lunch… • Significant Operations Overhead • Substantial DevOps Skills Required • Implicit Interfaces • Duplication of Effort • Distributed System Complexity • Asynchronicity is Difficult! • Testability Challenges
  • 34. © Copyright 2014 Pivotal. All rights reserved. 34 Significant Operations Overhead • Mitigate polyglot language/environment provisioning complexity via CF Buildpacks • Mitigate failover and resilience concerns via CF Scale, CF Health Monitor, and future CF App AZ’s (http://blog.gopivotal.com/cloud-foundry-pivotal/products/the-four-levels-of- ha-in-pivotal-cf) • Mitigate routing/load balancing and plumbing concerns via CF Router and CF Services • High quality monitoring = CF BP agent-based tooling, future CF metric streams • High quality operations infrastructure = CF BOSH! • Robust release/deployment automation = CF API, scriptable CF CLI, Maven/Gradle Plugins, Strong Cloudbees/Jenkins partnerships
  • 35. © Copyright 2014 Pivotal. All rights reserved. 35 Currently, there is not much in terms of frameworks and open source tooling to support this from an operational perspective. It's likely therefore that a team rolling out Microservices will need to make significant investment in custom scripting or development to manage these processes before they write a line of code that delivers business value. ! Operations is the most obvious and commonly held objection towards the model, though it is too easily brushed aside by proponents of this architecture. http://highscalability.com/blog/2014/4/8/microservices-not-a-free-lunch.html
  • 36. © Copyright 2014 Pivotal. All rights reserved. 36
  • 37. © Copyright 2014 Pivotal. All rights reserved. No Open Source Tooling? 37
  • 38. © Copyright 2014 Pivotal. All rights reserved. 38 Substantial DevOps Skills Required • This is a Good Thing™ in any architecture! • CF keeps your microservices up and available (and your monoliths too!) • CF = development and production parity! • Polyglot persistence without all the fuss: CF BOSH and Service Brokers
  • 39. © Copyright 2014 Pivotal. All rights reserved. 39 Distributed System Complexity • Agreed: Microservices imply distributed systems. • All of the CF platform features we’ve discussed help to mitigate these concerns: • latent/unreliable networks • fault tolerance • load variability
  • 40. © Copyright 2014 Pivotal. All rights reserved. 40 Testability Challenges • With CF, it is NOT difficult to recreate environments in a consistent way for either manual or automated testing! • Idiomatic Microservices involves placing less emphasis on testing and more on monitoring • Not sure where this idea comes from… • CF is an enabler of both!
  • 41. © Copyright 2014 Pivotal. All rights reserved. A Mutualistic Symbiotic Relationship 41 Cloud Foundry Microservices http://en.wikipedia.org/wiki/Symbiosis#Mutualism
  • 42. A NEW PLATFORM FOR A NEW ERA