SlideShare uma empresa Scribd logo
1 de 33
I HAVE
MICROSERVICES
(and I didn’t know)
@despos facebook.com/naa4e Press
DINO
ESPOSITO
EXPOWARE SOFT - 2016
Samuel Beckett, 1983
Ever tried.Ever failed.No matter.Try agai
Fail again.Fail better.
EXPOWARE SOFT - 2016
MICROSERVICES
EXPOWARE SOFT - 2016
MANY TIMES,
THINGS
LOOK
DIFFERENT
FROM WHAT
THEY ARE…
EXPOWARE SOFT - 2016
EXPOWARE SOFT - 2016
Microservices are not exactly
what we often hear and read
Architecture >> Technology
EXPOWARE SOFT - 2016
MICROSERVICES
EXPOWARE SOFT - 2016
MICROSERVICE
A particular way of designing software applications as suites
of independently deployable services.
■ Run in dedicated process
■ Communicate through lightweight mechanisms
■ Simplified and automated deployment
■ Decentralized control of languages and data
https://martinfowler.com/articles/microservices.html
EXPOWARE SOFT - 2016
SOA
IN OTHER WORDS …
JUST MADE
SIMPLER
EXPOWARE SOFT - 2016
WS-XXX protocols
SOA tenets
EXPOWARE SOFT - 2016
 Tenet 1: Boundaries are explicit.
 Tenet 2: Services are autonomous.
 Tenet 3: Services share schema & contract, not class.
 Tenet 4: Service compatibility is based upon policy.
EXPOWARE SOFT - 2016
EXPOWARE SOFT - 2016
Vertical stacks of
logic and data
Can contain replicated data
Can access data via services
Easy to package
and deploy
Easy to assign to
development teams
Work well with
containers
Not that well with
Visual Studio
Nuget packages better way to share code than references
MICROSERVICE
EXPOWARE SOFT - 2016
MONOLITHIC APPLICATION
EXPOWARE SOFT - 2016
SEGMENTED APPLICATION
COLLECTION OF MONOLITHIC APPLICATIONS
EXPOWARE SOFT - 2016
from BOUNDED CONTEXT to MICROSERVICE
EXPOWARE SOFT - 2016
HOW DO WE GET THERE?
EXPOWARE SOFT - 2016
ImplementationStrategic Design
Ubiquitous
language
Bounded
contexts
Domain model
Layered
architecture
DOMAIN-DRIVEN DESIGN
Bounded
contexts
EXPOWARE SOFT - 2016
Business
domain
Bounded
context
Bounded
context
Bounded
context
Bounded
context
Business
domain
SOFTWARE MODEL
EXPOWARE SOFT - 2016
Bounded Context
Ubiquitous language
Independent
implementation
External interface
(to other contexts)
EXPOWARE SOFT - 2016
Functional areas of the application that are better treated separately
Same term meaning different things to different people
Same term used to indicate different elements
Dependency on external subsystems
Dependency on legacy code
Why Having Bounded Contexts
EXPOWARE SOFT - 2016
CONTEXT MAP
EXPOWARE SOFT - 2016
SAY YOU’RE A STARTUP
EXPOWARE SOFT - 2016
SAY YOU’RE A STARTUP
API
SERVER
SCORING
SERVER
EXPOWARE SOFT - 2016
SAY YOU’RE A STARTUP
API
SERVER
SCORING
SERVER
PLAYER
SERVER
EXPOWARE SOFT - 2016
SAY YOU’RE A STARTUP
LIVE DATA
SERVER
SCORING
SERVER
PLAYER
SERVER
API
SERVER
CMS
SERVER
EXPOWARE SOFT - 2016
SAY YOU’RE A STARTUP
LIVE DATA
SERVER
SCORING
SERVER
PLAYER
SERVER
API
SERVER
CMS
SERVER
TOURNAMENT
SERVER
EXPOWARE SOFT - 2016
SAY YOU’RE A STARTUP
LIVE DATA
SERVER
SCORING
SERVER
PLAYER
SERVER
LIVE DATA
SERVER
CMS
SERVER
TOURNAMENT
SERVER
MANAGEMENT
SERVER
EXPOWARE SOFT - 2016
I Built a (Perfect)
Microservice Architecture
and I Didn’t Know
EXPOWARE SOFT - 2016
The reason we ended up to microservices has to do
much more with productivity than pure technical
matters or technologies.
It had to do much more with common sense and
attitude to solve concrete (and small) business
problems than religion or design for big-scale.
EXPOWARE SOFT - 2016http://twitter.com/hhariri/status/540463864622895104
EXPOWARE SOFT - 2016
The user of the software won’t know what
she wants until she sees the software.
Humphrey’s Law
An interactive system can never be fully
specified nor can it ever be fully tested.
Wegner’s Lemma
Pluralsight courses
UXDD/DDD
EXPOWARE SOFT - 2016
@despos

