SlideShare ist ein Scribd-Unternehmen logo
1 von 45
Managing a Microservices 
THIRDCHANNEL 
Development Team 
Steve Pember 
CTO, ThirdChannel 
@svpember
THIRDCHANNEL
THIRDCHANNEL 
Agenda 
1. Service Design Philosophy (The Tech) 
2. Team Organization (Less Tech) 
3. What does it mean to be the CTO / Lead Tech person with 
Microservices?
Microservices
THIRDCHANNEL
Microservices To The Rescue 
• Distributed Application 
THIRDCHANNEL
THIRDCHANNEL
THIRDCHANNEL
Service Design
THIRDCHANNEL 
Service Design 
• A Service is a Bounded Context
THIRDCHANNEL 
Service Design 
• A Service is a Bounded Context 
• CAP Theorem
THIRDCHANNEL 
CAP Theorem (Brewer’s 
Conjecture) 
In a Distributed System, can have two of: 
• High (C)onsistency 
• High (A)vailability 
• High (P)artition Tolerance
THIRDCHANNEL
THIRDCHANNEL
THIRDCHANNEL 
CAP Theorem (Brewer’s 
Conjecture) 
• High (C)onsistency, (A)vailability, or (P)artition Tolerance 
• More of a Sliding Scale, Really
THIRDCHANNEL 
CAP Theorem (Brewer’s 
Conjecture) 
• High (C)onsistency, (A)vailability, or (P)artition Tolerance 
• More of a Sliding Scale, Really 
• Focus on Speed
THIRDCHANNEL 
CAP Theorem (Brewer’s 
Conjecture) 
• High (C)onsistency, (A)vailability, or (P)artition Tolerance 
• More of a Sliding Scale, Really 
• Focus on Speed 
• Embrace Eventual Consistency
THIRDCHANNEL 
Service Design 
• A Service is a Bounded Context 
• CAP Theorem 
• Data Locality
THIRDCHANNEL 
Data Locality 
• Spatial: how far away is the data?
THIRDCHANNEL 
Data Locality 
• Spatial: how far away is the data? 
• Temporal: how often is it accessed?
THIRDCHANNEL
THIRDCHANNEL
THIRDCHANNEL 
Data Locality 
• Spatial: how far away is the data? 
• Temporal: how often is it accessed? 
• Microservices Goal: Have highly Spatial Data and efficiently 
handle Temporal Data.
Team Organization
THIRDCHANNEL 
Team Organization 
• Multidisciplinary Teams
QA 
UX / Design 
Engineers 
DBAs 
THIRDCHANNEL 
Front End Service 
Internal Tools Services 
Order Management Service
THIRDCHANNEL 
Team Organization 
• Multidisciplinary Teams 
• Conway’s Law
THIRDCHANNEL 
Conway’s Law 
“organizations which design systems ... are constrained to 
produce designs which are copies of the communication 
structures of these organizations” 
-Melvin Conway, 1968 
http://en.wikipedia.org/wiki/Conway's_law
THIRDCHANNEL 
Team Organization 
• Multidisciplinary Teams 
• Conway’s Law 
• Autonomous Teams
Leadership Responsibilities
THIRDCHANNEL 
Leadership Responsbilities 
• Keep Teams Aligned with business goals
THIRDCHANNEL 
Leadership Responsbilities 
• Keep Teams Aligned with business goals 
• Drive Microservice Vision
THIRDCHANNEL 
Leadership Responsbilities 
• Keep Teams Aligned with business goals 
• Drive Microservice Vision 
• Defend Microservice Vision
THIRDCHANNEL 
Leadership Responsbilities 
• Keep Teams Aligned with business goals 
• Drive Microservice Vision 
• Defend Microservice Vision 
• Mentor & Educate
In Summary:
Data Locality is Scary
Empower Your Service Teams
Thank you!

Weitere ähnliche Inhalte

Was ist angesagt?

The hardest part of microservices: your data
The hardest part of microservices: your dataThe hardest part of microservices: your data
The hardest part of microservices: your data
Christian Posta
 

Was ist angesagt? (20)

