SlideShare une entreprise Scribd logo
1  sur  51
Télécharger pour lire hors ligne
Microservices for
Mortals
@BertErtman
• Fellow at Luminis
• Background in all things Java
since 1995
• Java Champion, JavaOne
Rockstar Speaker, and a Duke’s
Choice Award Winner
• Involved in architecting and
implementing dozens of large
scale systems over the past 20
years or so
• Book author for O’Reilly,
speaker at many conferences
About me
Italian Food Analogy
Before SOA:
SOA:
Microservices:
Spaghetti
Lasagna
???
Pick a side…
What if I’m allergic to
Italian food? Can I still do
Microservices?
Where did it come from?
• People have been doing AJAX, NoSQL, SOA, etc before they
even got a name
• Microservices style architectures are a response to adjust
software architecture to an ever-evolving spectrum. It addresses
Business Agility through technology:
• Usage of cloud-based infrastructure and services
• DevOps
• The need to scale up the number of people/teams
• Client-side revolution both in technologies and devices
Microservices
are about
Business Agility
Microservices are like SOA,
but only the good parts
What happened to SOA?
• SOA quickly turned into the rape victim of a vendor
infested lock-in massacre, excessively
complicating all good advice into giant overpriced
hairballs sold as fake middleware, ESBs, and
appliances.
Image credit: http://blogs.gartner.com/gary-olliffe/files/2015/01/InnerOuterMSA.png
Which pill do you take?
blue pill world
• Blissful ignorance
• Hey, since everyone and their mother seems to be
tweeting about this microservices thing, it must be cool,
right?
• Heck, even Martin Fowler is blogging about it. Now it’s
definitely mainstream
• Dude, it’s on the freakin’ Technology Radar!
• Btw, this seems to be a killer way to introduce Node.js to
my customer, yeah!
Which pill do you take?
red pill world
• Painful truth of reality
• Where do we defy the laws of (IT) physics?
• This thing is about distributed computing which
after all these years is still very hard to do!
• This thing is about asynchronous programming
models, which are hard to grasp
• It has a number of other gotcha’s which I will go into…
There is no spoon
• Forget synchronous programming models
• Forget a single Enterprise Domain Model
• Forget ACID transactions
• Forget Relational Integrity
Welcome to red pill world
Picturecredit:@ParisPic
About Monoliths
• The word ‘monolith’ has a negative
connotation
• Not all non-microservices apps 

are bad applications
• What do you call an application
that everyone wants to interface
with but was not designed to do?
Monolith?
a successful
application?
When monoliths are bad
• But… such systems can end up as monoliths with all the
negative connotations to it as they:
• Start to build up massive technical debt
• Become hard to change without breaking stuff
• QA and test cycles take lots of time (expensive)
• When heavy internal coupling starts to take over control
of the application
• Become married to the underlying technical stack
Monolith to Microservices
approach
• As was recently suggested by Martin Fowler, et al.
the Monolith-First approach is a way of “strangling
off services from a monolithic application”.
• This makes great theory, but is pretty hard to do in
practice
• Often times building blocks on the inside of an
application are not suitable as building blocks
outside of an application
Monolith to Microservices
Struggles
• Initial Investment
• Data Strategy
• Synchronous 

vs Asynchronous
• Conway’s Law
• Re-use Traps
• Dealing with Failure
Initial Investment
• So-called “Outer Architecture”
• Service Discovery
• Logging
• Metrics and Analytics
• DevOps process in-place
• Solid CI/CD practices
• Impact on testing strategy
Data Strategy
Data Strategy
• Don’t have multiple microservices share the same
database model and perform updates on it
• this results in unwanted coupling
• Separate at least read/write access if you must
• Better: separate data stores for each service
Data Strategy
• Q: What if I have common data?
• A: Either perform a call to another service or just
copy the data
• Q: How do I deal with referential integrity?
• A: Move it up in the application layer
Synchronous vs
Asynchronous
• Within the monolith, most communication will be
synchronous
• Your interfaces have been designed with
synchronous, in-process, interactions in mind
• May be chatty (fine-grained)
• Rethinking interaction patterns is essential
• Rethink the communication protocol as well
Service Communication
• Standardize on a common communication protocol
• Oftentimes people choose REST, but there are
others
• protobuf, thrift, zeromq, mqtt, …
• Is REST fast enough to do massive fan-out?
• Maybe have two: synchronous and asynchronous
Avoid re-use traps
• Q: What is the best strategy for reusing common
functionality between microservices?
• A: Copy it in the beginning of the project if you
must. Never look back. Microservices are designed
to be TOTALLY independent of each other,
remember?
Conventions over
abstractions!
Conway’s Law
So here is the obligatory reference to Conway’s Law:
“Organizations which design systems ... are 