Mais conteúdo relacionado

Mais de NETFest

Mais de NETFest (20)

.NET Fest 2019. Оля Гавриш. Машинное обучение для .NET программистов
.NET Fest 2019. Оля Гавриш. Машинное обучение для .NET программистов.NET Fest 2019. Оля Гавриш. Машинное обучение для .NET программистов
.NET Fest 2019. Оля Гавриш. Машинное обучение для .NET программистов
 
.NET Fest 2019. Roberto Freato. Provisioning Azure PaaS fluently with Managem...
.NET Fest 2019. Roberto Freato. Provisioning Azure PaaS fluently with Managem....NET Fest 2019. Roberto Freato. Provisioning Azure PaaS fluently with Managem...
.NET Fest 2019. Roberto Freato. Provisioning Azure PaaS fluently with Managem...
 
.NET Fest 2019. Halil Ibrahim Kalkan. Implementing Domain Driven Design
.NET Fest 2019. Halil Ibrahim Kalkan. Implementing Domain Driven Design.NET Fest 2019. Halil Ibrahim Kalkan. Implementing Domain Driven Design
.NET Fest 2019. Halil Ibrahim Kalkan. Implementing Domain Driven Design
 
.NET Fest 2019. Сергій Бута. Feature Toggles: Dynamic Configuration at Wirex
.NET Fest 2019. Сергій Бута. Feature Toggles: Dynamic Configuration at Wirex.NET Fest 2019. Сергій Бута. Feature Toggles: Dynamic Configuration at Wirex
.NET Fest 2019. Сергій Бута. Feature Toggles: Dynamic Configuration at Wirex
 
.NET Fest 2019. Michael Staib. Hot Chocolate: GraphQL Schema Stitching with A...
.NET Fest 2019. Michael Staib. Hot Chocolate: GraphQL Schema Stitching with A....NET Fest 2019. Michael Staib. Hot Chocolate: GraphQL Schema Stitching with A...
.NET Fest 2019. Michael Staib. Hot Chocolate: GraphQL Schema Stitching with A...
 
.NET Fest 2019. Андрей Литвинов. Async lifetime tests with xUnit and AutoFixture
.NET Fest 2019. Андрей Литвинов. Async lifetime tests with xUnit and AutoFixture.NET Fest 2019. Андрей Литвинов. Async lifetime tests with xUnit and AutoFixture
.NET Fest 2019. Андрей Литвинов. Async lifetime tests with xUnit and AutoFixture
 
.NET Fest 2019. Анатолий Колесник. Love, Death & F# Tests
.NET Fest 2019. Анатолий Колесник. Love, Death & F# Tests.NET Fest 2019. Анатолий Колесник. Love, Death & F# Tests
.NET Fest 2019. Анатолий Колесник. Love, Death & F# Tests
 
.NET Fest 2019. Алексей Голуб. Монадные парсер-комбинаторы в C# (простой спос...
.NET Fest 2019. Алексей Голуб. Монадные парсер-комбинаторы в C# (простой спос....NET Fest 2019. Алексей Голуб. Монадные парсер-комбинаторы в C# (простой спос...
.NET Fest 2019. Алексей Голуб. Монадные парсер-комбинаторы в C# (простой спос...
 
