SlideShare uma empresa Scribd logo
1 de 53
Microservices:
Service Oriented Development
Rafael Schloming
InfoQ.com: News & Community Site
• Over 1,000,000 software developers, architects and CTOs read the site world-
wide every month
• 250,000 senior developers subscribe to our weekly newsletter
• Published in 4 languages (English, Chinese, Japanese and Brazilian
Portuguese)
• Post content from our QCon conferences
• 2 dedicated podcast channels: The InfoQ Podcast, with a focus on
Architecture and The Engineering Culture Podcast, with a focus on building
• 96 deep dives on innovative topics packed as downloadable emags and
minibooks
• Over 40 new content items per week
Watch the video with slide
synchronization on InfoQ.com!
https://www.infoq.com/presentations/
service-oriented-development
Purpose of QCon
- to empower software development by facilitating the spread of
knowledge and innovation
Strategy
- practitioner-driven conference designed for YOU: influencers of
change and innovation in your teams
- speakers and topics driving the evolution and innovation
- connecting and catalyzing the influencers and innovators
Highlights
- attended by more than 12,000 delegates since 2007
- held in 9 cities worldwide
Presented at QCon San Francisco
www.qconsf.com
datawire.io
How do I break up my monolith?
How do I architect my app with microservices?
What infrastructure do I need in place before I
can benefit from microservices?
2
datawire.io
● Building a cloud application using
microservices in 2013
● Distributed systems engineers
● Multiple services
● Prototyping was really fast
● … then we launched and things
slowed down…
3
Microservices at Datawire ...
datawire.io
Debugging Velocity (or lack thereof)
4
datawire.io
Tooling
Architecture
Process!!!
5
datawire.io
Debugging our Pipeline
6
datawire.io
Velocity comes from Process, not
Architecture
7
datawire.io
Service Oriented Architecture
Service Oriented Development
8
datawire.io 9
Stability/Maturity
Velocity
Prototype Production Mission critical
datawire.io 10
Stability/Maturity
Velocity
Prototype Production Mission critical
datawire.io
A single process is inefficient
(Forces a single Stability vs Velocity Tradeoff)
11
datawire.io 12
Define
Code
Test
Release
Prod
datawire.io 13
Define
Code
Test
Release
Prod
Centralized process
● Specialized teams
● Fixed policies (e.g.,
release criteria)
datawire.io
A single process doesn’t scale
14
datawire.io
How do I break up my monolith?
How do I break up my process?
15
datawire.io 16
Microservices lets you run multiple processes!
datawire.io
Microservices is a distributed
development architecture
workflow.
17
datawire.io 18
Stability/Maturity
Velocity
Prototype Production Mission critical
● How do I get to Continuous Deployment incrementally?
● How do I limit the scope of PCI (audit process)?
● How do I ship feature X as fast as possible?
datawire.io
Microservices is ...
● Multiple workflows
○ Including your existing workflow!
○ Workflows designed for different
stability/velocity tradeoffs
● Simultaneous workflows
19
datawire.io
Doing things this way shifts how people operate!
● Requires both organizational and technical changes
20
datawire.io
Organizational Implementation
21
datawire.io
You gotta give in order to get
22
Education
● Everyone exposed to full dev cycle
Communication
● Nobody speaks the same language
Delegation
● Small teams own big important parts
datawire.io
But you get a lot
23
Education
● Specialists become generalists -> Better holistic systems
● Learning, personal growth -> Job satisfaction
Communication
● Conflict -> Collaboration
Delegation
● Massive organizational scale
datawire.io
Create self-sufficient, autonomous
software teams.
24
datawire.io
Why self-sufficiency and autonomy?
● Self-sufficient
○ Team does not need to rely on other teams to achieve its goals
● Autonomy
○ Team is able to independently make (process) decisions on how to achieve its goals
25
datawire.io
Eliminate centralized specialist functions
26
Centralized architecture
Centralized infrastructure / ops*
(You might need a platform team)
datawire.io
Think Spinoff
27
datawire.io 28
Monolith
datawire.io 29
Monolith
Microservice
Team
datawire.io
Technical Implementation
30
datawire.io
The Workflows
31
Prototype
Production Users
& Growth
Mission CriticalStage
Goals
Fast Feedback
from both
Tools & Users
Add Features
&
Don’t Disrupt
Users
Stability
datawire.io
One Platform, Parallel Workflows, Seamless Transitions
32
Stage 1: Rapid
development,
early users
Stage 2: Users
Stage 3: Internal
users, coupling
Stage
Goals Doesn’t crash...
Minimal
disruption to
users...
No cascade
failures...
Stage 1: Rapid
development,
early users
Stage 2: Users
Stage 3: Internal
users, coupling
Stage 1: Rapid
development,
early users
Stage 2: Users
Stage 3: Internal
users, couplingPrototype
Production Users
& Growth
Mission Critical
Doesn’t crash...
Minimal
disruption to
users...
No cascade
failures...Doesn’t crash...
Minimal
disruption to
users...
No cascade
failures...
Fast Feedback
from both
Tools & Users
Add Features
&
Don’t Disrupt
Users
Stability
datawire.io
Kubernetes / Docker / Envoy give you the infra you need
33
datawire.io
How do I actually use these technologies to
build my workflows?
34
datawire.io 35
Stage 1: Prototyping
Org Problem:
You need buy-in for prototyping in
production
Goal:
Fast Feedback from both Tools and
Users
Tech Problem:
You can’t run microservices locally
datawire.io 36
Strategy:
Self Service Provisioning
&
Development Containers
datawire.io
Make this fast and easy!
● Too much friction leads to accidental coupling
Provide fast self-service provisioning
37
datawire.io
Problem: Coding on remote infra is slow...
VM based pipeline:
● Deploy time: maybe 45 minutes?
Docker based pipeline:
● Deploy time: maybe a few minutes?
Hacking react on my laptop with live reload:
● Maybe 1-2 seconds?
Hacking flask on my laptop with live reload:
● Instantaneous
38
datawire.io
How can we do better?
39
datawire.io
Develop inside a container
Helps with onboarding and jumping between services:
● Single source of truth for build & dependencies
● Consistent and portable dev environment
You can make a faster feedback loop:
1. Sync local files -> remote build
2. Sync local files -> local build; snapshot image; deploy in seconds
3. Sync local files -> local build; proxy into remote cluster
Shameless self promotion:
● See https://forge.sh for (2) and https://telepresence.io for (3)
40
datawire.io
Fast Deploy == Resilience
41
datawire.io 42
Stage 2: Production Users & Growth
Org Problems:
Recognize the Tradeoff
&
How to measure user impact
Goal:
Add Features
&
Don’t Disrupt Users
Tech Problem:
Software Bugs
datawire.io 43
Strategy:
Genetic Diversity
(Multiversion Deployment)
datawire.io
Multiple versions for software redundancy
44
End user
Primary version
Canary version
Dev version
datawire.io 45
Stage 3: Mission Critical
Org Problem:
Avoid regressing
Goal:
Stability
Tech Problem:
L7 Observability
datawire.io 46
Strategy:
Service Level Objectives
&
L7 Observability
datawire.io
Cascade Failures
47
A B C D EX
datawire.io
Summary
1. Start with: “How do I break up my monolithic process?”
2. Spinoff self sufficient & autonomous teams
3. Build awesome tooling for Service Oriented Development
48
datawire.io
Thank you!
● rhs@datawire.io
● If you want to learn more about these ideas, check out our hands-on tutorial here:
○ https://datawire.io/faster
● If you’re interested in any of our open source tools, check them out:
○ https://forge.sh for deployment
○ https://www.telepresence.io for real-time live coding
○ https://www.getambassador.io self-service API Gateway built on Envoy
49
END
Watch the video with slide
synchronization on InfoQ.com!
https://www.infoq.com/presentations/
service-oriented-development

