Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

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

214 views

Published on

Microservices are vertical slices of functionality independent from one another in terms of technologies, paradigms and to some extent also data. As it is an isolated module, a microservice can be easily replaced or entirely rewritten or just scaled horizontally without the risk of regression in case of need. Multiple microservices interact in a loosely coupled manner participating to a distributed architecture but being fully usable on their own. Honestly, this design has very few cons and quite a few pros. And more importantly, it is much more common than expected. It’s simply the name given to all running solutions that for some reasons are not falling in the realm of well-architected, comprehensive systems. Nearly any system is a collection of microservices. In this talk, I’ll share some painful personal experience that resulted from the building of the infrastructure for a company in multiple steps, with limited resources, adding—like a family would do—one piece after the next trying not to lose track of the existing. Come and hear how to rename and leverage the mess you have around to take some concrete functional benefits.

Published in: Education
  • Be the first to comment

  • Be the first to like this

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

  1. 1. I HAVE MICROSERVICES (and I didn’t know) @despos facebook.com/naa4e Press DINO ESPOSITO
  2. 2. EXPOWARE SOFT - 2016 Samuel Beckett, 1983 Ever tried.Ever failed.No matter.Try agai Fail again.Fail better.
  3. 3. EXPOWARE SOFT - 2016 MICROSERVICES
  4. 4. EXPOWARE SOFT - 2016 MANY TIMES, THINGS LOOK DIFFERENT FROM WHAT THEY ARE…
  5. 5. EXPOWARE SOFT - 2016
  6. 6. EXPOWARE SOFT - 2016 Microservices are not exactly what we often hear and read Architecture >> Technology
  7. 7. EXPOWARE SOFT - 2016 MICROSERVICES
  8. 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. 9. EXPOWARE SOFT - 2016 SOA IN OTHER WORDS … JUST MADE SIMPLER
  10. 10. EXPOWARE SOFT - 2016 WS-XXX protocols SOA tenets
  11. 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.
  12. 12. EXPOWARE SOFT - 2016
  13. 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. 14. EXPOWARE SOFT - 2016 MONOLITHIC APPLICATION
  15. 15. EXPOWARE SOFT - 2016 SEGMENTED APPLICATION COLLECTION OF MONOLITHIC APPLICATIONS
  16. 16. EXPOWARE SOFT - 2016 from BOUNDED CONTEXT to MICROSERVICE
  17. 17. EXPOWARE SOFT - 2016 HOW DO WE GET THERE?
  18. 18. EXPOWARE SOFT - 2016 ImplementationStrategic Design Ubiquitous language Bounded contexts Domain model Layered architecture DOMAIN-DRIVEN DESIGN Bounded contexts
  19. 19. EXPOWARE SOFT - 2016 Business domain Bounded context Bounded context Bounded context Bounded context Business domain SOFTWARE MODEL
  20. 20. EXPOWARE SOFT - 2016 Bounded Context Ubiquitous language Independent implementation External interface (to other contexts)
  21. 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. 22. EXPOWARE SOFT - 2016 CONTEXT MAP
  23. 23. EXPOWARE SOFT - 2016 SAY YOU’RE A STARTUP
  24. 24. EXPOWARE SOFT - 2016 SAY YOU’RE A STARTUP API SERVER SCORING SERVER
  25. 25. EXPOWARE SOFT - 2016 SAY YOU’RE A STARTUP API SERVER SCORING SERVER PLAYER SERVER
  26. 26. EXPOWARE SOFT - 2016 SAY YOU’RE A STARTUP LIVE DATA SERVER SCORING SERVER PLAYER SERVER API SERVER CMS SERVER
  27. 27. EXPOWARE SOFT - 2016 SAY YOU’RE A STARTUP LIVE DATA SERVER SCORING SERVER PLAYER SERVER API SERVER CMS SERVER TOURNAMENT SERVER
  28. 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. 29. EXPOWARE SOFT - 2016 I Built a (Perfect) Microservice Architecture and I Didn’t Know
  30. 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. 31. EXPOWARE SOFT - 2016http://twitter.com/hhariri/status/540463864622895104
  32. 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. 33. EXPOWARE SOFT - 2016 @despos

×