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.

Microservices, because everyone wants to be cool

55 views

Published on

By now, nearly every developer has heard about "microservices", and some may even expect it to be nothing more than "this generations SOA" - nothing more than a passing fad... but what does "making microservices" truly mean? What does "implementing microservices" give us? Why should we move away from our (tried and true) monoliths just to align ourselves with the latest buzzword? What are the benefits of having "microservices" in an actively developed Production environments?

In the back-office development teams at Coolblue, this is has been implemented by, you guessed it, utilising microservices. In this session, Pat will present how you too can implement microservices with a "fail fast, fail forward" approach to development. By the end of the evening, we hope you will walk away with the knowledge that "using microservices" isn't just an answer; instead it's the beginning of a journey. A journey that Pat will give you some insight into, and equip you - thanks to his failings - with some tips and tricks to avoid the biggest potholes along the way.

If you're a developer that's heard all the fanfare for microservices, and wonder why everyone is so keen to jump on board, then let Pat show you a few reasons why you might want to check microservices out for yourself.

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Microservices, because everyone wants to be cool

  1. 1. Microservices A fun session at Betabit.
  2. 2. 2 @phermens Pat Hermens ● Father of two ● Based here in Rotterdam ● Lead Developer at Coolblue ● Still have a soft-spot for VB6 https://hermens.com.au/ or @phermens
  3. 3. Elke dag een beetje meer...
  4. 4. Microservices
  5. 5. 5 @phermens What?
  6. 6. 6 @phermens Why?
  7. 7. 7 @phermens Why not?
  8. 8. 8 @phermens How?
  9. 9. Geniet, dus vraag met mate.
  10. 10. 11 @phermens What?
  11. 11. 12 @phermens Microservices is a variant of the service-oriented architecture architectural style that structures an application as a collection of loosely coupled services. In a microservices architecture, services should be fine-grained and the protocols should be lightweight. - https://en.wikipedia.org/wiki/Microservices Formal definition
  12. 12. 13 @phermens Formal definition (cont.) There is no industry consensus yet regarding the properties of microservices, and an official definition is missing as well. - https://en.wikipedia.org/wiki/Microservices#Details
  13. 13. 14 @phermens Also known as: ● “The SOA of this generation” ● “RPC, but with HTTP” ● “ESB, without the bus” ● “CQRS, without the discipline”
  14. 14. 16 @phermens ...In short, the microservice architectural style is an approach to developing a single application as a suite of small services, each running in its own process and communicating with lightweight mechanisms, often an HTTP resource API. These services are built around business capabilities and independently deployable by fully automated deployment machinery… - https://martinfowler.com/articles/microservices.html A simpler definition
  15. 15. 17 @phermens An approach to developing a single application as a suite of services, each running in its own process and communicating with a HTTP API These services are built around business capabilities and are independently deployable by a fully automated deployment pipeline My personal understanding...
  16. 16. 18 @phermens ● single application ● suite of services ● HTTP API ● business capabilities ● independently deployable ● fully automated deployment pipeline Let’s focus
  17. 17. Mindset
  18. 18. Christmas-period 2015
  19. 19. 30 @phermens ● single application ● suite of services ● HTTP API ● business capabilities ● independently deployable ● fully automated deployment pipeline Lessons learnt
  20. 20. 31 @phermens ● single application ● suite of services ● HTTP API ● business capabilities ● independently deployable ● fully automated deployment pipeline Lessons learnt
  21. 21. 22nd December, 2015
  22. 22. Methodology
  23. 23. - http://httpwg.org/asset/http.svg
  24. 24. Microservices
  25. 25. 46 @phermens Why?
  26. 26. 66 @phermens Small repos! net-crm-webservice [OrderLogger]> >> git diff --shortstat (git hash-object -t tree /dev/null) 658 files changed, 47452 insertions(+) ---- 658 files 47452 lines of code
  27. 27. Short break?
  28. 28. 80 @phermens Why not?
  29. 29. 1. Complexity
  30. 30. Wikipedia - Vaska's complex
  31. 31. 2. Speed
  32. 32. 3. Development
  33. 33. 4. Discipline
  34. 34. 5. Alternatives
  35. 35. You are not Netflix. #wearenotnetflix
  36. 36. 137 @phermens How?
  37. 37. 138 @phermens The classic combo
  38. 38. 140 @phermens There are other options...
  39. 39. 141 @phermens There are other ADVANCED options...
  40. 40. 142 @phermens Indirectly?
  41. 41. 143 @phermens Please not at the start!
  42. 42. 145 @phermens KISS - to start Within a single domain Containing single responsibility Implementing one type of endpoint
  43. 43. 146 @phermens KISS + Growth Within a single domain Containing single responsibility Implementing a few related endpoints
  44. 44. 154 @phermens Our “automated” tooling
  45. 45. 158 @phermens The full(er) picture
  46. 46. 159 @phermens Within a single domain containing single responsibility implementing a few related endpoints Inherent Scale Within a single domain containing single responsibility implementing a few related endpoints Within a single domain containing single responsibility implementing a few related endpoints ServiceAServiceBServiceC
  47. 47. 160 @phermens /GET /UPDATE /DELETE Easy to understand /GET /UPDATE /DELETE /GET /UPDATE /DELETE ProductOrderCart
  48. 48. http://www.grahamlea.com/2015/07/microservices-security-questions - Graham Lea
  49. 49. http://www.grahamlea.com/2015/07/microservices-security-questions - Graham Lea
  50. 50. https://blog.codecentric.de/2015/11/kommunikation-von-micros ervices-die-vier-ebenen-der-entkopplung/ - Tobias Flohre
  51. 51. https://blog.codecentric.de/2015/11/kommunikation-von-micros ervices-die-vier-ebenen-der-entkopplung/ - Tobias Flohre
  52. 52. You are not Netflix. #wearenotnetflix
  53. 53. Short break?
  54. 54. A few little gotchas
  55. 55. 169 @phermens Infrastructure as Code
  56. 56. 170 @phermens Many options; pick one
  57. 57. 171 @phermens It’s going to fail
  58. 58. 172 @phermens Use some tools to help
  59. 59. 174 @phermens Don’t forget monitoring & alerting
  60. 60. 175 @phermens Just don’t do it like this
  61. 61. 176 @phermens Versioning.0.0
  62. 62. 177 @phermens Just roll forward!
  63. 63. 178 @phermens ...until you need it
  64. 64. 179 @phermens “Any colour, so long as it’s black
  65. 65. 180 @phermens Communication https://en.wikipedia.org/wiki/Models_of_communication #Shannon_and_Weaver
  66. 66. 181 @phermens Just talk!
  67. 67. 182 @phermens Use a common language
  68. 68. 183 @phermens Have well defined stakeholders
  69. 69. 184 @phermens ... and talk with them!
  70. 70. Gewoon doen!
  71. 71. Meenemen A few short take-aways
  72. 72. Complexity
  73. 73. Autonomy
  74. 74. Consistency
  75. 75. Resiliency
  76. 76. Flexibility
  77. 77. Necessity
  78. 78. Zo, vraag met mate...
  79. 79. 199 @phermens Some additional reading ● https://martinfowler.com/articles/microservices.html - A good discussion of Microservices ● Specifically: https://martinfowler.com/bliki/MicroservicePrerequisites.html - Prerequisites for Microservices ● https://vimeo.com/131632250 - Sam Newman talking about Microservice Principles @ NDC Oslo 2015 ● https://docs.microsoft.com/en-us/azure/service-fabric/service-fabric-overview-microservices - Great overview ● https://aadrake.com/posts/2017-05-20-enough-with-the-microservices.html - A good companion to the above. ● https://github.com/Microsoft/api-guidelines/blob/master/Guidelines.md - Microsoft’s REST Guidelines ● http://www.thepollyproject.org/ & https://github.com/App-vNext/Polly - Great tool ● https://github.com/Travix-International/Hystrix.Dotnet - An advanced version of Polly … and many more in Google :)
  80. 80. 200 @phermens Thanks https://hermens.com.au @phermens

×