SlideShare une entreprise Scribd logo
1  sur  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!

Contenu connexe

Tendances

Microservices Patterns and Anti-Patterns
Microservices Patterns and Anti-PatternsMicroservices Patterns and Anti-Patterns
Microservices Patterns and Anti-PatternsCorneil du Plessis
 
A Transformation Journey
A Transformation JourneyA Transformation Journey
A Transformation JourneyVMware Tanzu
 
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 ...Lucas Jellema
 
Are We Really Cloud-Native?
Are We Really Cloud-Native?Are We Really Cloud-Native?
Are We Really Cloud-Native?C4Media
 
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...WalmartLabs
 
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...Gene Kim
 
Succeeding with DevOps Transformation - Rafal Gancarz
Succeeding with DevOps Transformation - Rafal GancarzSucceeding with DevOps Transformation - Rafal Gancarz
Succeeding with DevOps Transformation - Rafal GancarzOpenCredo
 
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 dataChristian Posta
 
Transforming Culture at Bloomberg
Transforming Culture at BloombergTransforming Culture at Bloomberg
Transforming Culture at BloombergVMware Tanzu
 
Achieving a Serverless Development Experience
Achieving a Serverless Development ExperienceAchieving a Serverless Development Experience
Achieving a Serverless Development ExperienceIvan Dwyer
 
Who's Who in Container Land
Who's Who in Container LandWho's Who in Container Land
Who's Who in Container LandMike Kavis
 
Enable DevSecOps using Jira Software
 Enable DevSecOps using Jira Software Enable DevSecOps using Jira Software
Enable DevSecOps using Jira SoftwareAtlassian
 
Managing Data in Microservices
Managing Data in MicroservicesManaging Data in Microservices
Managing Data in MicroservicesRandy Shoup
 
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...Chris Richardson
 
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)Rackspace Academy
 
Nats meetup sf 20150826
Nats meetup sf   20150826Nats meetup sf   20150826
Nats meetup sf 20150826Apcera
 
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 environmentsLibbySchulze
 
Atlanta Microservices Day: Istio Service Mesh
Atlanta Microservices Day: Istio Service MeshAtlanta Microservices Day: Istio Service Mesh
Atlanta Microservices Day: Istio Service MeshChristian Posta
 
Microservices Journey Fall 2017
Microservices Journey Fall 2017Microservices Journey Fall 2017
Microservices Journey Fall 2017Christian Posta
 
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-ServicesRandy Shoup
 