Microservices Patterns and Anti-Patterns
Microservices Patterns and Anti-PatternsMicroservices Patterns and Anti-Patterns
Microservices Patterns and Anti-Patterns
 
A Transformation Journey
A Transformation JourneyA Transformation Journey
A Transformation Journey
 
The Application Server Platform of the Future - Container & Cloud Native and ...
The Application Server Platform of the Future - Container & Cloud Native and ...The Application Server Platform of the Future - Container & Cloud Native and ...
The Application Server Platform of the Future - Container & Cloud Native and ...
 
Are We Really Cloud-Native?
Are We Really Cloud-Native?Are We Really Cloud-Native?
Are We Really Cloud-Native?
 
How We Do DevOps at Walmart: OneOps OSS Application Lifecycle Management Plat...
How We Do DevOps at Walmart: OneOps OSS Application Lifecycle Management Plat...How We Do DevOps at Walmart: OneOps OSS Application Lifecycle Management Plat...
How We Do DevOps at Walmart: OneOps OSS Application Lifecycle Management Plat...
 
DOES15 - Ernest Mueller - DevOps Transformations At National Instruments and...
DOES15 - Ernest Mueller - DevOps Transformations At National Instruments and...DOES15 - Ernest Mueller - DevOps Transformations At National Instruments and...
DOES15 - Ernest Mueller - DevOps Transformations At National Instruments and...
 
Succeeding with DevOps Transformation - Rafal Gancarz
Succeeding with DevOps Transformation - Rafal GancarzSucceeding with DevOps Transformation - Rafal Gancarz
Succeeding with DevOps Transformation - Rafal Gancarz
 
The hardest part of microservices: your data
The hardest part of microservices: your dataThe hardest part of microservices: your data
The hardest part of microservices: your data
 
Transforming Culture at Bloomberg
Transforming Culture at BloombergTransforming Culture at Bloomberg
Transforming Culture at Bloomberg
 
Achieving a Serverless Development Experience
Achieving a Serverless Development ExperienceAchieving a Serverless Development Experience
Achieving a Serverless Development Experience
 
Who's Who in Container Land
Who's Who in Container LandWho's Who in Container Land
Who's Who in Container Land
 
Enable DevSecOps using Jira Software
 Enable DevSecOps using Jira Software Enable DevSecOps using Jira Software
Enable DevSecOps using Jira Software
 
Managing Data in Microservices
Managing Data in MicroservicesManaging Data in Microservices
Managing Data in Microservices
 