Mais conteúdo relacionado

Mais de C4Media

Mais de C4Media (20)

Shifting Left with Cloud Native CI/CD
Shifting Left with Cloud Native CI/CDShifting Left with Cloud Native CI/CD
Shifting Left with Cloud Native CI/CD
 
CI/CD for Machine Learning
CI/CD for Machine LearningCI/CD for Machine Learning
CI/CD for Machine Learning
 
Fault Tolerance at Speed
Fault Tolerance at SpeedFault Tolerance at Speed
Fault Tolerance at Speed
 
Architectures That Scale Deep - Regaining Control in Deep Systems
Architectures That Scale Deep - Regaining Control in Deep SystemsArchitectures That Scale Deep - Regaining Control in Deep Systems
Architectures That Scale Deep - Regaining Control in Deep Systems
 
ML in the Browser: Interactive Experiences with Tensorflow.js
ML in the Browser: Interactive Experiences with Tensorflow.jsML in the Browser: Interactive Experiences with Tensorflow.js
ML in the Browser: Interactive Experiences with Tensorflow.js
 
Build Your Own WebAssembly Compiler
Build Your Own WebAssembly CompilerBuild Your Own WebAssembly Compiler
Build Your Own WebAssembly Compiler
 
User & Device Identity for Microservices @ Netflix Scale
User & Device Identity for Microservices @ Netflix ScaleUser & Device Identity for Microservices @ Netflix Scale
User & Device Identity for Microservices @ Netflix Scale
 