.NET Fest 2019. Roberto Freato. Azure App Service deep dive
.NET Fest 2019. Roberto Freato. Azure App Service deep dive.NET Fest 2019. Roberto Freato. Azure App Service deep dive
.NET Fest 2019. Roberto Freato. Azure App Service deep dive
 
.NET Fest 2019. Леонид Молотиевский. DotNet Core in production
.NET Fest 2019. Леонид Молотиевский. DotNet Core in production.NET Fest 2019. Леонид Молотиевский. DotNet Core in production
.NET Fest 2019. Леонид Молотиевский. DotNet Core in production
 
.NET Fest 2019. Александр Демчук. How to measure relationships within the Com...
.NET Fest 2019. Александр Демчук. How to measure relationships within the Com....NET Fest 2019. Александр Демчук. How to measure relationships within the Com...
.NET Fest 2019. Александр Демчук. How to measure relationships within the Com...
 
.NET Fest 2019. Anna Melashkina та Philipp Bauknecht. Dragons in a Mixed Real...
.NET Fest 2019. Anna Melashkina та Philipp Bauknecht. Dragons in a Mixed Real....NET Fest 2019. Anna Melashkina та Philipp Bauknecht. Dragons in a Mixed Real...
.NET Fest 2019. Anna Melashkina та Philipp Bauknecht. Dragons in a Mixed Real...
 
.NET Fest 2019. Alex Thissen. Architecting .NET solutions in a Docker ecosystem
.NET Fest 2019. Alex Thissen. Architecting .NET solutions in a Docker ecosystem.NET Fest 2019. Alex Thissen. Architecting .NET solutions in a Docker ecosystem
.NET Fest 2019. Alex Thissen. Architecting .NET solutions in a Docker ecosystem
 
.NET Fest 2019. Stas Lebedenko. Practical serverless use cases in Azure with ...
.NET Fest 2019. Stas Lebedenko. Practical serverless use cases in Azure with ....NET Fest 2019. Stas Lebedenko. Practical serverless use cases in Azure with ...
.NET Fest 2019. Stas Lebedenko. Practical serverless use cases in Azure with ...
 
.NET Fest 2019. Сергей Медведев. How serverless makes Integration TDD a reali...
.NET Fest 2019. Сергей Медведев. How serverless makes Integration TDD a reali....NET Fest 2019. Сергей Медведев. How serverless makes Integration TDD a reali...
.NET Fest 2019. Сергей Медведев. How serverless makes Integration TDD a reali...
 
.NET Fest 2019. Сергей Корж. Natural Language Processing in .NET
.NET Fest 2019. Сергей Корж. Natural Language Processing in .NET.NET Fest 2019. Сергей Корж. Natural Language Processing in .NET
.NET Fest 2019. Сергей Корж. Natural Language Processing in .NET
 
.NET Fest 2019. Eran Stiller. Create Your Own Serverless PKI with .NET & Azur...
.NET Fest 2019. Eran Stiller. Create Your Own Serverless PKI with .NET & Azur....NET Fest 2019. Eran Stiller. Create Your Own Serverless PKI with .NET & Azur...
.NET Fest 2019. Eran Stiller. Create Your Own Serverless PKI with .NET & Azur...
 
.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...
 
.NET Fest 2019. Kevin Dockx. Uncovering Swagger/OpenAPI
.NET Fest 2019. Kevin Dockx. Uncovering Swagger/OpenAPI.NET Fest 2019. Kevin Dockx. Uncovering Swagger/OpenAPI
.NET Fest 2019. Kevin Dockx. Uncovering Swagger/OpenAPI
 
.NET Fest 2019. Kevin Dockx. OpenID Connect In Depth
.NET Fest 2019. Kevin Dockx. OpenID Connect In Depth.NET Fest 2019. Kevin Dockx. OpenID Connect In Depth
.NET Fest 2019. Kevin Dockx. OpenID Connect In Depth
 

Último

1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdf
QucHHunhnh
 
Spellings Wk 3 English CAPS CARES Please Practise
Spellings Wk 3 English CAPS CARES Please PractiseSpellings Wk 3 English CAPS CARES Please Practise
Spellings Wk 3 English CAPS CARES Please Practise
AnaAcapella
 
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
ZurliaSoop
 