constrained to produce designs which are copies of 

the communication structures of these organizations"
—M. Conway 1968
What it actually means
• Make sure the organization is compatible with the
software architecture
• If your (microservices) architecture does not reflect
the way your organization is structured, don’t even
bother going that way!
• It also means that your team should be cross-
functional. Everyone you need to build, maintain
and get it into production must be part of the team
This is hard!
SOA Adoption Model
Failure will
ALWAYS
happen
Design for Failure
• Dependent services may be unavailable or too slow to respond
• Minimize human intervention
• failure happens all the time, so it shouldn’t be a big deal
• fail rather sooner than later (prevent cascading)
• Horizontal clustering to the rescue (multiple services)
• Resilience Patterns to the rescue
• CircuitBreaker, Bulkhead, Caching, Retry, Messaging, etc
• This is complicated stuff. It is not just about throwing Hystrix or some
other library in
Some take-aways
• The essence of Microservices is about structuring
systems differently
• It’s about Modularity
• It’s about Separation of Concerns
• It’s about Single Responsibility Principle
• It addresses Business Agility through technology
• Those are not bad things!
However…
• Everything comes at a price
• Aligning the architecture to the organization is
surprisingly hard
• It is not just a matter of throwing in a couple of
frameworks, you have to think things through
thoroughly before going this direction
In the end…
• Keep on educating yourself as more war stories
see the light of day
• Don’t just listen to one vendor’s version of the story,
all they care about is locking you in
• Have a rational thought process trump the hype,
however difficult that is - think for yourself rather
than following just the latest blogs and
technologies
And one more thing…
• We are not all Netflix or Amazon
• Just like we’re not all Twitter and Facebook with the
Big Data and Web Scale hypes…
• not all of us have billions of calls floating around
at any given day
• if you pretend you are, you will have all their
infrastructural problems to deal with for free and
even at a minor scale they are just as hard
Thanks!
@BertErtman

Contenu connexe

Tendances

The new stack isn’t a stack: Fragmentation and terraforming 
the service layer
The new stack isn’t a stack: Fragmentation and terraforming 
the service layerThe new stack isn’t a stack: Fragmentation and terraforming 
the service layer
The new stack isn’t a stack: Fragmentation and terraforming 
the service layerDonnie Berkholz
 
The Cloud Native Journey with Simon Elisha
The Cloud Native Journey with Simon ElishaThe Cloud Native Journey with Simon Elisha
The Cloud Native Journey with Simon ElishaChloe Jackson
 
building microservices
building microservicesbuilding microservices
building microservicesCisco DevNet
 
Software Architecture Conference - Monitoring Microservices - A Challenge
Software Architecture Conference -  Monitoring Microservices - A ChallengeSoftware Architecture Conference -  Monitoring Microservices - A Challenge
Software Architecture Conference - Monitoring Microservices - A ChallengeAdrian Cockcroft
 
The Developer is the New CIO: How Vendors Adapt to the Changing Landscape
The Developer is the New CIO: How Vendors Adapt to the Changing LandscapeThe Developer is the New CIO: How Vendors Adapt to the Changing Landscape
The Developer is the New CIO: How Vendors Adapt to the Changing LandscapeLauren Cooney
 
Introduction to Cloud Native Computing
Introduction to Cloud Native ComputingIntroduction to Cloud Native Computing
Introduction to Cloud Native ComputingSaju Thomas
 