Developing applications with a microservice architecture (SVforum, microservi...
Developing applications with a microservice architecture (SVforum, microservi...Developing applications with a microservice architecture (SVforum, microservi...
Developing applications with a microservice architecture (SVforum, microservi...
 
Unlocked: the Hybrid Cloud - 12th May 2014 / All Slides (morning)
Unlocked: the Hybrid Cloud - 12th May 2014 / All Slides (morning)Unlocked: the Hybrid Cloud - 12th May 2014 / All Slides (morning)
Unlocked: the Hybrid Cloud - 12th May 2014 / All Slides (morning)
 
Nats meetup sf 20150826
Nats meetup sf   20150826Nats meetup sf   20150826
Nats meetup sf 20150826
 
Tackling customer issues in cloud native environments
Tackling customer issues in cloud native environmentsTackling customer issues in cloud native environments
Tackling customer issues in cloud native environments
 
Atlanta Microservices Day: Istio Service Mesh
Atlanta Microservices Day: Istio Service MeshAtlanta Microservices Day: Istio Service Mesh
Atlanta Microservices Day: Istio Service Mesh
 
Microservices Journey Fall 2017
Microservices Journey Fall 2017Microservices Journey Fall 2017
Microservices Journey Fall 2017
 
Concurrency at Scale: Evolution to Micro-Services
Concurrency at Scale:  Evolution to Micro-ServicesConcurrency at Scale:  Evolution to Micro-Services
Concurrency at Scale: Evolution to Micro-Services
 

Andere mochten auch

Andere mochten auch (6)

An Introduction to jOOQ
An Introduction to jOOQAn Introduction to jOOQ
An Introduction to jOOQ
 
Harnessing Spark and Cassandra with Groovy
Harnessing Spark and Cassandra with GroovyHarnessing Spark and Cassandra with Groovy
Harnessing Spark and Cassandra with Groovy
 
Surviving in a microservices environment
Surviving in a microservices environmentSurviving in a microservices environment
Surviving in a microservices environment
 
Microservices: The Organizational and People Impact
Microservices: The Organizational and People ImpactMicroservices: The Organizational and People Impact
Microservices: The Organizational and People Impact
 
Revolutionizing Radiology with Deep Learning: The Road to RSNA 2017
Revolutionizing Radiology with Deep Learning: The Road to RSNA 2017Revolutionizing Radiology with Deep Learning: The Road to RSNA 2017
Revolutionizing Radiology with Deep Learning: The Road to RSNA 2017
 
Top 5 Deep Learning and AI Stories - October 6, 2017
Top 5 Deep Learning and AI Stories - October 6, 2017Top 5 Deep Learning and AI Stories - October 6, 2017
Top 5 Deep Learning and AI Stories - October 6, 2017
 

Ähnlich wie Managing a Microservices Development Team (And advanced Microservice concerns)

Umm, how did you get that number? Managing Data Integrity throughout the Data...
Umm, how did you get that number? Managing Data Integrity throughout the Data...Umm, how did you get that number? Managing Data Integrity throughout the Data...
Umm, how did you get that number? Managing Data Integrity throughout the Data...
John Kinmonth
 

Ähnlich wie Managing a Microservices Development Team (And advanced Microservice concerns) (20)

Umm, how did you get that number? Managing Data Integrity throughout the Data...
Umm, how did you get that number? Managing Data Integrity throughout the Data...Umm, how did you get that number? Managing Data Integrity throughout the Data...
Umm, how did you get that number? Managing Data Integrity throughout the Data...
 
Scrum in dev ops teams - Presentation from Scrum Gathering Bangalore
Scrum in dev ops teams - Presentation from Scrum Gathering BangaloreScrum in dev ops teams - Presentation from Scrum Gathering Bangalore
Scrum in dev ops teams - Presentation from Scrum Gathering Bangalore
 
Cloud and Industry4.0
Cloud and Industry4.0Cloud and Industry4.0
Cloud and Industry4.0
 
What are microservices
What are microservicesWhat are microservices
What are microservices
 
How to Avoid Cloud Confusion, DevOps dilemma, Microservice Madness
How to Avoid Cloud Confusion, DevOps dilemma, Microservice MadnessHow to Avoid Cloud Confusion, DevOps dilemma, Microservice Madness
How to Avoid Cloud Confusion, DevOps dilemma, Microservice Madness
 
Accelerate Delivery: Business case for Agile DevOps, CI/CD and Microservices
Accelerate Delivery: Business case for Agile DevOps, CI/CD and MicroservicesAccelerate Delivery: Business case for Agile DevOps, CI/CD and Microservices
Accelerate Delivery: Business case for Agile DevOps, CI/CD and Microservices
 
Sidecars and a Microservices Mesh
Sidecars and a Microservices MeshSidecars and a Microservices Mesh
Sidecars and a Microservices Mesh
 
Surviving as a Monolith in a Microservices World - by Blair Olynyk, Hyperwallet
Surviving as a Monolith in a Microservices World - by Blair Olynyk, HyperwalletSurviving as a Monolith in a Microservices World - by Blair Olynyk, Hyperwallet
Surviving as a Monolith in a Microservices World - by Blair Olynyk, Hyperwallet
 
2017 bio it world
2017 bio it world2017 bio it world
2017 bio it world
 
A Microservice Journey
A Microservice JourneyA Microservice Journey
A Microservice Journey
 
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
 
Smaller is Better - Exploiting Microservice Architectures on AWS - Technical 201
Smaller is Better - Exploiting Microservice Architectures on AWS - Technical 201Smaller is Better - Exploiting Microservice Architectures on AWS - Technical 201
Smaller is Better - Exploiting Microservice Architectures on AWS - Technical 201
 
Testing Microservices
Testing MicroservicesTesting Microservices
Testing Microservices
 
DevOpsDaysRiga 2018: Antonio Pigna - Put the brAIn into your DevOps workflow
DevOpsDaysRiga 2018: Antonio Pigna - Put the brAIn into your DevOps workflowDevOpsDaysRiga 2018: Antonio Pigna - Put the brAIn into your DevOps workflow
DevOpsDaysRiga 2018: Antonio Pigna - Put the brAIn into your DevOps workflow
 
OrteliusMicroserviceVisionaries2022_Why do you need a microservice catalog to...
OrteliusMicroserviceVisionaries2022_Why do you need a microservice catalog to...OrteliusMicroserviceVisionaries2022_Why do you need a microservice catalog to...
OrteliusMicroserviceVisionaries2022_Why do you need a microservice catalog to...
 
Microservices Gone Wrong!
Microservices Gone Wrong!Microservices Gone Wrong!
Microservices Gone Wrong!
 
The Misuse of Cloud Infrastructure
The Misuse of Cloud InfrastructureThe Misuse of Cloud Infrastructure
The Misuse of Cloud Infrastructure
 
I Love APIs 2015: Microservices at Amazon
I Love APIs 2015: Microservices at AmazonI Love APIs 2015: Microservices at Amazon
I Love APIs 2015: Microservices at Amazon
 
AWS Summit Auckland - Smaller is Better - Microservices on AWS
AWS Summit Auckland - Smaller is Better - Microservices on AWSAWS Summit Auckland - Smaller is Better - Microservices on AWS
AWS Summit Auckland - Smaller is Better - Microservices on AWS
 
Conways Law & Continuous Delivery
Conways Law & Continuous DeliveryConways Law & Continuous Delivery
Conways Law & Continuous Delivery
 

Mehr von Steve Pember

Surviving in a Microservices Environment
Surviving in a Microservices EnvironmentSurviving in a Microservices Environment
Surviving in a Microservices Environment
Steve Pember
 
An introduction to Reactive applications, Reactive Streams, and options for t...
An introduction to Reactive applications, Reactive Streams, and options for t...An introduction to Reactive applications, Reactive Streams, and options for t...
An introduction to Reactive applications, Reactive Streams, and options for t...
Steve Pember
 
A year with event sourcing and CQRS
A year with event sourcing and CQRSA year with event sourcing and CQRS
A year with event sourcing and CQRS
Steve Pember
 
An Introduction to Reactive Application, Reactive Streams, and options for JVM
An Introduction to Reactive Application, Reactive Streams, and options for JVMAn Introduction to Reactive Application, Reactive Streams, and options for JVM
An Introduction to Reactive Application, Reactive Streams, and options for JVM
Steve Pember
 
Advanced Microservices - Greach 2015
Advanced Microservices - Greach 2015Advanced Microservices - Greach 2015
Advanced Microservices - Greach 2015
Steve Pember
 

Mehr von Steve Pember (20)

Anatomy of a Spring Boot App with Clean Architecture - Spring I/O 2023
Anatomy of a Spring Boot App with Clean Architecture - Spring I/O 2023Anatomy of a Spring Boot App with Clean Architecture - Spring I/O 2023
Anatomy of a Spring Boot App with Clean Architecture - Spring I/O 2023
 
SACon 2019 - Surviving in a Microservices Environment
SACon 2019 - Surviving in a Microservices EnvironmentSACon 2019 - Surviving in a Microservices Environment
SACon 2019 - Surviving in a Microservices Environment
 
Surviving in a Microservices environment -abridged
Surviving in a Microservices environment -abridgedSurviving in a Microservices environment -abridged
Surviving in a Microservices environment -abridged
 
Gradle Show and Tell
Gradle Show and TellGradle Show and Tell
Gradle Show and Tell
 
Greach 2018: Surviving Microservices
Greach 2018: Surviving MicroservicesGreach 2018: Surviving Microservices
Greach 2018: Surviving Microservices
 
Reactive All the Way Down the Stack
Reactive All the Way Down the StackReactive All the Way Down the Stack
Reactive All the Way Down the Stack
 
Event storage in a distributed system
Event storage in a distributed systemEvent storage in a distributed system
Event storage in a distributed system
 
Surviving in a Microservices Environment
Surviving in a Microservices EnvironmentSurviving in a Microservices Environment
Surviving in a Microservices Environment
 
An introduction to Reactive applications, Reactive Streams, and options for t...
An introduction to Reactive applications, Reactive Streams, and options for t...An introduction to Reactive applications, Reactive Streams, and options for t...
An introduction to Reactive applications, Reactive Streams, and options for t...
 
Reactive Streams and the Wide World of Groovy
Reactive Streams and the Wide World of GroovyReactive Streams and the Wide World of Groovy
Reactive Streams and the Wide World of Groovy
 
A year with event sourcing and CQRS
A year with event sourcing and CQRSA year with event sourcing and CQRS
A year with event sourcing and CQRS
 
An Introduction to Reactive Application, Reactive Streams, and options for JVM
An Introduction to Reactive Application, Reactive Streams, and options for JVMAn Introduction to Reactive Application, Reactive Streams, and options for JVM
An Introduction to Reactive Application, Reactive Streams, and options for JVM
 
Reactive Streams and the Wide World of Groovy
Reactive Streams and the Wide World of GroovyReactive Streams and the Wide World of Groovy
Reactive Streams and the Wide World of Groovy
 
Richer Data History with Event Sourcing (SpringOne 2GX 2015
Richer Data History with Event Sourcing (SpringOne 2GX 2015Richer Data History with Event Sourcing (SpringOne 2GX 2015
Richer Data History with Event Sourcing (SpringOne 2GX 2015
 
Springone2gx 2015 Reactive Options for Groovy
Springone2gx 2015  Reactive Options for GroovySpringone2gx 2015  Reactive Options for Groovy
Springone2gx 2015 Reactive Options for Groovy
 
Gr8conf US 2015 - Intro to Event Sourcing with Groovy
Gr8conf US 2015 - Intro to Event Sourcing with GroovyGr8conf US 2015 - Intro to Event Sourcing with Groovy
Gr8conf US 2015 - Intro to Event Sourcing with Groovy
 
Gr8conf US 2015: Reactive Options for Groovy
Gr8conf US 2015: Reactive Options for GroovyGr8conf US 2015: Reactive Options for Groovy
Gr8conf US 2015: Reactive Options for Groovy
 
Groovy Options for Reactive Applications - Greach 2015
Groovy Options for Reactive Applications - Greach 2015Groovy Options for Reactive Applications - Greach 2015
Groovy Options for Reactive Applications - Greach 2015
 
Advanced Microservices - Greach 2015
Advanced Microservices - Greach 2015Advanced Microservices - Greach 2015
Advanced Microservices - Greach 2015
 
Richer data-history-event-sourcing
Richer data-history-event-sourcingRicher data-history-event-sourcing
Richer data-history-event-sourcing
 

Kürzlich hochgeladen

AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
VictorSzoltysek
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
mohitmore19
 

Kürzlich hochgeladen (20)

The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
Exploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfExploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdf
 
How to Choose the Right Laravel Development Partner in New York City_compress...
How to Choose the Right Laravel Development Partner in New York City_compress...How to Choose the Right Laravel Development Partner in New York City_compress...
How to Choose the Right Laravel Development Partner in New York City_compress...
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
10 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 202410 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 2024
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 

Managing a Microservices Development Team (And advanced Microservice concerns)

Hinweis der Redaktion

  1. me work for This is “Managing a Microservices Development Team” or “Advanced Microservices Concerns”, “Steve spews a bunch of random Microservice facts at you”
  2. -I don’t have much time up here, so I’d be happy to talk later about what we do at 3C. Essentially, we’re doing some very cool things with predictive analytics in the Retail space. -for the past 6 plus months, we’ve been building up a decently sized Microservices system. Before that, I spent years as a Principal Consultant with a local agency called Cantina, where we were big proponents of Microservices - I’m hoping to share some of the advanced concerns we’ve run into at Thirdchannel while working with the architecture
  3. In the next few minutes, I will hopefully discuss: Serious concerns you should have when designing the services advanced team organization practices what role you, as technical leaders in your organization, should have with a Microservice dev team
  4. -Who here has heard of Microservice Architecture? -Is anyone actually using it at your company, or worked with it previously? -I’m going to assume familiarity , but quickly cover one of the main reasons why I gravitated towards the architecture: fighting the Monolith
  5. A common approach to building web applications these days is to build a Monolithic application -this particularly pops up when using a framework like Rails, Node, etc. I consider this an anti-pattern and find them very dangerous; I saw it routinely as a consultant: it would invariably result in slow, brittle code and the dev teams would miss every release deadline.
  6. A Monolith is a Single logical unit, everything is contained within one code base. This diagram is of An example commerce app: cloud is the internet, box is the single code base, orange is the database, blue icons are individual components. Monoliths are dangerous because they feel natural. It’s so easy to simply add one more controller, one more model, one more database migration script, than to think about your application in the longer term
  7. It feels like the right thing to do. A quick, easy way to get what you need working, it seems very enticing. Soon enough though, you’ll start running into problems: highly complex code development speed will grind to a halt as the complexity of the application grows I could go on, but not a lot of time
  8. Microservices are an alternative architecture which effectively combats the monolith. They’re really just a distributed application… a more focused version of Service Oriented Architcture.
  9. Taking our example, converting this to micro services would involve:
  10. breaking up each component into its own individual deployed logical units. Individual code bases, etc.
  11. Borrowed this slide from Martin Fowler’s website. All the greatness of Microservices can be derived from this image As demand on the application grows, I can scale just the components that are needed, rather than needing to replicate the whole monolith as demand grows
  12. I could go on at length about why that approach is a huge win, but there’s not enough time and you all probably know anyway. Be happy to talk about it later. Let’s move onto Service Design, or… things you should be focused on when designing and building your individual services
  13. A service should be an authoritative source on one thing. A service should be small. It is ‘micro’, after all. Some people will argue about lines of code or file size or something, but I think a better metric is ‘developer head space’. In other words, your service should ”bound the context” of its responsibility to the degree that a developer can hold the whole thing in his or her head. No more.
  14. Next up is the CAP Theorem.
  15. The Cap Theorem was originally called “Brewer’s Conjecture” The theorem states that a Distributed System can have two of… - high consistency: when a data change occurs in the system, everything knows about it at once high availability: a system should efficiently and quickly process every request. No dropped or ignored requests High partition tolerance: Services should still operate even if others are down. Independent things fail independently.
  16. For a web Application, we most likely want our services to be highly available and partition tolerant. Which means that data consistency will happen later Users get real mad when things are slow or appear broken Giving a little bit on consistency is ok. Updates should eventually propagate. If I place an order, I tell the user ‘Hey Thanks”, they go on about their day, and then I send the data over - eventually - to the order system, which -eventually- process the order and eventually deducts from inventory, etc. We’re talking of course about fractions of seconds. This term is called ‘eventual consistency’. A banking system, however, is something that should probably be highly consistent
  17. The Cap Theorem was proved in 2012 in this paper; before that it was simply a ‘Conjecture’. Interestingly, a bit of trivia: this paper also introduced the term ‘Eventual Consistency’
  18. The paper also states that CAP is a bit of a sliding scale… for example we can sacrifice a bit on Availability to have more Consistency
  19. That being said, if you’re building a web app, focus on speed. Your customers will never forgive a slow application. -Besides, the faster you are, the more money and data you can collect. -Build your services so that they follow asynchronous, non-blocking patterns in order to avoid resource contention. -Offload tasks to message queues. -Try out the Reactor pattern (there’s a great library for JVM languages called ‘Reactor’, btw). I could go on and on about this particular topic
  20. Embrace the idea of Eventual Consistency. It’s ok to let data changes propagate asynchronously through your system, so long as they get there eventually. -Users will forgive small mistakes. -I can talk about some examples of this afterwards if anyone is interested
  21. Getting back to Service Design, Let’s talk about a concept called ‘Data Locality’. I think that this is perhaps the most important point in this wole presentation. IT’s a bit of complicated subject, and I’m not sure I fully understand it myself.
  22. There are two aspects of data locality: 1. Spatial. How proximal is our data? In a single data base, data can be considered highly spatial if it’s in the same table. Data which is reachable by joins is less spatial and perhaps less efficient to reach
  23. 2. Temporal. Being highly temporal means that data is read frequently. Highly temporal data - is an excellent candidate for caching. These terms take on slightly different meanings in a distributed system, though.
  24. In an ideal distributed environment, each system would be completely separate. -However, there will always be some conceptual overlap. For example, let’s say we have an ecommerce system where <describe system>. -Red lines are anchors between data localities Here, users’ uuid is a shared natural key which acts as each services’ anchor to understanding the concept of a User. Our user service is the authoritative source on a User Our order history system also understands the User, but simply maintains the order history along with the user uuid of the user placing the order
  25. Same chart from before, but another service, communication via email. This service also conceptualizes the user, but with a different subset of information. Namely, the email address. Email address is stored in the user information service, but is *also* used extensively by the communication service. Which one should be the authoritative source? The communication service uses it more (and thus has higher Temporal locality), but email is a key piece of information which should be managed by the user auth system. Tough Choice One Compromise is to (unfortunately) synchronize the email address across multiple services Or, communication service has no concept of User’s email address, but simply blindly sends emails out. The email addresses involved must be placed into each message received by the Communication service Or, third option, perhaps we cache the email address on the communication service and wait for an event or notification from the user service when it changes (Eventual consistency, eh? When the user changes their email address, the communication service eventually - with eventually being perhaps milliseconds - busts the cache and resets the email address. The user may miss an email until that happens, and that may be ok).
  26. I think the goal of a Microservices Architecture with regards to Data Locality is to keep high spatial locality, and yet efficiently handle situations like the one I just described when dealing with temporal data.
  27. Next let’s talk about team organization
  28. Your engineering department should be broken up into multidisciplinary teams.
  29. Each service should have a team assigned to and be responsible for it. Teams should be built from members with different skill sets
  30. In fact, there should be no more teams broken up by discipline. That is, there should be no ‘QA team’, or ‘UX Team’, or … the remote corner of your office where the DBAs sit. Each service’s team should be comprised of different disciplines that all work together. That being said, there may be some team overlap, especially for startups which have a small developer base anyway. One of the best working environments I’ve had was working directly with a QA person sitting next to me.
  31. Next, Conway’s law!
  32. Somewhat tongue and cheek, but basically says that the structure of any given computer system will begin to reflect the social structures of the company that built it. While yes, teams should be organized around services, these services still need to communicate with one another. Thus, encourage your teams to discuss the global picture. Have Team Leads meet periodically, particularly when discussing new service queries or events.
  33. Do your absolute best to encourage team communication. The last thing you want is for a service to be down / broken, and have the rest of the staff laying blame on the beleaguered service’s team, rather than trying to help fix issues. Also consider rotating individual team members into new teams periodically.
  34. Third, Empower your teams to be highly autonomous on how they operate. Let them choose technologies (within reason; we may not be ready for Go or Haskell), let them run deployments, let them choose the approach.
  35. -But they also need to be aligned well with the business. Essentially, provide the end goal, and let the team figure out how best to get there. -I borrowed this drawing from a Spotify blog post on their engineering culture, and it shows the concept of a highly Aligned, highly Autonomous team. -As leaders in your businesses, it’s your responsibility to keep the teams aligned with the business goals.
  36. Which leads me to my last topic: your responsibilities as leaders.
  37. Your engineering team will need someone (e.g. YOU) or a team of folks to ensure that the Microservice vision is being preserved. That is, keep individual services from getting too monolithic. Lead discussions on micro service or distributed computing. Build up the communication libraries or messaging approaches. E.g. design a common messaging format that each service communicates on.
  38. You are going to run into developers who don’t see the distributed approach as the right idea. They will question you. They will complain. They will say how much easier it is to simply have all of the data in one database…. don’t give in! Part of your job is to reassure them. To educate. To prove that this is a viable architecture pattern! It is tough, though. I’ve found that some people gravitate towards this approach right away, and others need convincing.
  39. Anyway, I’m nearly out of time. In summary:
  40. Empower your service teams to be autonomous with their decision making