Scaling Patterns for Netflix's Edge
Scaling Patterns for Netflix's EdgeScaling Patterns for Netflix's Edge
Scaling Patterns for Netflix's Edge
 
Make Your Electron App Feel at Home Everywhere
Make Your Electron App Feel at Home EverywhereMake Your Electron App Feel at Home Everywhere
Make Your Electron App Feel at Home Everywhere
 
The Talk You've Been Await-ing For
The Talk You've Been Await-ing ForThe Talk You've Been Await-ing For
The Talk You've Been Await-ing For
 
Future of Data Engineering
Future of Data EngineeringFuture of Data Engineering
Future of Data Engineering
 
Automated Testing for Terraform, Docker, Packer, Kubernetes, and More
Automated Testing for Terraform, Docker, Packer, Kubernetes, and MoreAutomated Testing for Terraform, Docker, Packer, Kubernetes, and More
Automated Testing for Terraform, Docker, Packer, Kubernetes, and More
 
Navigating Complexity: High-performance Delivery and Discovery Teams
Navigating Complexity: High-performance Delivery and Discovery TeamsNavigating Complexity: High-performance Delivery and Discovery Teams
Navigating Complexity: High-performance Delivery and Discovery Teams
 
High Performance Cooperative Distributed Systems in Adtech
High Performance Cooperative Distributed Systems in AdtechHigh Performance Cooperative Distributed Systems in Adtech
High Performance Cooperative Distributed Systems in Adtech
 
Rust's Journey to Async/await
Rust's Journey to Async/awaitRust's Journey to Async/await
Rust's Journey to Async/await
 
Opportunities and Pitfalls of Event-Driven Utopia
Opportunities and Pitfalls of Event-Driven UtopiaOpportunities and Pitfalls of Event-Driven Utopia
Opportunities and Pitfalls of Event-Driven Utopia
 
Datadog: a Real-Time Metrics Database for One Quadrillion Points/Day
Datadog: a Real-Time Metrics Database for One Quadrillion Points/DayDatadog: a Real-Time Metrics Database for One Quadrillion Points/Day
Datadog: a Real-Time Metrics Database for One Quadrillion Points/Day
 
Are We Really Cloud-Native?
Are We Really Cloud-Native?Are We Really Cloud-Native?
Are We Really Cloud-Native?
 
CockroachDB: Architecture of a Geo-Distributed SQL Database
CockroachDB: Architecture of a Geo-Distributed SQL DatabaseCockroachDB: Architecture of a Geo-Distributed SQL Database
CockroachDB: Architecture of a Geo-Distributed SQL Database
 
A Dive into Streams @LinkedIn with Brooklin
A Dive into Streams @LinkedIn with BrooklinA Dive into Streams @LinkedIn with Brooklin
A Dive into Streams @LinkedIn with Brooklin
 

Último

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Último (20)

Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 

Service-oriented Development