Fast Delivery DevOps Israel
Fast Delivery DevOps IsraelFast Delivery DevOps Israel
Fast Delivery DevOps IsraelAdrian Cockcroft
 
Driving Enterprise Architecture Redesign: Cloud-Native Platforms, APIs, and D...
Driving Enterprise Architecture Redesign: Cloud-Native Platforms, APIs, and D...Driving Enterprise Architecture Redesign: Cloud-Native Platforms, APIs, and D...
Driving Enterprise Architecture Redesign: Cloud-Native Platforms, APIs, and D...Chris Haddad
 
Building Modern Applications Using APIs, Microservices and Chatbots
Building Modern Applications Using APIs, Microservices and ChatbotsBuilding Modern Applications Using APIs, Microservices and Chatbots
Building Modern Applications Using APIs, Microservices and ChatbotsOracle Developers
 
Who's Who in Container Land
Who's Who in Container LandWho's Who in Container Land
Who's Who in Container LandMike Kavis
 
devops, platforms and devops platforms
devops, platforms and devops platformsdevops, platforms and devops platforms
devops, platforms and devops platformsAndrew Shafer
 
Cloud Native DevOps
Cloud Native DevOpsCloud Native DevOps
Cloud Native DevOpsJim Bugwadia
 
Communication Operations: Lift off with Docker! - Jesse White
Communication Operations: Lift off with Docker! - Jesse WhiteCommunication Operations: Lift off with Docker! - Jesse White
Communication Operations: Lift off with Docker! - Jesse WhiteDocker, Inc.
 
Cloud Native Architecture Patterns Tutorial
Cloud Native Architecture Patterns TutorialCloud Native Architecture Patterns Tutorial
Cloud Native Architecture Patterns TutorialMatt Stine
 
DockerCon 2017 - General Session Day 2 - Ben Golub
DockerCon 2017 - General Session Day 2 - Ben GolubDockerCon 2017 - General Session Day 2 - Ben Golub
DockerCon 2017 - General Session Day 2 - Ben GolubDocker, Inc.
 
Microservice Scars - Alt.net 2hr
Microservice Scars - Alt.net 2hrMicroservice Scars - Alt.net 2hr
Microservice Scars - Alt.net 2hrJoshua Toth
 
Cloud Foundry CEO Sam Ramji 2015 OSCON Keynote
Cloud Foundry CEO Sam Ramji 2015 OSCON KeynoteCloud Foundry CEO Sam Ramji 2015 OSCON Keynote
Cloud Foundry CEO Sam Ramji 2015 OSCON KeynoteCloud Foundry Foundation
 
Are We Really Cloud-Native?
Are We Really Cloud-Native?Are We Really Cloud-Native?
Are We Really Cloud-Native?C4Media
 

Tendances (20)

The new stack isn’t a stack: Fragmentation and terraforming 
the service layer
The new stack isn’t a stack: Fragmentation and terraforming 
the service layerThe new stack isn’t a stack: Fragmentation and terraforming 
the service layer
The new stack isn’t a stack: Fragmentation and terraforming 
the service layer
 
The Cloud Native Journey with Simon Elisha
The Cloud Native Journey with Simon ElishaThe Cloud Native Journey with Simon Elisha
The Cloud Native Journey with Simon Elisha
 
building microservices
building microservicesbuilding microservices
building microservices
 
Software Architecture Conference - Monitoring Microservices - A Challenge
Software Architecture Conference -  Monitoring Microservices - A ChallengeSoftware Architecture Conference -  Monitoring Microservices - A Challenge
Software Architecture Conference - Monitoring Microservices - A Challenge
 
The Developer is the New CIO: How Vendors Adapt to the Changing Landscape
The Developer is the New CIO: How Vendors Adapt to the Changing LandscapeThe Developer is the New CIO: How Vendors Adapt to the Changing Landscape
The Developer is the New CIO: How Vendors Adapt to the Changing Landscape
 
Introduction to Cloud Native Computing
Introduction to Cloud Native ComputingIntroduction to Cloud Native Computing
Introduction to Cloud Native Computing
 