Tendances (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
 

En vedette

An Introduction to jOOQ
An Introduction to jOOQAn Introduction to jOOQ
An Introduction to jOOQSteve Pember
 
Harnessing Spark and Cassandra with Groovy
Harnessing Spark and Cassandra with GroovyHarnessing Spark and Cassandra with Groovy
Harnessing Spark and Cassandra with GroovySteve Pember
 
Surviving in a microservices environment
Surviving in a microservices environmentSurviving in a microservices environment
Surviving in a microservices environmentSteve Pember
 
Microservices: The Organizational and People Impact
Microservices: The Organizational and People ImpactMicroservices: The Organizational and People Impact
Microservices: The Organizational and People ImpactAmbassador Labs
 
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 2017NVIDIA
 
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, 2017NVIDIA
 

En vedette (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
 

Similaire à 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
 
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 BangaloreMirco Hering
 
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 MadnessBMK Lakshminarayanan
 
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 MicroservicesRick Hightower
 
Sidecars and a Microservices Mesh
Sidecars and a Microservices MeshSidecars and a Microservices Mesh
Sidecars and a Microservices MeshRed Hat Developers
 
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, HyperwalletHyperwallet
 
2017 bio it world
2017 bio it world2017 bio it world
2017 bio it worldChris Dwan
 
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 SystemsC4Media
 
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 201Amazon Web Services
 
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 workflowDevOpsDays Riga
 
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...Turja Narayan Chaudhuri
 
Microservices Gone Wrong!
Microservices Gone Wrong!Microservices Gone Wrong!
Microservices Gone Wrong!Bert Ertman
 
The Misuse of Cloud Infrastructure
The Misuse of Cloud InfrastructureThe Misuse of Cloud Infrastructure
The Misuse of Cloud InfrastructureDerek Kelly
 
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 AmazonApigee | Google Cloud
 
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 AWSAmazon Web Services
 
Conways Law & Continuous Delivery
Conways Law & Continuous DeliveryConways Law & Continuous Delivery
Conways Law & Continuous Deliveryallan kelly
 

Similaire à 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
 

Plus de Steve Pember

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 2023Steve Pember
 
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 EnvironmentSteve Pember
 
Surviving in a Microservices environment -abridged
Surviving in a Microservices environment -abridgedSurviving in a Microservices environment -abridged
Surviving in a Microservices environment -abridgedSteve Pember
 
Gradle Show and Tell
Gradle Show and TellGradle Show and Tell
Gradle Show and TellSteve Pember
 
Greach 2018: Surviving Microservices
Greach 2018: Surviving MicroservicesGreach 2018: Surviving Microservices
Greach 2018: Surviving MicroservicesSteve Pember
 
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 StackSteve Pember
 
Event storage in a distributed system
Event storage in a distributed systemEvent storage in a distributed system
Event storage in a distributed systemSteve Pember
 
Surviving in a Microservices Environment
Surviving in a Microservices EnvironmentSurviving in a Microservices Environment
Surviving in a Microservices EnvironmentSteve 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
 
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 GroovySteve 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 CQRSSteve 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 JVMSteve Pember
 
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 GroovySteve Pember
 
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 2015Steve Pember
 
Springone2gx 2015 Reactive Options for Groovy
Springone2gx 2015  Reactive Options for GroovySpringone2gx 2015  Reactive Options for Groovy
Springone2gx 2015 Reactive Options for GroovySteve Pember
 
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 GroovySteve Pember
 
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 GroovySteve Pember
 
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 2015Steve Pember
 
Advanced Microservices - Greach 2015
Advanced Microservices - Greach 2015Advanced Microservices - Greach 2015
Advanced Microservices - Greach 2015Steve Pember
 
Richer data-history-event-sourcing
Richer data-history-event-sourcingRicher data-history-event-sourcing
Richer data-history-event-sourcingSteve Pember
 

Plus de 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
 

Dernier

英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作qr0udbr0
 
Precise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalPrecise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalLionel Briand
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaHanief Utama
 
Post Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on IdentityPost Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on Identityteam-WIBU
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmSujith Sukumaran
 
Salesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZSalesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZABSYZ Inc
 
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Cizo Technology Services
 
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxUI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxAndreas Kunz
 
Powering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsPowering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsSafe Software
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Velvetech LLC
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfMarharyta Nedzelska
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024StefanoLambiase
 
VK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web DevelopmentVK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web Developmentvyaparkranti
 
How To Manage Restaurant Staff -BTRESTRO
How To Manage Restaurant Staff -BTRESTROHow To Manage Restaurant Staff -BTRESTRO
How To Manage Restaurant Staff -BTRESTROmotivationalword821
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprisepreethippts
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Matt Ray
 
PREDICTING RIVER WATER QUALITY ppt presentation
PREDICTING  RIVER  WATER QUALITY  ppt presentationPREDICTING  RIVER  WATER QUALITY  ppt presentation
PREDICTING RIVER WATER QUALITY ppt presentationvaddepallysandeep122
 
Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)Ahmed Mater
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based projectAnoyGreter
 

Dernier (20)

英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作
 
Precise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalPrecise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive Goal
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief Utama
 
Post Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on IdentityPost Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on Identity
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalm
 
Salesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZSalesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZ
 
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
 
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxUI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
 
Powering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsPowering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data Streams
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdf
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
 
VK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web DevelopmentVK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web Development
 
How To Manage Restaurant Staff -BTRESTRO
How To Manage Restaurant Staff -BTRESTROHow To Manage Restaurant Staff -BTRESTRO
How To Manage Restaurant Staff -BTRESTRO
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprise
 
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort ServiceHot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
 
PREDICTING RIVER WATER QUALITY ppt presentation
PREDICTING  RIVER  WATER QUALITY  ppt presentationPREDICTING  RIVER  WATER QUALITY  ppt presentation
PREDICTING RIVER WATER QUALITY ppt presentation
 
Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based project
 

Managing a Microservices Development Team (And advanced Microservice concerns)

Notes de l'éditeur

  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