Último (20)

1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdf
 
Unit-IV; Professional Sales Representative (PSR).pptx
Unit-IV; Professional Sales Representative (PSR).pptxUnit-IV; Professional Sales Representative (PSR).pptx
Unit-IV; Professional Sales Representative (PSR).pptx
 
ICT role in 21st century education and it's challenges.
ICT role in 21st century education and it's challenges.ICT role in 21st century education and it's challenges.
ICT role in 21st century education and it's challenges.
 
Towards a code of practice for AI in AT.pptx
Towards a code of practice for AI in AT.pptxTowards a code of practice for AI in AT.pptx
Towards a code of practice for AI in AT.pptx
 
Google Gemini An AI Revolution in Education.pptx
Google Gemini An AI Revolution in Education.pptxGoogle Gemini An AI Revolution in Education.pptx
Google Gemini An AI Revolution in Education.pptx
 
Food safety_Challenges food safety laboratories_.pdf
Food safety_Challenges food safety laboratories_.pdfFood safety_Challenges food safety laboratories_.pdf
Food safety_Challenges food safety laboratories_.pdf
 
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx
 
Holdier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdfHoldier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdf
 
Accessible Digital Futures project (20/03/2024)
Accessible Digital Futures project (20/03/2024)Accessible Digital Futures project (20/03/2024)
Accessible Digital Futures project (20/03/2024)
 
Spellings Wk 3 English CAPS CARES Please Practise
Spellings Wk 3 English CAPS CARES Please PractiseSpellings Wk 3 English CAPS CARES Please Practise
Spellings Wk 3 English CAPS CARES Please Practise
 
How to Create and Manage Wizard in Odoo 17
How to Create and Manage Wizard in Odoo 17How to Create and Manage Wizard in Odoo 17
How to Create and Manage Wizard in Odoo 17
 
Dyslexia AI Workshop for Slideshare.pptx
Dyslexia AI Workshop for Slideshare.pptxDyslexia AI Workshop for Slideshare.pptx
Dyslexia AI Workshop for Slideshare.pptx
 
Single or Multiple melodic lines structure
Single or Multiple melodic lines structureSingle or Multiple melodic lines structure
Single or Multiple melodic lines structure
 
Application orientated numerical on hev.ppt
Application orientated numerical on hev.pptApplication orientated numerical on hev.ppt
Application orientated numerical on hev.ppt
 
How to Manage Global Discount in Odoo 17 POS
How to Manage Global Discount in Odoo 17 POSHow to Manage Global Discount in Odoo 17 POS
How to Manage Global Discount in Odoo 17 POS
 
Introduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsIntroduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The Basics
 
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
 
Unit-V; Pricing (Pharma Marketing Management).pptx
Unit-V; Pricing (Pharma Marketing Management).pptxUnit-V; Pricing (Pharma Marketing Management).pptx
Unit-V; Pricing (Pharma Marketing Management).pptx
 
ICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptxICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptx
 
Spatium Project Simulation student brief
Spatium Project Simulation student briefSpatium Project Simulation student brief
Spatium Project Simulation student brief
 