Microservice architecture
Microservice architectureMicroservice architecture
Microservice architecture
 
Fast Delivery DevOps Israel
Fast Delivery DevOps IsraelFast Delivery DevOps Israel
Fast Delivery DevOps Israel
 
Driving Enterprise Architecture Redesign: Cloud-Native Platforms, APIs, and D...
Driving Enterprise Architecture Redesign: Cloud-Native Platforms, APIs, and D...Driving Enterprise Architecture Redesign: Cloud-Native Platforms, APIs, and D...
Driving Enterprise Architecture Redesign: Cloud-Native Platforms, APIs, and D...
 
Building Modern Applications Using APIs, Microservices and Chatbots
Building Modern Applications Using APIs, Microservices and ChatbotsBuilding Modern Applications Using APIs, Microservices and Chatbots
Building Modern Applications Using APIs, Microservices and Chatbots
 
Who's Who in Container Land
Who's Who in Container LandWho's Who in Container Land
Who's Who in Container Land
 
Why Microservice
Why Microservice Why Microservice
Why Microservice
 
devops, platforms and devops platforms
devops, platforms and devops platformsdevops, platforms and devops platforms
devops, platforms and devops platforms
 
Cloud Native DevOps
Cloud Native DevOpsCloud Native DevOps
Cloud Native DevOps
 
Communication Operations: Lift off with Docker! - Jesse White
Communication Operations: Lift off with Docker! - Jesse WhiteCommunication Operations: Lift off with Docker! - Jesse White
Communication Operations: Lift off with Docker! - Jesse White
 
Cloud Native Architecture Patterns Tutorial
Cloud Native Architecture Patterns TutorialCloud Native Architecture Patterns Tutorial
Cloud Native Architecture Patterns Tutorial
 
DockerCon 2017 - General Session Day 2 - Ben Golub
DockerCon 2017 - General Session Day 2 - Ben GolubDockerCon 2017 - General Session Day 2 - Ben Golub
DockerCon 2017 - General Session Day 2 - Ben Golub
 
Microservice Scars - Alt.net 2hr
Microservice Scars - Alt.net 2hrMicroservice Scars - Alt.net 2hr
Microservice Scars - Alt.net 2hr
 
Cloud Foundry CEO Sam Ramji 2015 OSCON Keynote
Cloud Foundry CEO Sam Ramji 2015 OSCON KeynoteCloud Foundry CEO Sam Ramji 2015 OSCON Keynote
Cloud Foundry CEO Sam Ramji 2015 OSCON Keynote
 
Are We Really Cloud-Native?
Are We Really Cloud-Native?Are We Really Cloud-Native?
Are We Really Cloud-Native?
 

Similaire à Microservices for Mortals

Microservices for Mortals by Bert Ertman at Codemotion Dubai
 Microservices for Mortals by Bert Ertman at Codemotion Dubai Microservices for Mortals by Bert Ertman at Codemotion Dubai
Microservices for Mortals by Bert Ertman at Codemotion DubaiCodemotion Dubai
 
QCon 2015 - Microservices Track Notes
QCon 2015 - Microservices Track Notes QCon 2015 - Microservices Track Notes
QCon 2015 - Microservices Track Notes Abdul Basit Munda
 
Pragmatic Microservices
Pragmatic MicroservicesPragmatic Microservices
Pragmatic MicroservicesRandy Shoup
 
Microservices Gone Wrong!
Microservices Gone Wrong!Microservices Gone Wrong!
Microservices Gone Wrong!Bert Ertman
 
Advanced Microservices - Greach 2015
Advanced Microservices - Greach 2015Advanced Microservices - Greach 2015
Advanced Microservices - Greach 2015Steve Pember
 
Dismantling the Monolith: Scaling with Microservices
Dismantling the Monolith: Scaling with MicroservicesDismantling the Monolith: Scaling with Microservices
Dismantling the Monolith: Scaling with MicroservicesOKL Engineering
 
