microservices: why, what, and how to get there -...
TRANSCRIPT
![Page 1: Microservices: Why, what, and how to get there - Meetupfiles.meetup.com/...CockCroft-Presentation-Microservices-Boston.pdf · Microservices: Why, what, and how to get there Adrian](https://reader031.vdocument.in/reader031/viewer/2022013009/5eca4fa03e03014e8747efaf/html5/thumbnails/1.jpg)
Microservices: Why, what, and how to get there
Adrian Cockcroft @adriancoTechnology Fellow - Battery Ventures
March 2016
![Page 2: Microservices: Why, what, and how to get there - Meetupfiles.meetup.com/...CockCroft-Presentation-Microservices-Boston.pdf · Microservices: Why, what, and how to get there Adrian](https://reader031.vdocument.in/reader031/viewer/2022013009/5eca4fa03e03014e8747efaf/html5/thumbnails/2.jpg)
What does @adrianco do?
@adrianco
Technology Due Diligence on Deals
Presentations at Conferences
Presentations at Companies
Technical Advice for Portfolio
Companies
Program Committee for Conferences
Networking with Interesting PeopleTinkering with
Technologies
Maintain Relationship with Cloud Vendors
![Page 3: Microservices: Why, what, and how to get there - Meetupfiles.meetup.com/...CockCroft-Presentation-Microservices-Boston.pdf · Microservices: Why, what, and how to get there Adrian](https://reader031.vdocument.in/reader031/viewer/2022013009/5eca4fa03e03014e8747efaf/html5/thumbnails/3.jpg)
Why am I here?
%*&!”
By Simon Wardley http://enterpriseitadoption.com/
![Page 4: Microservices: Why, what, and how to get there - Meetupfiles.meetup.com/...CockCroft-Presentation-Microservices-Boston.pdf · Microservices: Why, what, and how to get there Adrian](https://reader031.vdocument.in/reader031/viewer/2022013009/5eca4fa03e03014e8747efaf/html5/thumbnails/4.jpg)
Why am I here?
%*&!”
By Simon Wardley http://enterpriseitadoption.com/
2009
![Page 5: Microservices: Why, what, and how to get there - Meetupfiles.meetup.com/...CockCroft-Presentation-Microservices-Boston.pdf · Microservices: Why, what, and how to get there Adrian](https://reader031.vdocument.in/reader031/viewer/2022013009/5eca4fa03e03014e8747efaf/html5/thumbnails/5.jpg)
Why am I here?
%*&!”
By Simon Wardley http://enterpriseitadoption.com/
2009
![Page 6: Microservices: Why, what, and how to get there - Meetupfiles.meetup.com/...CockCroft-Presentation-Microservices-Boston.pdf · Microservices: Why, what, and how to get there Adrian](https://reader031.vdocument.in/reader031/viewer/2022013009/5eca4fa03e03014e8747efaf/html5/thumbnails/6.jpg)
Why am I here?
@adrianco’s job at the intersection of cloud and Enterprise IT, looking for disruption and opportunities.
%*&!”
By Simon Wardley http://enterpriseitadoption.com/
20142009
Disruptions in 2016 coming from server-less computing and teraservices.
![Page 7: Microservices: Why, what, and how to get there - Meetupfiles.meetup.com/...CockCroft-Presentation-Microservices-Boston.pdf · Microservices: Why, what, and how to get there Adrian](https://reader031.vdocument.in/reader031/viewer/2022013009/5eca4fa03e03014e8747efaf/html5/thumbnails/7.jpg)
What I learned from my time at Netflix
![Page 8: Microservices: Why, what, and how to get there - Meetupfiles.meetup.com/...CockCroft-Presentation-Microservices-Boston.pdf · Microservices: Why, what, and how to get there Adrian](https://reader031.vdocument.in/reader031/viewer/2022013009/5eca4fa03e03014e8747efaf/html5/thumbnails/8.jpg)
What I learned from my time at Netflix
•Speed wins in the marketplace
![Page 9: Microservices: Why, what, and how to get there - Meetupfiles.meetup.com/...CockCroft-Presentation-Microservices-Boston.pdf · Microservices: Why, what, and how to get there Adrian](https://reader031.vdocument.in/reader031/viewer/2022013009/5eca4fa03e03014e8747efaf/html5/thumbnails/9.jpg)
What I learned from my time at Netflix
•Speed wins in the marketplace•Remove friction from product development
![Page 10: Microservices: Why, what, and how to get there - Meetupfiles.meetup.com/...CockCroft-Presentation-Microservices-Boston.pdf · Microservices: Why, what, and how to get there Adrian](https://reader031.vdocument.in/reader031/viewer/2022013009/5eca4fa03e03014e8747efaf/html5/thumbnails/10.jpg)
What I learned from my time at Netflix
•Speed wins in the marketplace•Remove friction from product development•High trust, low process, no hand-offs between teams
![Page 11: Microservices: Why, what, and how to get there - Meetupfiles.meetup.com/...CockCroft-Presentation-Microservices-Boston.pdf · Microservices: Why, what, and how to get there Adrian](https://reader031.vdocument.in/reader031/viewer/2022013009/5eca4fa03e03014e8747efaf/html5/thumbnails/11.jpg)
What I learned from my time at Netflix
•Speed wins in the marketplace•Remove friction from product development•High trust, low process, no hand-offs between teams•Freedom and responsibility culture
![Page 12: Microservices: Why, what, and how to get there - Meetupfiles.meetup.com/...CockCroft-Presentation-Microservices-Boston.pdf · Microservices: Why, what, and how to get there Adrian](https://reader031.vdocument.in/reader031/viewer/2022013009/5eca4fa03e03014e8747efaf/html5/thumbnails/12.jpg)
What I learned from my time at Netflix
•Speed wins in the marketplace•Remove friction from product development•High trust, low process, no hand-offs between teams•Freedom and responsibility culture•Don’t do your own undifferentiated heavy lifting
![Page 13: Microservices: Why, what, and how to get there - Meetupfiles.meetup.com/...CockCroft-Presentation-Microservices-Boston.pdf · Microservices: Why, what, and how to get there Adrian](https://reader031.vdocument.in/reader031/viewer/2022013009/5eca4fa03e03014e8747efaf/html5/thumbnails/13.jpg)
What I learned from my time at Netflix
•Speed wins in the marketplace•Remove friction from product development•High trust, low process, no hand-offs between teams•Freedom and responsibility culture•Don’t do your own undifferentiated heavy lifting•Use simple patterns automated by tooling
![Page 14: Microservices: Why, what, and how to get there - Meetupfiles.meetup.com/...CockCroft-Presentation-Microservices-Boston.pdf · Microservices: Why, what, and how to get there Adrian](https://reader031.vdocument.in/reader031/viewer/2022013009/5eca4fa03e03014e8747efaf/html5/thumbnails/14.jpg)
What I learned from my time at Netflix
•Speed wins in the marketplace•Remove friction from product development•High trust, low process, no hand-offs between teams•Freedom and responsibility culture•Don’t do your own undifferentiated heavy lifting•Use simple patterns automated by tooling•Self service cloud makes impossible things instant
![Page 15: Microservices: Why, what, and how to get there - Meetupfiles.meetup.com/...CockCroft-Presentation-Microservices-Boston.pdf · Microservices: Why, what, and how to get there Adrian](https://reader031.vdocument.in/reader031/viewer/2022013009/5eca4fa03e03014e8747efaf/html5/thumbnails/15.jpg)
“You build it, you run it.” Werner Vogels 2006
![Page 16: Microservices: Why, what, and how to get there - Meetupfiles.meetup.com/...CockCroft-Presentation-Microservices-Boston.pdf · Microservices: Why, what, and how to get there Adrian](https://reader031.vdocument.in/reader031/viewer/2022013009/5eca4fa03e03014e8747efaf/html5/thumbnails/16.jpg)
In 2014 Enterprises finally embraced public cloud and in 2015 began replacing entire datacenters.
![Page 17: Microservices: Why, what, and how to get there - Meetupfiles.meetup.com/...CockCroft-Presentation-Microservices-Boston.pdf · Microservices: Why, what, and how to get there Adrian](https://reader031.vdocument.in/reader031/viewer/2022013009/5eca4fa03e03014e8747efaf/html5/thumbnails/17.jpg)
In 2014 Enterprises finally embraced public cloud and in 2015 began replacing entire datacenters.
Oct 2014
![Page 18: Microservices: Why, what, and how to get there - Meetupfiles.meetup.com/...CockCroft-Presentation-Microservices-Boston.pdf · Microservices: Why, what, and how to get there Adrian](https://reader031.vdocument.in/reader031/viewer/2022013009/5eca4fa03e03014e8747efaf/html5/thumbnails/18.jpg)
In 2014 Enterprises finally embraced public cloud and in 2015 began replacing entire datacenters.
Oct 2014 Oct 2015
![Page 19: Microservices: Why, what, and how to get there - Meetupfiles.meetup.com/...CockCroft-Presentation-Microservices-Boston.pdf · Microservices: Why, what, and how to get there Adrian](https://reader031.vdocument.in/reader031/viewer/2022013009/5eca4fa03e03014e8747efaf/html5/thumbnails/19.jpg)
In 2014 Enterprises finally embraced public cloud and in 2015 began replacing entire datacenters.
Oct 2014 Oct 2015
![Page 20: Microservices: Why, what, and how to get there - Meetupfiles.meetup.com/...CockCroft-Presentation-Microservices-Boston.pdf · Microservices: Why, what, and how to get there Adrian](https://reader031.vdocument.in/reader031/viewer/2022013009/5eca4fa03e03014e8747efaf/html5/thumbnails/20.jpg)
Key Goals of the CIO? Align IT with the business Develop products faster Try not to get breached
![Page 21: Microservices: Why, what, and how to get there - Meetupfiles.meetup.com/...CockCroft-Presentation-Microservices-Boston.pdf · Microservices: Why, what, and how to get there Adrian](https://reader031.vdocument.in/reader031/viewer/2022013009/5eca4fa03e03014e8747efaf/html5/thumbnails/21.jpg)
Security Blanket Failure
Insecure applications hidden behind firewalls make you feel safe until the breach happens…
http://peanuts.wikia.com/wiki/Linus'_security_blanket
![Page 22: Microservices: Why, what, and how to get there - Meetupfiles.meetup.com/...CockCroft-Presentation-Microservices-Boston.pdf · Microservices: Why, what, and how to get there Adrian](https://reader031.vdocument.in/reader031/viewer/2022013009/5eca4fa03e03014e8747efaf/html5/thumbnails/22.jpg)
What needs to change?
![Page 23: Microservices: Why, what, and how to get there - Meetupfiles.meetup.com/...CockCroft-Presentation-Microservices-Boston.pdf · Microservices: Why, what, and how to get there Adrian](https://reader031.vdocument.in/reader031/viewer/2022013009/5eca4fa03e03014e8747efaf/html5/thumbnails/23.jpg)
Developer responsibilities: Faster, cheaper, safer
![Page 24: Microservices: Why, what, and how to get there - Meetupfiles.meetup.com/...CockCroft-Presentation-Microservices-Boston.pdf · Microservices: Why, what, and how to get there Adrian](https://reader031.vdocument.in/reader031/viewer/2022013009/5eca4fa03e03014e8747efaf/html5/thumbnails/24.jpg)
Value Chain Mapping
Simon Wardley http://blog.gardeviance.org/2014/11/how-to-get-to-strategy-in-ten-steps.html Related tools and training http://www.wardleymaps.com/
![Page 25: Microservices: Why, what, and how to get there - Meetupfiles.meetup.com/...CockCroft-Presentation-Microservices-Boston.pdf · Microservices: Why, what, and how to get there Adrian](https://reader031.vdocument.in/reader031/viewer/2022013009/5eca4fa03e03014e8747efaf/html5/thumbnails/25.jpg)
Value Chain Mapping
Simon Wardley http://blog.gardeviance.org/2014/11/how-to-get-to-strategy-in-ten-steps.html Related tools and training http://www.wardleymaps.com/
Your unique product - Agile
![Page 26: Microservices: Why, what, and how to get there - Meetupfiles.meetup.com/...CockCroft-Presentation-Microservices-Boston.pdf · Microservices: Why, what, and how to get there Adrian](https://reader031.vdocument.in/reader031/viewer/2022013009/5eca4fa03e03014e8747efaf/html5/thumbnails/26.jpg)
Value Chain Mapping
Simon Wardley http://blog.gardeviance.org/2014/11/how-to-get-to-strategy-in-ten-steps.html Related tools and training http://www.wardleymaps.com/
Your unique product - Agile Best of breed as a Service - Lean
![Page 27: Microservices: Why, what, and how to get there - Meetupfiles.meetup.com/...CockCroft-Presentation-Microservices-Boston.pdf · Microservices: Why, what, and how to get there Adrian](https://reader031.vdocument.in/reader031/viewer/2022013009/5eca4fa03e03014e8747efaf/html5/thumbnails/27.jpg)
Value Chain Mapping
Simon Wardley http://blog.gardeviance.org/2014/11/how-to-get-to-strategy-in-ten-steps.html Related tools and training http://www.wardleymaps.com/
Your unique product - Agile
Undifferentiated utility suppliers - 6sigma
Best of breed as a Service - Lean
![Page 28: Microservices: Why, what, and how to get there - Meetupfiles.meetup.com/...CockCroft-Presentation-Microservices-Boston.pdf · Microservices: Why, what, and how to get there Adrian](https://reader031.vdocument.in/reader031/viewer/2022013009/5eca4fa03e03014e8747efaf/html5/thumbnails/28.jpg)
Observe
Orient
Decide
Act Continuous Delivery
![Page 29: Microservices: Why, what, and how to get there - Meetupfiles.meetup.com/...CockCroft-Presentation-Microservices-Boston.pdf · Microservices: Why, what, and how to get there Adrian](https://reader031.vdocument.in/reader031/viewer/2022013009/5eca4fa03e03014e8747efaf/html5/thumbnails/29.jpg)
Observe
Orient
Decide
Act
Land grab opportunity Competitive
Move
Customer Pain Point
Measure Customers
Continuous Delivery
![Page 30: Microservices: Why, what, and how to get there - Meetupfiles.meetup.com/...CockCroft-Presentation-Microservices-Boston.pdf · Microservices: Why, what, and how to get there Adrian](https://reader031.vdocument.in/reader031/viewer/2022013009/5eca4fa03e03014e8747efaf/html5/thumbnails/30.jpg)
Observe
Orient
Decide
Act
Land grab opportunity Competitive
Move
Customer Pain Point
INNOVATION
Measure Customers
Continuous Delivery
![Page 31: Microservices: Why, what, and how to get there - Meetupfiles.meetup.com/...CockCroft-Presentation-Microservices-Boston.pdf · Microservices: Why, what, and how to get there Adrian](https://reader031.vdocument.in/reader031/viewer/2022013009/5eca4fa03e03014e8747efaf/html5/thumbnails/31.jpg)
Observe
Orient
Decide
Act
Land grab opportunity Competitive
Move
Customer Pain Point
Analysis
Model Hypotheses
INNOVATION
Measure Customers
Continuous Delivery
![Page 32: Microservices: Why, what, and how to get there - Meetupfiles.meetup.com/...CockCroft-Presentation-Microservices-Boston.pdf · Microservices: Why, what, and how to get there Adrian](https://reader031.vdocument.in/reader031/viewer/2022013009/5eca4fa03e03014e8747efaf/html5/thumbnails/32.jpg)
Observe
Orient
Decide
Act
Land grab opportunity Competitive
Move
Customer Pain Point
Analysis
Model Hypotheses
BIG DATA
INNOVATION
Measure Customers
Continuous Delivery
![Page 33: Microservices: Why, what, and how to get there - Meetupfiles.meetup.com/...CockCroft-Presentation-Microservices-Boston.pdf · Microservices: Why, what, and how to get there Adrian](https://reader031.vdocument.in/reader031/viewer/2022013009/5eca4fa03e03014e8747efaf/html5/thumbnails/33.jpg)
Observe
Orient
Decide
Act
Land grab opportunity Competitive
Move
Customer Pain Point
Analysis
JFDI
Plan Response
Share Plans
Model Hypotheses
BIG DATA
INNOVATION
Measure Customers
Continuous Delivery
![Page 34: Microservices: Why, what, and how to get there - Meetupfiles.meetup.com/...CockCroft-Presentation-Microservices-Boston.pdf · Microservices: Why, what, and how to get there Adrian](https://reader031.vdocument.in/reader031/viewer/2022013009/5eca4fa03e03014e8747efaf/html5/thumbnails/34.jpg)
Observe
Orient
Decide
Act
Land grab opportunity Competitive
Move
Customer Pain Point
Analysis
JFDI
Plan Response
Share Plans
Model Hypotheses
BIG DATA
INNOVATION
CULTURE
Measure Customers
Continuous Delivery
![Page 35: Microservices: Why, what, and how to get there - Meetupfiles.meetup.com/...CockCroft-Presentation-Microservices-Boston.pdf · Microservices: Why, what, and how to get there Adrian](https://reader031.vdocument.in/reader031/viewer/2022013009/5eca4fa03e03014e8747efaf/html5/thumbnails/35.jpg)
Observe
Orient
Decide
Act
Land grab opportunity Competitive
Move
Customer Pain Point
Analysis
JFDI
Plan Response
Share Plans
Incremental Features
Automatic Deploy
Launch AB Test
Model Hypotheses
BIG DATA
INNOVATION
CULTURE
Measure Customers
Continuous Delivery
![Page 36: Microservices: Why, what, and how to get there - Meetupfiles.meetup.com/...CockCroft-Presentation-Microservices-Boston.pdf · Microservices: Why, what, and how to get there Adrian](https://reader031.vdocument.in/reader031/viewer/2022013009/5eca4fa03e03014e8747efaf/html5/thumbnails/36.jpg)
Observe
Orient
Decide
Act
Land grab opportunity Competitive
Move
Customer Pain Point
Analysis
JFDI
Plan Response
Share Plans
Incremental Features
Automatic Deploy
Launch AB Test
Model Hypotheses
BIG DATA
INNOVATION
CULTURE
CLOUD
Measure Customers
Continuous Delivery
![Page 37: Microservices: Why, what, and how to get there - Meetupfiles.meetup.com/...CockCroft-Presentation-Microservices-Boston.pdf · Microservices: Why, what, and how to get there Adrian](https://reader031.vdocument.in/reader031/viewer/2022013009/5eca4fa03e03014e8747efaf/html5/thumbnails/37.jpg)
Observe
Orient
Decide
Act
Land grab opportunity Competitive
Move
Customer Pain Point
Analysis
JFDI
Plan Response
Share Plans
Incremental Features
Automatic Deploy
Launch AB Test
Model Hypotheses
BIG DATA
INNOVATION
CULTURE
CLOUD
Measure Customers
Continuous Delivery
![Page 38: Microservices: Why, what, and how to get there - Meetupfiles.meetup.com/...CockCroft-Presentation-Microservices-Boston.pdf · Microservices: Why, what, and how to get there Adrian](https://reader031.vdocument.in/reader031/viewer/2022013009/5eca4fa03e03014e8747efaf/html5/thumbnails/38.jpg)
Observe
Orient
Decide
Act
Land grab opportunity Competitive
Move
Customer Pain Point
Analysis
JFDI
Plan Response
Share Plans
Incremental Features
Automatic Deploy
Launch AB Test
Model Hypotheses
BIG DATA
INNOVATION
CULTURE
CLOUD
Measure Customers
Continuous Delivery
![Page 39: Microservices: Why, what, and how to get there - Meetupfiles.meetup.com/...CockCroft-Presentation-Microservices-Boston.pdf · Microservices: Why, what, and how to get there Adrian](https://reader031.vdocument.in/reader031/viewer/2022013009/5eca4fa03e03014e8747efaf/html5/thumbnails/39.jpg)
Breaking Down the SILOs
![Page 40: Microservices: Why, what, and how to get there - Meetupfiles.meetup.com/...CockCroft-Presentation-Microservices-Boston.pdf · Microservices: Why, what, and how to get there Adrian](https://reader031.vdocument.in/reader031/viewer/2022013009/5eca4fa03e03014e8747efaf/html5/thumbnails/40.jpg)
Breaking Down the SILOs
QA DBA Sys Adm
Net Adm
SAN AdmDevUXProd
Mgr
![Page 41: Microservices: Why, what, and how to get there - Meetupfiles.meetup.com/...CockCroft-Presentation-Microservices-Boston.pdf · Microservices: Why, what, and how to get there Adrian](https://reader031.vdocument.in/reader031/viewer/2022013009/5eca4fa03e03014e8747efaf/html5/thumbnails/41.jpg)
Breaking Down the SILOs
QA DBA Sys Adm
Net Adm
SAN AdmDevUXProd
Mgr
Product Team Using Monolithic DeliveryProduct Team Using Monolithic Delivery
![Page 42: Microservices: Why, what, and how to get there - Meetupfiles.meetup.com/...CockCroft-Presentation-Microservices-Boston.pdf · Microservices: Why, what, and how to get there Adrian](https://reader031.vdocument.in/reader031/viewer/2022013009/5eca4fa03e03014e8747efaf/html5/thumbnails/42.jpg)
Breaking Down the SILOs
QA DBA Sys Adm
Net Adm
SAN AdmDevUXProd
MgrProduct Team Using Microservices
Product Team Using Monolithic Delivery
Product Team Using MicroservicesProduct Team Using Microservices
Product Team Using Monolithic Delivery
![Page 43: Microservices: Why, what, and how to get there - Meetupfiles.meetup.com/...CockCroft-Presentation-Microservices-Boston.pdf · Microservices: Why, what, and how to get there Adrian](https://reader031.vdocument.in/reader031/viewer/2022013009/5eca4fa03e03014e8747efaf/html5/thumbnails/43.jpg)
Breaking Down the SILOs
QA DBA Sys Adm
Net Adm
SAN AdmDevUXProd
MgrProduct Team Using Microservices
Product Team Using Monolithic Delivery
Platform TeamProduct Team Using MicroservicesProduct Team Using Microservices
Product Team Using Monolithic Delivery
![Page 44: Microservices: Why, what, and how to get there - Meetupfiles.meetup.com/...CockCroft-Presentation-Microservices-Boston.pdf · Microservices: Why, what, and how to get there Adrian](https://reader031.vdocument.in/reader031/viewer/2022013009/5eca4fa03e03014e8747efaf/html5/thumbnails/44.jpg)
Breaking Down the SILOs
QA DBA Sys Adm
Net Adm
SAN AdmDevUXProd
MgrProduct Team Using Microservices
Product Team Using Monolithic Delivery
Platform TeamAPI
Product Team Using MicroservicesProduct Team Using Microservices
Product Team Using Monolithic Delivery
![Page 45: Microservices: Why, what, and how to get there - Meetupfiles.meetup.com/...CockCroft-Presentation-Microservices-Boston.pdf · Microservices: Why, what, and how to get there Adrian](https://reader031.vdocument.in/reader031/viewer/2022013009/5eca4fa03e03014e8747efaf/html5/thumbnails/45.jpg)
Breaking Down the SILOs
QA DBA Sys Adm
Net Adm
SAN AdmDevUXProd
MgrProduct Team Using Microservices
Product Team Using Monolithic Delivery
Platform Team
Re-Org from project teams to product teams
API
Product Team Using MicroservicesProduct Team Using Microservices
Product Team Using Monolithic Delivery
![Page 46: Microservices: Why, what, and how to get there - Meetupfiles.meetup.com/...CockCroft-Presentation-Microservices-Boston.pdf · Microservices: Why, what, and how to get there Adrian](https://reader031.vdocument.in/reader031/viewer/2022013009/5eca4fa03e03014e8747efaf/html5/thumbnails/46.jpg)
Release Plan
Developer
Developer
Developer
Developer
Developer
QA Release Integration
Ops Replace Old With New
Release
Monolithic service updates
Works well with a small number of developers and a single language like php, java or ruby
![Page 47: Microservices: Why, what, and how to get there - Meetupfiles.meetup.com/...CockCroft-Presentation-Microservices-Boston.pdf · Microservices: Why, what, and how to get there Adrian](https://reader031.vdocument.in/reader031/viewer/2022013009/5eca4fa03e03014e8747efaf/html5/thumbnails/47.jpg)
Release Plan
Developer
Developer
Developer
Developer
Developer
QA Release Integration
Ops Replace Old With New
Release
Bugs
Monolithic service updates
Works well with a small number of developers and a single language like php, java or ruby
![Page 48: Microservices: Why, what, and how to get there - Meetupfiles.meetup.com/...CockCroft-Presentation-Microservices-Boston.pdf · Microservices: Why, what, and how to get there Adrian](https://reader031.vdocument.in/reader031/viewer/2022013009/5eca4fa03e03014e8747efaf/html5/thumbnails/48.jpg)
Release Plan
Developer
Developer
Developer
Developer
Developer
QA Release Integration
Ops Replace Old With New
Release
Bugs
Bugs
Monolithic service updates
Works well with a small number of developers and a single language like php, java or ruby
![Page 49: Microservices: Why, what, and how to get there - Meetupfiles.meetup.com/...CockCroft-Presentation-Microservices-Boston.pdf · Microservices: Why, what, and how to get there Adrian](https://reader031.vdocument.in/reader031/viewer/2022013009/5eca4fa03e03014e8747efaf/html5/thumbnails/49.jpg)
Use monolithic apps for small teams, simple systems and when you must, to optimize for efficiency and latency
![Page 50: Microservices: Why, what, and how to get there - Meetupfiles.meetup.com/...CockCroft-Presentation-Microservices-Boston.pdf · Microservices: Why, what, and how to get there Adrian](https://reader031.vdocument.in/reader031/viewer/2022013009/5eca4fa03e03014e8747efaf/html5/thumbnails/50.jpg)
Developer
Developer
Developer
Developer
Developer
Old Release Still Running
Release Plan
Release Plan
Release Plan
Release Plan
Immutable microservice deployment scales, is faster with large teams and diverse platform components
![Page 51: Microservices: Why, what, and how to get there - Meetupfiles.meetup.com/...CockCroft-Presentation-Microservices-Boston.pdf · Microservices: Why, what, and how to get there Adrian](https://reader031.vdocument.in/reader031/viewer/2022013009/5eca4fa03e03014e8747efaf/html5/thumbnails/51.jpg)
Developer
Developer
Developer
Developer
Developer
Old Release Still Running
Release Plan
Release Plan
Release Plan
Release Plan
Deploy Feature to Production
Deploy Feature to Production
Deploy Feature to Production
Deploy Feature to Production
Immutable microservice deployment scales, is faster with large teams and diverse platform components
![Page 52: Microservices: Why, what, and how to get there - Meetupfiles.meetup.com/...CockCroft-Presentation-Microservices-Boston.pdf · Microservices: Why, what, and how to get there Adrian](https://reader031.vdocument.in/reader031/viewer/2022013009/5eca4fa03e03014e8747efaf/html5/thumbnails/52.jpg)
Developer
Developer
Developer
Developer
Developer
Old Release Still Running
Release Plan
Release Plan
Release Plan
Release Plan
Deploy Feature to Production
Deploy Feature to Production
Deploy Feature to Production
Deploy Feature to Production
Bugs
Immutable microservice deployment scales, is faster with large teams and diverse platform components
![Page 53: Microservices: Why, what, and how to get there - Meetupfiles.meetup.com/...CockCroft-Presentation-Microservices-Boston.pdf · Microservices: Why, what, and how to get there Adrian](https://reader031.vdocument.in/reader031/viewer/2022013009/5eca4fa03e03014e8747efaf/html5/thumbnails/53.jpg)
Developer
Developer
Developer
Developer
Developer
Old Release Still Running
Release Plan
Release Plan
Release Plan
Release Plan
Deploy Feature to Production
Deploy Feature to Production
Deploy Feature to Production
Deploy Feature to Production
Bugs
Deploy Feature to Production
Immutable microservice deployment scales, is faster with large teams and diverse platform components
![Page 54: Microservices: Why, what, and how to get there - Meetupfiles.meetup.com/...CockCroft-Presentation-Microservices-Boston.pdf · Microservices: Why, what, and how to get there Adrian](https://reader031.vdocument.in/reader031/viewer/2022013009/5eca4fa03e03014e8747efaf/html5/thumbnails/54.jpg)
Configure
Configure
Developer
Developer
Developer
Release Plan
Release Plan
Release Plan
Deploy Standardized
Services
Standardized container deployment saves time and effort
https://hub.docker.com
![Page 55: Microservices: Why, what, and how to get there - Meetupfiles.meetup.com/...CockCroft-Presentation-Microservices-Boston.pdf · Microservices: Why, what, and how to get there Adrian](https://reader031.vdocument.in/reader031/viewer/2022013009/5eca4fa03e03014e8747efaf/html5/thumbnails/55.jpg)
Configure
Configure
Developer
Developer
Developer
Release Plan
Release Plan
Release Plan
Deploy Standardized
Services
Deploy Feature to Production
Deploy Feature to Production
Deploy Feature to Production
Bugs
Deploy Feature to Production
Standardized container deployment saves time and effort
https://hub.docker.com
![Page 56: Microservices: Why, what, and how to get there - Meetupfiles.meetup.com/...CockCroft-Presentation-Microservices-Boston.pdf · Microservices: Why, what, and how to get there Adrian](https://reader031.vdocument.in/reader031/viewer/2022013009/5eca4fa03e03014e8747efaf/html5/thumbnails/56.jpg)
Developer Developer
Run What You Wrote
Developer Developer
![Page 57: Microservices: Why, what, and how to get there - Meetupfiles.meetup.com/...CockCroft-Presentation-Microservices-Boston.pdf · Microservices: Why, what, and how to get there Adrian](https://reader031.vdocument.in/reader031/viewer/2022013009/5eca4fa03e03014e8747efaf/html5/thumbnails/57.jpg)
Developer Developer
Run What You Wrote
Micro service
Micro service
Micro service
Micro service
Micro service
Micro service
Micro service
Developer Developer
![Page 58: Microservices: Why, what, and how to get there - Meetupfiles.meetup.com/...CockCroft-Presentation-Microservices-Boston.pdf · Microservices: Why, what, and how to get there Adrian](https://reader031.vdocument.in/reader031/viewer/2022013009/5eca4fa03e03014e8747efaf/html5/thumbnails/58.jpg)
DeveloperDeveloper Developer
Run What You Wrote
Micro service
Micro service
Micro service
Micro service
Micro service
Micro service
Micro service
Developer Developer
Monitoring Tools
![Page 59: Microservices: Why, what, and how to get there - Meetupfiles.meetup.com/...CockCroft-Presentation-Microservices-Boston.pdf · Microservices: Why, what, and how to get there Adrian](https://reader031.vdocument.in/reader031/viewer/2022013009/5eca4fa03e03014e8747efaf/html5/thumbnails/59.jpg)
DeveloperDeveloper Developer
Run What You Wrote
Micro service
Micro service
Micro service
Micro service
Micro service
Micro service
Micro service
Developer Developer
Site Reliability
Monitoring Tools
Availability Metrics
99.95% customersuccess rate
![Page 60: Microservices: Why, what, and how to get there - Meetupfiles.meetup.com/...CockCroft-Presentation-Microservices-Boston.pdf · Microservices: Why, what, and how to get there Adrian](https://reader031.vdocument.in/reader031/viewer/2022013009/5eca4fa03e03014e8747efaf/html5/thumbnails/60.jpg)
DeveloperDeveloper Developer
Run What You Wrote
Micro service
Micro service
Micro service
Micro service
Micro service
Micro service
Micro service
Developer Developer
Manager Manager
Site Reliability
Monitoring Tools
Availability Metrics
99.95% customersuccess rate
![Page 61: Microservices: Why, what, and how to get there - Meetupfiles.meetup.com/...CockCroft-Presentation-Microservices-Boston.pdf · Microservices: Why, what, and how to get there Adrian](https://reader031.vdocument.in/reader031/viewer/2022013009/5eca4fa03e03014e8747efaf/html5/thumbnails/61.jpg)
DeveloperDeveloper Developer
Run What You Wrote
Micro service
Micro service
Micro service
Micro service
Micro service
Micro service
Micro service
Developer Developer
Manager Manager
VP Engineering
Site Reliability
Monitoring Tools
Availability Metrics
99.95% customersuccess rate
![Page 62: Microservices: Why, what, and how to get there - Meetupfiles.meetup.com/...CockCroft-Presentation-Microservices-Boston.pdf · Microservices: Why, what, and how to get there Adrian](https://reader031.vdocument.in/reader031/viewer/2022013009/5eca4fa03e03014e8747efaf/html5/thumbnails/62.jpg)
Change One Thing at a Time!
![Page 63: Microservices: Why, what, and how to get there - Meetupfiles.meetup.com/...CockCroft-Presentation-Microservices-Boston.pdf · Microservices: Why, what, and how to get there Adrian](https://reader031.vdocument.in/reader031/viewer/2022013009/5eca4fa03e03014e8747efaf/html5/thumbnails/63.jpg)
What Happened?Rate of change
increased
Cost and size and risk of change
reduced
![Page 64: Microservices: Why, what, and how to get there - Meetupfiles.meetup.com/...CockCroft-Presentation-Microservices-Boston.pdf · Microservices: Why, what, and how to get there Adrian](https://reader031.vdocument.in/reader031/viewer/2022013009/5eca4fa03e03014e8747efaf/html5/thumbnails/64.jpg)
Low Cost of Change Using Docker
Developers• Compile/Build• Seconds
Extend container• Package dependencies• Seconds
PaaS deploy Container• Docker startup• Seconds
![Page 65: Microservices: Why, what, and how to get there - Meetupfiles.meetup.com/...CockCroft-Presentation-Microservices-Boston.pdf · Microservices: Why, what, and how to get there Adrian](https://reader031.vdocument.in/reader031/viewer/2022013009/5eca4fa03e03014e8747efaf/html5/thumbnails/65.jpg)
Low Cost of Change Using Docker
Fast tooling supports continuous delivery of many tiny changes
Developers• Compile/Build• Seconds
Extend container• Package dependencies• Seconds
PaaS deploy Container• Docker startup• Seconds
![Page 66: Microservices: Why, what, and how to get there - Meetupfiles.meetup.com/...CockCroft-Presentation-Microservices-Boston.pdf · Microservices: Why, what, and how to get there Adrian](https://reader031.vdocument.in/reader031/viewer/2022013009/5eca4fa03e03014e8747efaf/html5/thumbnails/66.jpg)
Disruptor: Continuous Delivery with
Containerized Microservices
![Page 67: Microservices: Why, what, and how to get there - Meetupfiles.meetup.com/...CockCroft-Presentation-Microservices-Boston.pdf · Microservices: Why, what, and how to get there Adrian](https://reader031.vdocument.in/reader031/viewer/2022013009/5eca4fa03e03014e8747efaf/html5/thumbnails/67.jpg)
Microservices
![Page 68: Microservices: Why, what, and how to get there - Meetupfiles.meetup.com/...CockCroft-Presentation-Microservices-Boston.pdf · Microservices: Why, what, and how to get there Adrian](https://reader031.vdocument.in/reader031/viewer/2022013009/5eca4fa03e03014e8747efaf/html5/thumbnails/68.jpg)
A Microservice Definition
Loosely coupled service oriented architecture with bounded contexts
![Page 69: Microservices: Why, what, and how to get there - Meetupfiles.meetup.com/...CockCroft-Presentation-Microservices-Boston.pdf · Microservices: Why, what, and how to get there Adrian](https://reader031.vdocument.in/reader031/viewer/2022013009/5eca4fa03e03014e8747efaf/html5/thumbnails/69.jpg)
A Microservice Definition
Loosely coupled service oriented architecture with bounded contexts
If every service has to be updated at the same time it’s not loosely coupled
![Page 70: Microservices: Why, what, and how to get there - Meetupfiles.meetup.com/...CockCroft-Presentation-Microservices-Boston.pdf · Microservices: Why, what, and how to get there Adrian](https://reader031.vdocument.in/reader031/viewer/2022013009/5eca4fa03e03014e8747efaf/html5/thumbnails/70.jpg)
A Microservice Definition
Loosely coupled service oriented architecture with bounded contexts
If every service has to be updated at the same time it’s not loosely coupled
If you have to know too much about surrounding services you don’t have a bounded context. See the Domain Driven Design book by Eric Evans.
![Page 71: Microservices: Why, what, and how to get there - Meetupfiles.meetup.com/...CockCroft-Presentation-Microservices-Boston.pdf · Microservices: Why, what, and how to get there Adrian](https://reader031.vdocument.in/reader031/viewer/2022013009/5eca4fa03e03014e8747efaf/html5/thumbnails/71.jpg)
Speeding Up The Platform
Datacenter Snowflakes• Deploy in months• Live for years
![Page 72: Microservices: Why, what, and how to get there - Meetupfiles.meetup.com/...CockCroft-Presentation-Microservices-Boston.pdf · Microservices: Why, what, and how to get there Adrian](https://reader031.vdocument.in/reader031/viewer/2022013009/5eca4fa03e03014e8747efaf/html5/thumbnails/72.jpg)
Speeding Up The Platform
Datacenter Snowflakes• Deploy in months• Live for years
Virtualized and Cloud• Deploy in minutes• Live for weeks
![Page 73: Microservices: Why, what, and how to get there - Meetupfiles.meetup.com/...CockCroft-Presentation-Microservices-Boston.pdf · Microservices: Why, what, and how to get there Adrian](https://reader031.vdocument.in/reader031/viewer/2022013009/5eca4fa03e03014e8747efaf/html5/thumbnails/73.jpg)
Speeding Up The Platform
Datacenter Snowflakes• Deploy in months• Live for years
Virtualized and Cloud• Deploy in minutes• Live for weeks
Container Deployments• Deploy in seconds• Live for minutes/hours
![Page 74: Microservices: Why, what, and how to get there - Meetupfiles.meetup.com/...CockCroft-Presentation-Microservices-Boston.pdf · Microservices: Why, what, and how to get there Adrian](https://reader031.vdocument.in/reader031/viewer/2022013009/5eca4fa03e03014e8747efaf/html5/thumbnails/74.jpg)
Speeding Up The Platform
Datacenter Snowflakes• Deploy in months• Live for years
Virtualized and Cloud• Deploy in minutes• Live for weeks
Container Deployments• Deploy in seconds• Live for minutes/hours
Lambda Deployments• Deploy in milliseconds• Live for seconds
![Page 75: Microservices: Why, what, and how to get there - Meetupfiles.meetup.com/...CockCroft-Presentation-Microservices-Boston.pdf · Microservices: Why, what, and how to get there Adrian](https://reader031.vdocument.in/reader031/viewer/2022013009/5eca4fa03e03014e8747efaf/html5/thumbnails/75.jpg)
Speeding Up The Platform
AWS Lambda is leading exploration of serverless architectures in 2016
Datacenter Snowflakes• Deploy in months• Live for years
Virtualized and Cloud• Deploy in minutes• Live for weeks
Container Deployments• Deploy in seconds• Live for minutes/hours
Lambda Deployments• Deploy in milliseconds• Live for seconds
![Page 76: Microservices: Why, what, and how to get there - Meetupfiles.meetup.com/...CockCroft-Presentation-Microservices-Boston.pdf · Microservices: Why, what, and how to get there Adrian](https://reader031.vdocument.in/reader031/viewer/2022013009/5eca4fa03e03014e8747efaf/html5/thumbnails/76.jpg)
Inspiration
![Page 77: Microservices: Why, what, and how to get there - Meetupfiles.meetup.com/...CockCroft-Presentation-Microservices-Boston.pdf · Microservices: Why, what, and how to get there Adrian](https://reader031.vdocument.in/reader031/viewer/2022013009/5eca4fa03e03014e8747efaf/html5/thumbnails/77.jpg)
http://www.infoq.com/presentations/Twitter-Timeline-Scalabilityhttp://www.infoq.com/presentations/twitter-soa
http://www.infoq.com/presentations/Zipkinhttp://www.infoq.com/presentations/scale-gilt Go-Kit https://www.youtube.com/watch?v=aL6sd4d4hxk
http://www.infoq.com/presentations/circuit-breaking-distributed-systemshttps://speakerdeck.com/mattheath/scaling-micro-services-in-go-highload-plus-plus-2014
State of the Art in Web Scale Microservice Architectures
AWS Re:Invent : Asgard to Zuul https://www.youtube.com/watch?v=p7ysHhs5hl0Resiliency at Massive Scale https://www.youtube.com/watch?v=ZfYJHtVL1_w
Microservice Architecture https://www.youtube.com/watch?v=CriDUYtfrjsNew projects for 2015 and Docker Packaging https://www.youtube.com/watch?v=hi7BDAtjfKY
Spinnaker deployment pipeline https://www.youtube.com/watch?v=dwdVwE52KkUhttp://www.infoq.com/presentations/spring-cloud-2015
![Page 78: Microservices: Why, what, and how to get there - Meetupfiles.meetup.com/...CockCroft-Presentation-Microservices-Boston.pdf · Microservices: Why, what, and how to get there Adrian](https://reader031.vdocument.in/reader031/viewer/2022013009/5eca4fa03e03014e8747efaf/html5/thumbnails/78.jpg)
Microservice Concerns
ConfigurationTooling Discovery Routing Observability
Development: Languages and Container
Operational: Orchestration and Deployment Infrastructure
Datastores
Policy: Architectural and Security Compliance
![Page 79: Microservices: Why, what, and how to get there - Meetupfiles.meetup.com/...CockCroft-Presentation-Microservices-Boston.pdf · Microservices: Why, what, and how to get there Adrian](https://reader031.vdocument.in/reader031/viewer/2022013009/5eca4fa03e03014e8747efaf/html5/thumbnails/79.jpg)
Microservices
EddaArchaius
Configuration
SpinnakerSpringCloud
Tooling
EurekaPrana
Discovery
DenominatorZuul
Ribbon
Routing
HystrixPytheus
Atlas
Observability
Development using Java, Groovy, Scala, Clojure, Python with AMI and Docker Containers
Orchestration with Autoscalers on AWS, exploring Mesos & ECS for Docker
Ephemeral datastores using Dynomite, Memcached, Astyanax, Staash, Priam, Cassandra
Policy via the Simian Army - Chaos Monkey, Chaos Gorilla, Conformity Monkey, Security Monkey
![Page 80: Microservices: Why, what, and how to get there - Meetupfiles.meetup.com/...CockCroft-Presentation-Microservices-Boston.pdf · Microservices: Why, what, and how to get there Adrian](https://reader031.vdocument.in/reader031/viewer/2022013009/5eca4fa03e03014e8747efaf/html5/thumbnails/80.jpg)
! Edda - the “black box flight recorder” for configuration state
! Chaos Monkey - enforcing stateless business logic
! Chaos Gorilla - enforcing zone isolation/replication
! Chaos Kong - enforcing region isolation/replication
! Security Monkey - watching for insecure configuration settings
! See over 100 NetflixOSS projects at netflix.github.com
! Get “Technical Indigestion” reading techblog.netflix.com
Trust with Verification
![Page 81: Microservices: Why, what, and how to get there - Meetupfiles.meetup.com/...CockCroft-Presentation-Microservices-Boston.pdf · Microservices: Why, what, and how to get there Adrian](https://reader031.vdocument.in/reader031/viewer/2022013009/5eca4fa03e03014e8747efaf/html5/thumbnails/81.jpg)
Cloud Native Monitoring and Microservices
![Page 82: Microservices: Why, what, and how to get there - Meetupfiles.meetup.com/...CockCroft-Presentation-Microservices-Boston.pdf · Microservices: Why, what, and how to get there Adrian](https://reader031.vdocument.in/reader031/viewer/2022013009/5eca4fa03e03014e8747efaf/html5/thumbnails/82.jpg)
Cloud Native Microservices! High rate of change
Code pushes can cause floods of new instances and metrics Short baseline for alert threshold analysis – everything looks unusual
! Ephemeral Configurations Short lifetimes make it hard to aggregate historical views Hand tweaked monitoring tools take too much work to keep running
! Microservices with complex calling patterns End-to-end request flow measurements are very important Request flow visualizations get overwhelmed
![Page 83: Microservices: Why, what, and how to get there - Meetupfiles.meetup.com/...CockCroft-Presentation-Microservices-Boston.pdf · Microservices: Why, what, and how to get there Adrian](https://reader031.vdocument.in/reader031/viewer/2022013009/5eca4fa03e03014e8747efaf/html5/thumbnails/83.jpg)
Whoops! I didn’t mean that! Reverting…
Not cool if it takes 5 minutes to see it failed and 5 more to see a fix No-one notices if it only takes 5 seconds to detect and 5 to see a fix
![Page 84: Microservices: Why, what, and how to get there - Meetupfiles.meetup.com/...CockCroft-Presentation-Microservices-Boston.pdf · Microservices: Why, what, and how to get there Adrian](https://reader031.vdocument.in/reader031/viewer/2022013009/5eca4fa03e03014e8747efaf/html5/thumbnails/84.jpg)
NetflixOSS Hystrix/Turbine Circuit Breaker
http://techblog.netflix.com/2012/12/hystrix-dashboard-and-turbine.html
![Page 85: Microservices: Why, what, and how to get there - Meetupfiles.meetup.com/...CockCroft-Presentation-Microservices-Boston.pdf · Microservices: Why, what, and how to get there Adrian](https://reader031.vdocument.in/reader031/viewer/2022013009/5eca4fa03e03014e8747efaf/html5/thumbnails/85.jpg)
NetflixOSS Hystrix/Turbine Circuit Breaker
http://techblog.netflix.com/2012/12/hystrix-dashboard-and-turbine.html
![Page 86: Microservices: Why, what, and how to get there - Meetupfiles.meetup.com/...CockCroft-Presentation-Microservices-Boston.pdf · Microservices: Why, what, and how to get there Adrian](https://reader031.vdocument.in/reader031/viewer/2022013009/5eca4fa03e03014e8747efaf/html5/thumbnails/86.jpg)
Low Latency SaaS Based Monitors
https://www.datadoghq.com/ http://www.instana.com/ www.bigpanda.io www.vividcortex.com signalfx.com wavefront.com sysdig.com
![Page 87: Microservices: Why, what, and how to get there - Meetupfiles.meetup.com/...CockCroft-Presentation-Microservices-Boston.pdf · Microservices: Why, what, and how to get there Adrian](https://reader031.vdocument.in/reader031/viewer/2022013009/5eca4fa03e03014e8747efaf/html5/thumbnails/87.jpg)
Metric to display latency needs to be less than human attention span (~10s)
![Page 88: Microservices: Why, what, and how to get there - Meetupfiles.meetup.com/...CockCroft-Presentation-Microservices-Boston.pdf · Microservices: Why, what, and how to get there Adrian](https://reader031.vdocument.in/reader031/viewer/2022013009/5eca4fa03e03014e8747efaf/html5/thumbnails/88.jpg)
Challenges for Microservice
Platforms
![Page 89: Microservices: Why, what, and how to get there - Meetupfiles.meetup.com/...CockCroft-Presentation-Microservices-Boston.pdf · Microservices: Why, what, and how to get there Adrian](https://reader031.vdocument.in/reader031/viewer/2022013009/5eca4fa03e03014e8747efaf/html5/thumbnails/89.jpg)
Managing Scale
![Page 90: Microservices: Why, what, and how to get there - Meetupfiles.meetup.com/...CockCroft-Presentation-Microservices-Boston.pdf · Microservices: Why, what, and how to get there Adrian](https://reader031.vdocument.in/reader031/viewer/2022013009/5eca4fa03e03014e8747efaf/html5/thumbnails/90.jpg)
A Possible Hierarchy Continents
Regions Zones
Services Versions
Containers Instances
How Many? 3 to 5
2-4 per Continent 1-5 per Region 100’s per Zone
Many per Service 1000’s per Version
10,000’s
It’s much more challenging than just a large number of
machines
![Page 91: Microservices: Why, what, and how to get there - Meetupfiles.meetup.com/...CockCroft-Presentation-Microservices-Boston.pdf · Microservices: Why, what, and how to get there Adrian](https://reader031.vdocument.in/reader031/viewer/2022013009/5eca4fa03e03014e8747efaf/html5/thumbnails/91.jpg)
Flow
![Page 92: Microservices: Why, what, and how to get there - Meetupfiles.meetup.com/...CockCroft-Presentation-Microservices-Boston.pdf · Microservices: Why, what, and how to get there Adrian](https://reader031.vdocument.in/reader031/viewer/2022013009/5eca4fa03e03014e8747efaf/html5/thumbnails/92.jpg)
Some tools can show the request flow
across a few services
![Page 93: Microservices: Why, what, and how to get there - Meetupfiles.meetup.com/...CockCroft-Presentation-Microservices-Boston.pdf · Microservices: Why, what, and how to get there Adrian](https://reader031.vdocument.in/reader031/viewer/2022013009/5eca4fa03e03014e8747efaf/html5/thumbnails/93.jpg)
Interesting architectures have a lot of microservices! Flow visualization is
a big challenge.
See http://www.slideshare.net/LappleApple/gilt-from-monolith-ruby-app-to-micro-service-scala-service-architecture
![Page 94: Microservices: Why, what, and how to get there - Meetupfiles.meetup.com/...CockCroft-Presentation-Microservices-Boston.pdf · Microservices: Why, what, and how to get there Adrian](https://reader031.vdocument.in/reader031/viewer/2022013009/5eca4fa03e03014e8747efaf/html5/thumbnails/94.jpg)
Simulated Microservices
Model and visualize microservices Simulate interesting architectures Generate large scale configurations Eventually stress test real tools
See github.com/adrianco/spigo Simulate Protocol Interactions in Go Visualize with D3
ELB Load Balancer
Zuul API Proxy
KaryonBusinessLogic
StaashDataAccessLayerPriam CassandraDatastore
ThreeAvailabilityZones
![Page 95: Microservices: Why, what, and how to get there - Meetupfiles.meetup.com/...CockCroft-Presentation-Microservices-Boston.pdf · Microservices: Why, what, and how to get there Adrian](https://reader031.vdocument.in/reader031/viewer/2022013009/5eca4fa03e03014e8747efaf/html5/thumbnails/95.jpg)
Spigo Nanoservice Structurefunc Start(listener chan gotocol.Message) { ... for { select { case msg := <-listener:
flow.Instrument(msg, name, hist) switch msg.Imposition { case gotocol.Hello: // get named by parent ... case gotocol.NameDrop: // someone new to talk to ... case gotocol.Put: // upstream request handler ... outmsg := gotocol.Message{gotocol.Replicate, listener, time.Now(), msg.Ctx.NewParent(), msg.Intention} flow.AnnotateSend(outmsg, name) outmsg.GoSend(replicas) } case <-eurekaTicker.C: // poll the service registry ... } } }
Skeleton code for replicating a Put message
Instrument incoming requests
Instrument outgoing requests
update trace context
![Page 96: Microservices: Why, what, and how to get there - Meetupfiles.meetup.com/...CockCroft-Presentation-Microservices-Boston.pdf · Microservices: Why, what, and how to get there Adrian](https://reader031.vdocument.in/reader031/viewer/2022013009/5eca4fa03e03014e8747efaf/html5/thumbnails/96.jpg)
Flow Trace Recording
riak2us-east-1
zoneC
riak9us-west-2
zoneA
Put s896
Replicate
riak3us-east-1
zoneA
riak8us-west-2
zoneC
riak4us-east-1
zoneB
riak10us-west-2
zoneB
us-east-1.zoneC.riak2 t98p895s896 Put us-east-1.zoneA.riak3 t98p896s908 Replicate us-east-1.zoneB.riak4 t98p896s909 Replicate us-west-2.zoneA.riak9 t98p896s910 Replicate us-west-2.zoneB.riak10 t98p910s912 Replicate us-west-2.zoneC.riak8 t98p910s913 Replicate
staashus-east-1
zoneC
s910 s908s913s909s912
Replicate Put
![Page 97: Microservices: Why, what, and how to get there - Meetupfiles.meetup.com/...CockCroft-Presentation-Microservices-Boston.pdf · Microservices: Why, what, and how to get there Adrian](https://reader031.vdocument.in/reader031/viewer/2022013009/5eca4fa03e03014e8747efaf/html5/thumbnails/97.jpg)
Open Zipkin
A common format for trace annotations A Java tool for visualizing traces Standardization effort to fold in other formats Driven by Adrian Cole (currently at Pivotal) Extended to load Spigo generated trace files
![Page 98: Microservices: Why, what, and how to get there - Meetupfiles.meetup.com/...CockCroft-Presentation-Microservices-Boston.pdf · Microservices: Why, what, and how to get there Adrian](https://reader031.vdocument.in/reader031/viewer/2022013009/5eca4fa03e03014e8747efaf/html5/thumbnails/98.jpg)
Trace for one Spigo Flow
![Page 99: Microservices: Why, what, and how to get there - Meetupfiles.meetup.com/...CockCroft-Presentation-Microservices-Boston.pdf · Microservices: Why, what, and how to get there Adrian](https://reader031.vdocument.in/reader031/viewer/2022013009/5eca4fa03e03014e8747efaf/html5/thumbnails/99.jpg)
Definition of an architecture
{ "arch": "lamp", "description":"Simple LAMP stack", "version": "arch-0.0", "victim": "webserver", "services": [ { "name": "rds-mysql", "package": "store", "count": 2, "regions": 1, "dependencies": [] }, { "name": "memcache", "package": "store", "count": 1, "regions": 1, "dependencies": [] }, { "name": "webserver", "package": "monolith", "count": 18, "regions": 1, "dependencies": ["memcache", "rds-mysql"] }, { "name": "webserver-elb", "package": "elb", "count": 0, "regions": 1, "dependencies": ["webserver"] }, { "name": "www", "package": "denominator", "count": 0, "regions": 0, "dependencies": ["webserver-elb"] } ] }
Header includeschaos monkey victim
New tier name
Tier package
0 = non Regional
Node count
List of tier dependencies
![Page 100: Microservices: Why, what, and how to get there - Meetupfiles.meetup.com/...CockCroft-Presentation-Microservices-Boston.pdf · Microservices: Why, what, and how to get there Adrian](https://reader031.vdocument.in/reader031/viewer/2022013009/5eca4fa03e03014e8747efaf/html5/thumbnails/100.jpg)
Running Spigo$ ./spigo -a lamp -j -d 2 2016/01/26 23:04:05 Loading architecture from json_arch/lamp_arch.json 2016/01/26 23:04:05 lamp.edda: starting 2016/01/26 23:04:05 Architecture: lamp Simple LAMP stack 2016/01/26 23:04:05 architecture: scaling to 100% 2016/01/26 23:04:05 lamp.us-east-1.zoneB.eureka01....eureka.eureka: starting 2016/01/26 23:04:05 lamp.us-east-1.zoneA.eureka00....eureka.eureka: starting 2016/01/26 23:04:05 lamp.us-east-1.zoneC.eureka02....eureka.eureka: starting 2016/01/26 23:04:05 Starting: {rds-mysql store 1 2 []} 2016/01/26 23:04:05 Starting: {memcache store 1 1 []} 2016/01/26 23:04:05 Starting: {webserver monolith 1 18 [memcache rds-mysql]} 2016/01/26 23:04:05 Starting: {webserver-elb elb 1 0 [webserver]} 2016/01/26 23:04:05 Starting: {www denominator 0 0 [webserver-elb]} 2016/01/26 23:04:05 lamp.*.*.www00....www.denominator activity rate 10ms 2016/01/26 23:04:06 chaosmonkey delete: lamp.us-east-1.zoneC.webserver02....webserver.monolith 2016/01/26 23:04:07 asgard: Shutdown 2016/01/26 23:04:07 lamp.us-east-1.zoneB.eureka01....eureka.eureka: closing 2016/01/26 23:04:07 lamp.us-east-1.zoneA.eureka00....eureka.eureka: closing 2016/01/26 23:04:07 lamp.us-east-1.zoneC.eureka02....eureka.eureka: closing 2016/01/26 23:04:07 spigo: complete 2016/01/26 23:04:07 lamp.edda: closing
-a architecture lamp-j graph json/lamp.json-d run for 2 seconds
![Page 101: Microservices: Why, what, and how to get there - Meetupfiles.meetup.com/...CockCroft-Presentation-Microservices-Boston.pdf · Microservices: Why, what, and how to get there Adrian](https://reader031.vdocument.in/reader031/viewer/2022013009/5eca4fa03e03014e8747efaf/html5/thumbnails/101.jpg)
Riak IoT Architecture{ "arch": "riak", "description":"Riak IoT ingestion example for the RICON 2015 presentation", "version": "arch-0.0", "victim": "", "services": [ { "name": "riakTS", "package": "riak", "count": 6, "regions": 1, "dependencies": ["riakTS", "eureka"]}, { "name": "ingester", "package": "staash", "count": 6, "regions": 1, "dependencies": ["riakTS"]}, { "name": "ingestMQ", "package": "karyon", "count": 3, "regions": 1, "dependencies": ["ingester"]}, { "name": "riakKV", "package": "riak", "count": 3, "regions": 1, "dependencies": ["riakKV"]}, { "name": "enricher", "package": "staash", "count": 6, "regions": 1, "dependencies": ["riakKV", "ingestMQ"]}, { "name": "enrichMQ", "package": "karyon", "count": 3, "regions": 1, "dependencies": ["enricher"]}, { "name": "analytics", "package": "karyon", "count": 6, "regions": 1, "dependencies": ["ingester"]}, { "name": "analytics-elb", "package": "elb", "count": 0, "regions": 1, "dependencies": ["analytics"]}, { "name": "analytics-api", "package": "denominator", "count": 0, "regions": 0, "dependencies": ["analytics-elb"]}, { "name": "normalization", "package": "karyon", "count": 6, "regions": 1, "dependencies": ["enrichMQ"]}, { "name": "iot-elb", "package": "elb", "count": 0, "regions": 1, "dependencies": ["normalization"]}, { "name": "iot-api", "package": "denominator", "count": 0, "regions": 0, "dependencies": ["iot-elb"]}, { "name": "stream", "package": "karyon", "count": 6, "regions": 1, "dependencies": ["ingestMQ"]}, { "name": "stream-elb", "package": "elb", "count": 0, "regions": 1, "dependencies": ["stream"]}, { "name": "stream-api", "package": "denominator", "count": 0, "regions": 0, "dependencies": ["stream-elb"]} ] }
New tier name
Tier package
Node count
List of tier dependencies
0 = non Regional
![Page 102: Microservices: Why, what, and how to get there - Meetupfiles.meetup.com/...CockCroft-Presentation-Microservices-Boston.pdf · Microservices: Why, what, and how to get there Adrian](https://reader031.vdocument.in/reader031/viewer/2022013009/5eca4fa03e03014e8747efaf/html5/thumbnails/102.jpg)
Single Region Riak IoT
![Page 103: Microservices: Why, what, and how to get there - Meetupfiles.meetup.com/...CockCroft-Presentation-Microservices-Boston.pdf · Microservices: Why, what, and how to get there Adrian](https://reader031.vdocument.in/reader031/viewer/2022013009/5eca4fa03e03014e8747efaf/html5/thumbnails/103.jpg)
Single Region Riak IoT
IoT Ingestion Endpoint
Stream Endpoint
Analytics Endpoint
![Page 104: Microservices: Why, what, and how to get there - Meetupfiles.meetup.com/...CockCroft-Presentation-Microservices-Boston.pdf · Microservices: Why, what, and how to get there Adrian](https://reader031.vdocument.in/reader031/viewer/2022013009/5eca4fa03e03014e8747efaf/html5/thumbnails/104.jpg)
Single Region Riak IoT
IoT Ingestion Endpoint
Stream Endpoint
Analytics Endpoint
Load Balancer
Load Balancer
Load Balancer
![Page 105: Microservices: Why, what, and how to get there - Meetupfiles.meetup.com/...CockCroft-Presentation-Microservices-Boston.pdf · Microservices: Why, what, and how to get there Adrian](https://reader031.vdocument.in/reader031/viewer/2022013009/5eca4fa03e03014e8747efaf/html5/thumbnails/105.jpg)
Single Region Riak IoT
IoT Ingestion Endpoint
Stream Endpoint
Analytics Endpoint
Load Balancer
Normalization Services
Load Balancer
Load Balancer
Stream Service
Analytics Service
![Page 106: Microservices: Why, what, and how to get there - Meetupfiles.meetup.com/...CockCroft-Presentation-Microservices-Boston.pdf · Microservices: Why, what, and how to get there Adrian](https://reader031.vdocument.in/reader031/viewer/2022013009/5eca4fa03e03014e8747efaf/html5/thumbnails/106.jpg)
Single Region Riak IoT
IoT Ingestion Endpoint
Stream Endpoint
Analytics Endpoint
Load Balancer
Normalization Services
Enrich Message Queue Riak KV
Enricher Services
Load Balancer
Load Balancer
Stream Service
Analytics Service
![Page 107: Microservices: Why, what, and how to get there - Meetupfiles.meetup.com/...CockCroft-Presentation-Microservices-Boston.pdf · Microservices: Why, what, and how to get there Adrian](https://reader031.vdocument.in/reader031/viewer/2022013009/5eca4fa03e03014e8747efaf/html5/thumbnails/107.jpg)
Single Region Riak IoT
IoT Ingestion Endpoint
Stream Endpoint
Analytics Endpoint
Load Balancer
Normalization Services
Enrich Message Queue Riak KV
Enricher Services
Ingest Message Queue
Load Balancer
Load Balancer
Stream Service
Analytics Service
![Page 108: Microservices: Why, what, and how to get there - Meetupfiles.meetup.com/...CockCroft-Presentation-Microservices-Boston.pdf · Microservices: Why, what, and how to get there Adrian](https://reader031.vdocument.in/reader031/viewer/2022013009/5eca4fa03e03014e8747efaf/html5/thumbnails/108.jpg)
Single Region Riak IoT
IoT Ingestion Endpoint
Stream Endpoint
Analytics Endpoint
Load Balancer
Normalization Services
Enrich Message Queue Riak KV
Enricher Services
Ingest Message Queue
Load Balancer
Load Balancer
Stream Service Riak TS
Analytics Service
Ingester Service
![Page 109: Microservices: Why, what, and how to get there - Meetupfiles.meetup.com/...CockCroft-Presentation-Microservices-Boston.pdf · Microservices: Why, what, and how to get there Adrian](https://reader031.vdocument.in/reader031/viewer/2022013009/5eca4fa03e03014e8747efaf/html5/thumbnails/109.jpg)
Two Region Riak IoT
IoT Ingestion Endpoint
Stream Endpoint
Analytics Endpoint
East Region Ingestion
West Region Ingestion
Multi Region TS Analytics
![Page 110: Microservices: Why, what, and how to get there - Meetupfiles.meetup.com/...CockCroft-Presentation-Microservices-Boston.pdf · Microservices: Why, what, and how to get there Adrian](https://reader031.vdocument.in/reader031/viewer/2022013009/5eca4fa03e03014e8747efaf/html5/thumbnails/110.jpg)
Two Region Riak IoT
IoT Ingestion Endpoint
Stream Endpoint
Analytics Endpoint
East Region Ingestion
West Region Ingestion
Multi Region TS Analytics
What’s the response time of the stream
endpoint?
![Page 111: Microservices: Why, what, and how to get there - Meetupfiles.meetup.com/...CockCroft-Presentation-Microservices-Boston.pdf · Microservices: Why, what, and how to get there Adrian](https://reader031.vdocument.in/reader031/viewer/2022013009/5eca4fa03e03014e8747efaf/html5/thumbnails/111.jpg)
Response Times
![Page 112: Microservices: Why, what, and how to get there - Meetupfiles.meetup.com/...CockCroft-Presentation-Microservices-Boston.pdf · Microservices: Why, what, and how to get there Adrian](https://reader031.vdocument.in/reader031/viewer/2022013009/5eca4fa03e03014e8747efaf/html5/thumbnails/112.jpg)
What’s the response time of a simple service?
memcached
rds-msql
rds-msqlwebservers
elb
www
![Page 113: Microservices: Why, what, and how to get there - Meetupfiles.meetup.com/...CockCroft-Presentation-Microservices-Boston.pdf · Microservices: Why, what, and how to get there Adrian](https://reader031.vdocument.in/reader031/viewer/2022013009/5eca4fa03e03014e8747efaf/html5/thumbnails/113.jpg)
What’s the response time of an even simpler storage backed web service?
memcached
mysql
disk volumeweb service
load generator
![Page 114: Microservices: Why, what, and how to get there - Meetupfiles.meetup.com/...CockCroft-Presentation-Microservices-Boston.pdf · Microservices: Why, what, and how to get there Adrian](https://reader031.vdocument.in/reader031/viewer/2022013009/5eca4fa03e03014e8747efaf/html5/thumbnails/114.jpg)
Measuring Response Time With
Histograms
![Page 115: Microservices: Why, what, and how to get there - Meetupfiles.meetup.com/...CockCroft-Presentation-Microservices-Boston.pdf · Microservices: Why, what, and how to get there Adrian](https://reader031.vdocument.in/reader031/viewer/2022013009/5eca4fa03e03014e8747efaf/html5/thumbnails/115.jpg)
Changes made to codahale/hdrhistogram
Changes made to go-kit/kit/metrics
Implementation in adrianco/spigo/collect
![Page 116: Microservices: Why, what, and how to get there - Meetupfiles.meetup.com/...CockCroft-Presentation-Microservices-Boston.pdf · Microservices: Why, what, and how to get there Adrian](https://reader031.vdocument.in/reader031/viewer/2022013009/5eca4fa03e03014e8747efaf/html5/thumbnails/116.jpg)
What to measure?
Client ServerGetRequest
GetResponse
Client Time
Client Send CS
Server Receive SR
Server Send SS
Client Receive CR
Server Time
![Page 117: Microservices: Why, what, and how to get there - Meetupfiles.meetup.com/...CockCroft-Presentation-Microservices-Boston.pdf · Microservices: Why, what, and how to get there Adrian](https://reader031.vdocument.in/reader031/viewer/2022013009/5eca4fa03e03014e8747efaf/html5/thumbnails/117.jpg)
What to measure?
Client ServerGetRequest
GetResponse
Client Time
Client Send CS
Server Receive SR
Server Send SS
Client Receive CR
Response CR-CS
Service SS-SR
Network SR-CS
Network CR-SS
Net Round Trip (SR-CS) + (CR-SS) (CR-CS) - (SS-SR)
Server Time
![Page 118: Microservices: Why, what, and how to get there - Meetupfiles.meetup.com/...CockCroft-Presentation-Microservices-Boston.pdf · Microservices: Why, what, and how to get there Adrian](https://reader031.vdocument.in/reader031/viewer/2022013009/5eca4fa03e03014e8747efaf/html5/thumbnails/118.jpg)
Spigo Histogram Resultsname: storage.*.*.load00....load.denominator_resp count: 1978 gauges: map[50:126975 99:278527] From, To, Count, Prob, Bar 28672, 29695, 1, 0.0005, : 31744, 32767, 1, 0.0005, : 34816, 36863, 2, 0.0010, :# 36864, 38911, 8, 0.0040, |###### 38912, 40959, 13, 0.0066, |########## 40960, 43007, 18, 0.0091, |############## 43008, 45055, 12, 0.0061, |######### 45056, 47103, 26, 0.0131, |#################### 47104, 49151, 24, 0.0121, |################## 49152, 51199, 33, 0.0167, |######################### 51200, 53247, 29, 0.0147, |###################### 53248, 55295, 35, 0.0177, |########################### 55296, 57343, 39, 0.0197, |############################## 57344, 59391, 35, 0.0177, |########################### 59392, 61439, 43, 0.0217, |################################# 61440, 63487, 31, 0.0157, |######################## 63488, 65535, 39, 0.0197, |############################## 65536, 69631, 74, 0.0374, |######################################################### 69632, 73727, 65, 0.0329, |################################################## 73728, 77823, 57, 0.0288, |############################################ 77824, 81919, 37, 0.0187, |############################ 81920, 86015, 37, 0.0187, |############################ 86016, 90111, 30, 0.0152, |####################### 90112, 94207, 39, 0.0197, |############################## 94208, 98303, 28, 0.0142, |##################### 98304, 102399, 30, 0.0152, |####################### 102400, 106495, 31, 0.0157, |######################## 106496, 110591, 20, 0.0101, |############### 110592, 114687, 26, 0.0131, |#################### 114688, 118783, 44, 0.0222, |################################## 118784, 122879, 41, 0.0207, |############################### 122880, 126975, 54, 0.0273, |########################################## 126976, 131071, 51, 0.0258, |####################################### 131072, 139263, 114, 0.0576, |######################################################################################## 139264, 147455, 123, 0.0622, |############################################################################################### 147456, 155647, 127, 0.0642, |################################################################################################### 155648, 163839, 102, 0.0516, |############################################################################### 163840, 172031, 90, 0.0455, |###################################################################### 172032, 180223, 65, 0.0329, |################################################## 180224, 188415, 43, 0.0217, |################################# 188416, 196607, 60, 0.0303, |############################################## 196608, 204799, 54, 0.0273, |########################################## 204800, 212991, 29, 0.0147, |###################### 212992, 221183, 21, 0.0106, |################ 221184, 229375, 25, 0.0126, |################### 229376, 237567, 18, 0.0091, |############## 237568, 245759, 15, 0.0076, |########### 245760, 253951, 9, 0.0046, |####### 253952, 262143, 8, 0.0040, |###### 262144, 278527, 10, 0.0051, |####### 278528, 294911, 6, 0.0030, |#### 294912, 311295, 2, 0.0010, |# 327680, 344063, 2, 0.0010, :# 344064, 360447, 1, 0.0005, | 376832, 393215, 1, 0.0005, :
name: storage.*.*.load00....load.denominator_resp count: 1978 gauges: map[50:126975 99:278527] From, To, Count, Prob, Bar 28672, 29695, 1, 0.0005, : 31744, 32767, 1, 0.0005, : 34816, 36863, 2, 0.0010, :# 36864, 38911, 8, 0.0040, |###### 38912, 40959, 13, 0.0066, |##########
Normalized probability
Response time distribution measured in nanoseconds using High Dynamic Range Histogram
:# Zero counts skipped|# Contiguous buckets
Total count, median and 99th percentile values
![Page 119: Microservices: Why, what, and how to get there - Meetupfiles.meetup.com/...CockCroft-Presentation-Microservices-Boston.pdf · Microservices: Why, what, and how to get there Adrian](https://reader031.vdocument.in/reader031/viewer/2022013009/5eca4fa03e03014e8747efaf/html5/thumbnails/119.jpg)
See http://www.getguesstimate.com/models/1307 https://github.com/getguesstimate/guesstimate-app by Ozzie Gooen
![Page 120: Microservices: Why, what, and how to get there - Meetupfiles.meetup.com/...CockCroft-Presentation-Microservices-Boston.pdf · Microservices: Why, what, and how to get there Adrian](https://reader031.vdocument.in/reader031/viewer/2022013009/5eca4fa03e03014e8747efaf/html5/thumbnails/120.jpg)
See http://www.getguesstimate.com/models/1307 https://github.com/getguesstimate/guesstimate-app by Ozzie Gooen
![Page 121: Microservices: Why, what, and how to get there - Meetupfiles.meetup.com/...CockCroft-Presentation-Microservices-Boston.pdf · Microservices: Why, what, and how to get there Adrian](https://reader031.vdocument.in/reader031/viewer/2022013009/5eca4fa03e03014e8747efaf/html5/thumbnails/121.jpg)
See http://www.getguesstimate.com/models/1307 https://github.com/getguesstimate/guesstimate-app by Ozzie Gooen
![Page 122: Microservices: Why, what, and how to get there - Meetupfiles.meetup.com/...CockCroft-Presentation-Microservices-Boston.pdf · Microservices: Why, what, and how to get there Adrian](https://reader031.vdocument.in/reader031/viewer/2022013009/5eca4fa03e03014e8747efaf/html5/thumbnails/122.jpg)
See http://www.getguesstimate.com/models/1307 https://github.com/getguesstimate/guesstimate-app by Ozzie Gooen
![Page 123: Microservices: Why, what, and how to get there - Meetupfiles.meetup.com/...CockCroft-Presentation-Microservices-Boston.pdf · Microservices: Why, what, and how to get there Adrian](https://reader031.vdocument.in/reader031/viewer/2022013009/5eca4fa03e03014e8747efaf/html5/thumbnails/123.jpg)
Hit rates: memcached 40% mysql 70%
![Page 124: Microservices: Why, what, and how to get there - Meetupfiles.meetup.com/...CockCroft-Presentation-Microservices-Boston.pdf · Microservices: Why, what, and how to get there Adrian](https://reader031.vdocument.in/reader031/viewer/2022013009/5eca4fa03e03014e8747efaf/html5/thumbnails/124.jpg)
memcached hit %
memcached response mysql response
service cpu time
memcached hit mode
mysql cache hit mode
mysql disk access mode
Hit rates: memcached 40% mysql 70%
![Page 125: Microservices: Why, what, and how to get there - Meetupfiles.meetup.com/...CockCroft-Presentation-Microservices-Boston.pdf · Microservices: Why, what, and how to get there Adrian](https://reader031.vdocument.in/reader031/viewer/2022013009/5eca4fa03e03014e8747efaf/html5/thumbnails/125.jpg)
Hit rates: memcached 60% mysql 70%
![Page 126: Microservices: Why, what, and how to get there - Meetupfiles.meetup.com/...CockCroft-Presentation-Microservices-Boston.pdf · Microservices: Why, what, and how to get there Adrian](https://reader031.vdocument.in/reader031/viewer/2022013009/5eca4fa03e03014e8747efaf/html5/thumbnails/126.jpg)
memcached hit %
memcached response mysql response
service cpu time
memcached hit mode
mysql cache hit mode
mysql disk access mode
Hit rates: memcached 60% mysql 70%
![Page 127: Microservices: Why, what, and how to get there - Meetupfiles.meetup.com/...CockCroft-Presentation-Microservices-Boston.pdf · Microservices: Why, what, and how to get there Adrian](https://reader031.vdocument.in/reader031/viewer/2022013009/5eca4fa03e03014e8747efaf/html5/thumbnails/127.jpg)
Hit rates: memcached 20% mysql 90%
![Page 128: Microservices: Why, what, and how to get there - Meetupfiles.meetup.com/...CockCroft-Presentation-Microservices-Boston.pdf · Microservices: Why, what, and how to get there Adrian](https://reader031.vdocument.in/reader031/viewer/2022013009/5eca4fa03e03014e8747efaf/html5/thumbnails/128.jpg)
memcached hit %
memcached response mysql response
service cpu time
memcached hit mode
mysql cache hit mode
mysql disk access mode
Hit rates: memcached 20% mysql 90%
![Page 129: Microservices: Why, what, and how to get there - Meetupfiles.meetup.com/...CockCroft-Presentation-Microservices-Boston.pdf · Microservices: Why, what, and how to get there Adrian](https://reader031.vdocument.in/reader031/viewer/2022013009/5eca4fa03e03014e8747efaf/html5/thumbnails/129.jpg)
Go Guesstimate Interfacehttps://github.com/adrianco/goguesstimate
{ "space": { "name": "gotest", "description": "Testing", "is_private": "true", "graph": { "metrics": [ {"id": "AB", "readableId": "AB", "name": "memcached", "location": {"row": 2, "column":4}}, {"id": "AC", "readableId": "AC", "name": "memcached percent", "location": {"row": 2, "column":3}}, {"id": "AD", "readableId": "AD", "name": "staash cpu", "location": {"row": 3, "column":3}}, {"id": "AE", "readableId": "AE", "name": "staash", "location": {"row": 3, "column":2}} ], "guesstimates": [ {"metric": "AB", "input": null, "guesstimateType": "DATA", "data": [119958,6066,13914,9595,6773,5867,2347,1333,9900,9404,13518,9021,7915,3733,10244,5461,12243,7931,9044,11706,5706,22861,9022,48661,15158,28995,16885,9564,17915,6610,7080,7065,12992,35431,11910,11465,14455,25790,8339,9991]}, {"metric": "AC", "input": "40", "guesstimateType": "POINT"}, {"metric": "AD", "input": "[1000,4000]", "guesstimateType": "NORMAL"}, {"metric": "AE", "input": "=100+((randomInt(0,100)>AC)?AB:AD)", "guesstimateType": "FUNCTION"} ] } } }
![Page 131: Microservices: Why, what, and how to get there - Meetupfiles.meetup.com/...CockCroft-Presentation-Microservices-Boston.pdf · Microservices: Why, what, and how to get there Adrian](https://reader031.vdocument.in/reader031/viewer/2022013009/5eca4fa03e03014e8747efaf/html5/thumbnails/131.jpg)
What’s Next?
![Page 132: Microservices: Why, what, and how to get there - Meetupfiles.meetup.com/...CockCroft-Presentation-Microservices-Boston.pdf · Microservices: Why, what, and how to get there Adrian](https://reader031.vdocument.in/reader031/viewer/2022013009/5eca4fa03e03014e8747efaf/html5/thumbnails/132.jpg)
Trends to watch for 2016:
Serverless Architectures - AWS Lambda
Teraservices - using terabytes of memory
![Page 133: Microservices: Why, what, and how to get there - Meetupfiles.meetup.com/...CockCroft-Presentation-Microservices-Boston.pdf · Microservices: Why, what, and how to get there Adrian](https://reader031.vdocument.in/reader031/viewer/2022013009/5eca4fa03e03014e8747efaf/html5/thumbnails/133.jpg)
Serverless Architectures
AWS Lambda getting some early wins
Google Cloud Functions alpha launched
IBM OpenWhisk - open sourced
Startup activity: iron.io , serverless.com, apex.run toolkit
![Page 134: Microservices: Why, what, and how to get there - Meetupfiles.meetup.com/...CockCroft-Presentation-Microservices-Boston.pdf · Microservices: Why, what, and how to get there Adrian](https://reader031.vdocument.in/reader031/viewer/2022013009/5eca4fa03e03014e8747efaf/html5/thumbnails/134.jpg)
Teraservices
![Page 135: Microservices: Why, what, and how to get there - Meetupfiles.meetup.com/...CockCroft-Presentation-Microservices-Boston.pdf · Microservices: Why, what, and how to get there Adrian](https://reader031.vdocument.in/reader031/viewer/2022013009/5eca4fa03e03014e8747efaf/html5/thumbnails/135.jpg)
Terabyte Memory Directions
Engulf dataset in memory for analytics
Balanced config for memory intensive workloads
Replace high end systems at commodity cost point
Explore non-volatile memory implications
![Page 136: Microservices: Why, what, and how to get there - Meetupfiles.meetup.com/...CockCroft-Presentation-Microservices-Boston.pdf · Microservices: Why, what, and how to get there Adrian](https://reader031.vdocument.in/reader031/viewer/2022013009/5eca4fa03e03014e8747efaf/html5/thumbnails/136.jpg)
Terabyte Memory Options
Now: Diablo DDR4 DIMM containing flash 64/128/256GB Migrates pages to/from companion DRAM DIMM Shipping now as volatile memory, future non-volatile
Announced but not shipped for 2016 AWS X1 Instance Type - over 2TB RAM Easy availability should drive innovation
![Page 137: Microservices: Why, what, and how to get there - Meetupfiles.meetup.com/...CockCroft-Presentation-Microservices-Boston.pdf · Microservices: Why, what, and how to get there Adrian](https://reader031.vdocument.in/reader031/viewer/2022013009/5eca4fa03e03014e8747efaf/html5/thumbnails/137.jpg)
Diablo Memory1: Flash DIMM
NO CHANGES to CPU or Server
NO CHANGES to Operating System
NO CHANGES to Applications✓ UP TO 256GB DDR4 MEMORY PER MODULE
✓ UP TO 4TB MEMORY IN 2 SOCKET SYSTEM
TM
![Page 138: Microservices: Why, what, and how to get there - Meetupfiles.meetup.com/...CockCroft-Presentation-Microservices-Boston.pdf · Microservices: Why, what, and how to get there Adrian](https://reader031.vdocument.in/reader031/viewer/2022013009/5eca4fa03e03014e8747efaf/html5/thumbnails/138.jpg)
Learn More…
![Page 139: Microservices: Why, what, and how to get there - Meetupfiles.meetup.com/...CockCroft-Presentation-Microservices-Boston.pdf · Microservices: Why, what, and how to get there Adrian](https://reader031.vdocument.in/reader031/viewer/2022013009/5eca4fa03e03014e8747efaf/html5/thumbnails/139.jpg)
Q&AAdrian Cockcroft @adrianco
http://slideshare.com/adriancockcroftTechnology Fellow - Battery Ventures
See www.battery.com for a list of portfolio investments
![Page 140: Microservices: Why, what, and how to get there - Meetupfiles.meetup.com/...CockCroft-Presentation-Microservices-Boston.pdf · Microservices: Why, what, and how to get there Adrian](https://reader031.vdocument.in/reader031/viewer/2022013009/5eca4fa03e03014e8747efaf/html5/thumbnails/140.jpg)
Security
Visit http://www.battery.com/our-companies/ for a full list of all portfolio companies in which all Battery Funds have invested.
Palo Alto Networks
Enterprise IT
Operations & Management
Big DataCompute
Networking
Storage