.NET Fest 2017. Dino Esposito. I Have a Microservices Architecture and I Didn't Know

  • 1. I HAVE MICROSERVICES (and I didn’t know) @despos facebook.com/naa4e Press DINO ESPOSITO
  • 2. EXPOWARE SOFT - 2016 Samuel Beckett, 1983 Ever tried.Ever failed.No matter.Try agai Fail again.Fail better.
  • 3. EXPOWARE SOFT - 2016 MICROSERVICES
  • 4. EXPOWARE SOFT - 2016 MANY TIMES, THINGS LOOK DIFFERENT FROM WHAT THEY ARE…
  • 6. EXPOWARE SOFT - 2016 Microservices are not exactly what we often hear and read Architecture >> Technology
  • 7. EXPOWARE SOFT - 2016 MICROSERVICES
  • 8. EXPOWARE SOFT - 2016 MICROSERVICE A particular way of designing software applications as suites of independently deployable services. ■ Run in dedicated process ■ Communicate through lightweight mechanisms ■ Simplified and automated deployment ■ Decentralized control of languages and data https://martinfowler.com/articles/microservices.html
  • 9. EXPOWARE SOFT - 2016 SOA IN OTHER WORDS … JUST MADE SIMPLER
  • 10. EXPOWARE SOFT - 2016 WS-XXX protocols SOA tenets
  • 11. EXPOWARE SOFT - 2016  Tenet 1: Boundaries are explicit.  Tenet 2: Services are autonomous.  Tenet 3: Services share schema & contract, not class.  Tenet 4: Service compatibility is based upon policy.
  • 13. EXPOWARE SOFT - 2016 Vertical stacks of logic and data Can contain replicated data Can access data via services Easy to package and deploy Easy to assign to development teams Work well with containers Not that well with Visual Studio Nuget packages better way to share code than references MICROSERVICE
  • 14. EXPOWARE SOFT - 2016 MONOLITHIC APPLICATION
  • 15. EXPOWARE SOFT - 2016 SEGMENTED APPLICATION COLLECTION OF MONOLITHIC APPLICATIONS
  • 16. EXPOWARE SOFT - 2016 from BOUNDED CONTEXT to MICROSERVICE
  • 17. EXPOWARE SOFT - 2016 HOW DO WE GET THERE?
  • 18. EXPOWARE SOFT - 2016 ImplementationStrategic Design Ubiquitous language Bounded contexts Domain model Layered architecture DOMAIN-DRIVEN DESIGN Bounded contexts
  • 19. EXPOWARE SOFT - 2016 Business domain Bounded context Bounded context Bounded context Bounded context Business domain SOFTWARE MODEL
  • 20. EXPOWARE SOFT - 2016 Bounded Context Ubiquitous language Independent implementation External interface (to other contexts)
  • 21. EXPOWARE SOFT - 2016 Functional areas of the application that are better treated separately Same term meaning different things to different people Same term used to indicate different elements Dependency on external subsystems Dependency on legacy code Why Having Bounded Contexts
  • 22. EXPOWARE SOFT - 2016 CONTEXT MAP
  • 23. EXPOWARE SOFT - 2016 SAY YOU’RE A STARTUP
  • 24. EXPOWARE SOFT - 2016 SAY YOU’RE A STARTUP API SERVER SCORING SERVER
  • 25. EXPOWARE SOFT - 2016 SAY YOU’RE A STARTUP API SERVER SCORING SERVER PLAYER SERVER
  • 26. EXPOWARE SOFT - 2016 SAY YOU’RE A STARTUP LIVE DATA SERVER SCORING SERVER PLAYER SERVER API SERVER CMS SERVER
  • 27. EXPOWARE SOFT - 2016 SAY YOU’RE A STARTUP LIVE DATA SERVER SCORING SERVER PLAYER SERVER API SERVER CMS SERVER TOURNAMENT SERVER
  • 28. EXPOWARE SOFT - 2016 SAY YOU’RE A STARTUP LIVE DATA SERVER SCORING SERVER PLAYER SERVER LIVE DATA SERVER CMS SERVER TOURNAMENT SERVER MANAGEMENT SERVER
  • 29. EXPOWARE SOFT - 2016 I Built a (Perfect) Microservice Architecture and I Didn’t Know
  • 30. EXPOWARE SOFT - 2016 The reason we ended up to microservices has to do much more with productivity than pure technical matters or technologies. It had to do much more with common sense and attitude to solve concrete (and small) business problems than religion or design for big-scale.
  • 31. EXPOWARE SOFT - 2016http://twitter.com/hhariri/status/540463864622895104
  • 32. EXPOWARE SOFT - 2016 The user of the software won’t know what she wants until she sees the software. Humphrey’s Law An interactive system can never be fully specified nor can it ever be fully tested. Wegner’s Lemma Pluralsight courses UXDD/DDD
  • 33. EXPOWARE SOFT - 2016 @despos