Microservices - an integration perspective
Microservices - an integration perspectiveMicroservices - an integration perspective
Microservices - an integration perspectiveRubiX BV
 
Monoliths and Microservices
Monoliths and Microservices Monoliths and Microservices
Monoliths and Microservices Bozhidar Bozhanov
 
.NET Fest 2019. Eran Stiller. 6 Lessons I Learned on My Journey from Monolith...
.NET Fest 2019. Eran Stiller. 6 Lessons I Learned on My Journey from Monolith....NET Fest 2019. Eran Stiller. 6 Lessons I Learned on My Journey from Monolith...
.NET Fest 2019. Eran Stiller. 6 Lessons I Learned on My Journey from Monolith...NETFest
 
The "Why", "What" and "How" of Microservices
The "Why", "What" and "How" of Microservices The "Why", "What" and "How" of Microservices
The "Why", "What" and "How" of Microservices INPAY
 
Keynote - From Monolith to Microservices - Lessons Learned in the Real World
Keynote - From Monolith to Microservices - Lessons Learned in the Real WorldKeynote - From Monolith to Microservices - Lessons Learned in the Real World
Keynote - From Monolith to Microservices - Lessons Learned in the Real WorldEran Stiller
 
Velocity19 Berlin: Swarming, Cynefin… and avoiding the problems of becoming a...
Velocity19 Berlin: Swarming, Cynefin…and avoiding the problems of becoming a...Velocity19 Berlin: Swarming, Cynefin…and avoiding the problems of becoming a...
Velocity19 Berlin: Swarming, Cynefin… and avoiding the problems of becoming a...Jon Stevens-Hall
 
Resilient Functional Service Design
Resilient Functional Service DesignResilient Functional Service Design
Resilient Functional Service DesignUwe Friedrichsen
 
Understanding Microservices
Understanding Microservices Understanding Microservices
Understanding Microservices M A Hossain Tonu
 
The Six Pitfalls of building a Microservices Architecture (and how to avoid t...
The Six Pitfalls of building a Microservices Architecture (and how to avoid t...The Six Pitfalls of building a Microservices Architecture (and how to avoid t...
The Six Pitfalls of building a Microservices Architecture (and how to avoid t...J On The Beach
 
Reactive - Is it really a Magic Pill?
Reactive - Is it really a Magic Pill?Reactive - Is it really a Magic Pill?
Reactive - Is it really a Magic Pill?Tech Triveni
 
Microservices: Yes or not?
Microservices: Yes or not?Microservices: Yes or not?
Microservices: Yes or not?Eduard Tomàs
 

Similaire à Microservices for Mortals (20)

Microservices for Mortals by Bert Ertman at Codemotion Dubai
 Microservices for Mortals by Bert Ertman at Codemotion Dubai Microservices for Mortals by Bert Ertman at Codemotion Dubai
Microservices for Mortals by Bert Ertman at Codemotion Dubai
 
QCon 2015 - Microservices Track Notes
QCon 2015 - Microservices Track Notes QCon 2015 - Microservices Track Notes
QCon 2015 - Microservices Track Notes
 
Pragmatic Microservices
Pragmatic MicroservicesPragmatic Microservices
Pragmatic Microservices
 
Microservices Gone Wrong!
Microservices Gone Wrong!Microservices Gone Wrong!
Microservices Gone Wrong!
 
Microservices vs monolithics betabeers
Microservices vs monolithics   betabeersMicroservices vs monolithics   betabeers
Microservices vs monolithics betabeers
 
Advanced Microservices - Greach 2015
Advanced Microservices - Greach 2015Advanced Microservices - Greach 2015
Advanced Microservices - Greach 2015
 
Dismantling the Monolith: Scaling with Microservices
Dismantling the Monolith: Scaling with MicroservicesDismantling the Monolith: Scaling with Microservices
Dismantling the Monolith: Scaling with Microservices
 
Microservice intro
Microservice introMicroservice intro
Microservice intro
 
Microservices - an integration perspective
Microservices - an integration perspectiveMicroservices - an integration perspective
Microservices - an integration perspective
 
Monoliths and Microservices
Monoliths and Microservices Monoliths and Microservices
Monoliths and Microservices
 
.NET Fest 2019. Eran Stiller. 6 Lessons I Learned on My Journey from Monolith...
.NET Fest 2019. Eran Stiller. 6 Lessons I Learned on My Journey from Monolith....NET Fest 2019. Eran Stiller. 6 Lessons I Learned on My Journey from Monolith...
.NET Fest 2019. Eran Stiller. 6 Lessons I Learned on My Journey from Monolith...
 
The "Why", "What" and "How" of Microservices
The "Why", "What" and "How" of Microservices The "Why", "What" and "How" of Microservices
The "Why", "What" and "How" of Microservices
 
Keynote - From Monolith to Microservices - Lessons Learned in the Real World
Keynote - From Monolith to Microservices - Lessons Learned in the Real WorldKeynote - From Monolith to Microservices - Lessons Learned in the Real World
Keynote - From Monolith to Microservices - Lessons Learned in the Real World
 
What are microservices
What are microservicesWhat are microservices
What are microservices
 
Velocity19 Berlin: Swarming, Cynefin… and avoiding the problems of becoming a...
Velocity19 Berlin: Swarming, Cynefin…and avoiding the problems of becoming a...Velocity19 Berlin: Swarming, Cynefin…and avoiding the problems of becoming a...
Velocity19 Berlin: Swarming, Cynefin… and avoiding the problems of becoming a...
 
Resilient Functional Service Design
Resilient Functional Service DesignResilient Functional Service Design
Resilient Functional Service Design
 
Understanding Microservices
Understanding Microservices Understanding Microservices
Understanding Microservices
 
The Six Pitfalls of building a Microservices Architecture (and how to avoid t...
The Six Pitfalls of building a Microservices Architecture (and how to avoid t...The Six Pitfalls of building a Microservices Architecture (and how to avoid t...
The Six Pitfalls of building a Microservices Architecture (and how to avoid t...
 
Reactive - Is it really a Magic Pill?
Reactive - Is it really a Magic Pill?Reactive - Is it really a Magic Pill?
Reactive - Is it really a Magic Pill?
 
Microservices: Yes or not?
Microservices: Yes or not?Microservices: Yes or not?
Microservices: Yes or not?
 

Plus de Bert Ertman

Serverless - The Future of the Cloud?!
Serverless - The Future of the Cloud?!Serverless - The Future of the Cloud?!
Serverless - The Future of the Cloud?!Bert Ertman
 
VJUG - Building Modular Java Applications in the Cloud Age
VJUG - Building Modular Java Applications in the Cloud AgeVJUG - Building Modular Java Applications in the Cloud Age
VJUG - Building Modular Java Applications in the Cloud AgeBert Ertman
 
Migrating from Spring Applications to Java EE 6 [CHINESE VERSION]
Migrating from Spring Applications to Java EE 6 [CHINESE VERSION]Migrating from Spring Applications to Java EE 6 [CHINESE VERSION]
Migrating from Spring Applications to Java EE 6 [CHINESE VERSION]Bert Ertman
 
Building Modular Cloud Applications in Java - Lessons Learned
Building Modular Cloud Applications in Java - Lessons LearnedBuilding Modular Cloud Applications in Java - Lessons Learned
Building Modular Cloud Applications in Java - Lessons LearnedBert Ertman
 
Modular Java EE in the Cloud
Modular Java EE in the CloudModular Java EE in the Cloud
Modular Java EE in the CloudBert Ertman
 
JavaOne 2011: Migrating Spring Applications to Java EE 6
JavaOne 2011: Migrating Spring Applications to Java EE 6JavaOne 2011: Migrating Spring Applications to Java EE 6
JavaOne 2011: Migrating Spring Applications to Java EE 6Bert Ertman
 

Plus de Bert Ertman (6)

Serverless - The Future of the Cloud?!
Serverless - The Future of the Cloud?!Serverless - The Future of the Cloud?!
Serverless - The Future of the Cloud?!
 
VJUG - Building Modular Java Applications in the Cloud Age
VJUG - Building Modular Java Applications in the Cloud AgeVJUG - Building Modular Java Applications in the Cloud Age
VJUG - Building Modular Java Applications in the Cloud Age
 
Migrating from Spring Applications to Java EE 6 [CHINESE VERSION]
Migrating from Spring Applications to Java EE 6 [CHINESE VERSION]Migrating from Spring Applications to Java EE 6 [CHINESE VERSION]
Migrating from Spring Applications to Java EE 6 [CHINESE VERSION]
 
Building Modular Cloud Applications in Java - Lessons Learned
Building Modular Cloud Applications in Java - Lessons LearnedBuilding Modular Cloud Applications in Java - Lessons Learned
Building Modular Cloud Applications in Java - Lessons Learned
 
Modular Java EE in the Cloud
Modular Java EE in the CloudModular Java EE in the Cloud
Modular Java EE in the Cloud
 
JavaOne 2011: Migrating Spring Applications to Java EE 6
JavaOne 2011: Migrating Spring Applications to Java EE 6JavaOne 2011: Migrating Spring Applications to Java EE 6
JavaOne 2011: Migrating Spring Applications to Java EE 6
 

Dernier

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 WorkerThousandEyes
 
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 TechniquesVictorSzoltysek
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...OnePlan Solutions
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnAmarnathKambale
 
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 ApplicationsAlberto González Trastoy
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
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 ...harshavardhanraghave
 
Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdfPearlKirahMaeRagusta1
 
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 studentsHimanshiGarg82
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension AidPhilip Schwarz
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 
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.pdfWave PLM
 
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.pdfproinshot.com
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsArshad QA
 
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...kalichargn70th171
 
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...panagenda
 
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.docxComplianceQuest1
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
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 2024Mind IT Systems
 

Dernier (20)

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
 
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
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
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
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
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 ...
 
Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdf
 
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
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
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
 
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
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
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...
 
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...
 
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
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
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
 

Microservices for Mortals

  • 2. • Fellow at Luminis • Background in all things Java since 1995 • Java Champion, JavaOne Rockstar Speaker, and a Duke’s Choice Award Winner • Involved in architecting and implementing dozens of large scale systems over the past 20 years or so • Book author for O’Reilly, speaker at many conferences About me
  • 6.
  • 7.
  • 8. What if I’m allergic to Italian food? Can I still do Microservices?
  • 9. Where did it come from? • People have been doing AJAX, NoSQL, SOA, etc before they even got a name • Microservices style architectures are a response to adjust software architecture to an ever-evolving spectrum. It addresses Business Agility through technology: • Usage of cloud-based infrastructure and services • DevOps • The need to scale up the number of people/teams • Client-side revolution both in technologies and devices
  • 11. Microservices are like SOA, but only the good parts
  • 12. What happened to SOA? • SOA quickly turned into the rape victim of a vendor infested lock-in massacre, excessively complicating all good advice into giant overpriced hairballs sold as fake middleware, ESBs, and appliances.
  • 13.
  • 15.
  • 16. Which pill do you take?
  • 17. blue pill world • Blissful ignorance • Hey, since everyone and their mother seems to be tweeting about this microservices thing, it must be cool, right? • Heck, even Martin Fowler is blogging about it. Now it’s definitely mainstream • Dude, it’s on the freakin’ Technology Radar! • Btw, this seems to be a killer way to introduce Node.js to my customer, yeah!
  • 18. Which pill do you take?
  • 19. red pill world • Painful truth of reality • Where do we defy the laws of (IT) physics? • This thing is about distributed computing which after all these years is still very hard to do! • This thing is about asynchronous programming models, which are hard to grasp • It has a number of other gotcha’s which I will go into…
  • 20. There is no spoon • Forget synchronous programming models • Forget a single Enterprise Domain Model • Forget ACID transactions • Forget Relational Integrity
  • 21. Welcome to red pill world
  • 22.
  • 24. About Monoliths • The word ‘monolith’ has a negative connotation • Not all non-microservices apps 
 are bad applications • What do you call an application that everyone wants to interface with but was not designed to do?
  • 26. When monoliths are bad • But… such systems can end up as monoliths with all the negative connotations to it as they: • Start to build up massive technical debt • Become hard to change without breaking stuff • QA and test cycles take lots of time (expensive) • When heavy internal coupling starts to take over control of the application • Become married to the underlying technical stack
  • 27. Monolith to Microservices approach • As was recently suggested by Martin Fowler, et al. the Monolith-First approach is a way of “strangling off services from a monolithic application”. • This makes great theory, but is pretty hard to do in practice • Often times building blocks on the inside of an application are not suitable as building blocks outside of an application
  • 28. Monolith to Microservices Struggles • Initial Investment • Data Strategy • Synchronous 
 vs Asynchronous • Conway’s Law • Re-use Traps • Dealing with Failure
  • 29. Initial Investment • So-called “Outer Architecture” • Service Discovery • Logging • Metrics and Analytics • DevOps process in-place • Solid CI/CD practices • Impact on testing strategy
  • 31. Data Strategy • Don’t have multiple microservices share the same database model and perform updates on it • this results in unwanted coupling • Separate at least read/write access if you must • Better: separate data stores for each service
  • 32. Data Strategy • Q: What if I have common data? • A: Either perform a call to another service or just copy the data • Q: How do I deal with referential integrity? • A: Move it up in the application layer
  • 33. Synchronous vs Asynchronous • Within the monolith, most communication will be synchronous • Your interfaces have been designed with synchronous, in-process, interactions in mind • May be chatty (fine-grained) • Rethinking interaction patterns is essential • Rethink the communication protocol as well
  • 34. Service Communication • Standardize on a common communication protocol • Oftentimes people choose REST, but there are others • protobuf, thrift, zeromq, mqtt, … • Is REST fast enough to do massive fan-out? • Maybe have two: synchronous and asynchronous
  • 35. Avoid re-use traps • Q: What is the best strategy for reusing common functionality between microservices? • A: Copy it in the beginning of the project if you must. Never look back. Microservices are designed to be TOTALLY independent of each other, remember?
  • 37. Conway’s Law So here is the obligatory reference to Conway’s Law: “Organizations which design systems ... are 
 constrained to produce designs which are copies of 
 the communication structures of these organizations" —M. Conway 1968
  • 38. What it actually means • Make sure the organization is compatible with the software architecture • If your (microservices) architecture does not reflect the way your organization is structured, don’t even bother going that way! • It also means that your team should be cross- functional. Everyone you need to build, maintain and get it into production must be part of the team
  • 41.
  • 42.
  • 43.
  • 45. Design for Failure • Dependent services may be unavailable or too slow to respond • Minimize human intervention • failure happens all the time, so it shouldn’t be a big deal • fail rather sooner than later (prevent cascading) • Horizontal clustering to the rescue (multiple services) • Resilience Patterns to the rescue • CircuitBreaker, Bulkhead, Caching, Retry, Messaging, etc • This is complicated stuff. It is not just about throwing Hystrix or some other library in
  • 46. Some take-aways • The essence of Microservices is about structuring systems differently • It’s about Modularity • It’s about Separation of Concerns • It’s about Single Responsibility Principle • It addresses Business Agility through technology • Those are not bad things!
  • 47. However… • Everything comes at a price • Aligning the architecture to the organization is surprisingly hard • It is not just a matter of throwing in a couple of frameworks, you have to think things through thoroughly before going this direction
  • 48. In the end… • Keep on educating yourself as more war stories see the light of day • Don’t just listen to one vendor’s version of the story, all they care about is locking you in • Have a rational thought process trump the hype, however difficult that is - think for yourself rather than following just the latest blogs and technologies
  • 49. And one more thing… • We are not all Netflix or Amazon • Just like we’re not all Twitter and Facebook with the Big Data and Web Scale hypes… • not all of us have billions of calls floating around at any given day • if you pretend you are, you will have all their infrastructural problems to deal with for free and even at a minor scale they are just as hard
  • 50.