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
A fun session at Betabit.
2
@phermens
Pat Hermens
● Father of two
● Based here in Rotterdam
● Lead Developer at Coolblue
● Still have a soft-spot fo...
Elke dag een beetje meer...
Microservices
5
@phermens
What?
6
@phermens
Why?
7
@phermens
Why not?
8
@phermens
How?
Geniet, dus vraag met mate.
11
@phermens
What?
12
@phermens
Microservices is a variant of the service-oriented architecture
architectural style that structures an applic...
13
@phermens
Formal definition (cont.)
There is no industry consensus yet regarding the properties of
microservices, and a...
14
@phermens
Also known as:
● “The SOA of this generation”
● “RPC, but with HTTP”
● “ESB, without the bus”
● “CQRS, withou...
16
@phermens
...In short, the microservice architectural style is an approach
to developing a single application as a suit...
17
@phermens
An approach to developing a single application as a
suite of services, each running in its
own process and co...
18
@phermens
● single application
● suite of services
● HTTP API
● business capabilities
● independently deployable
● full...
Mindset
Christmas-period 2015
30
@phermens
● single application
● suite of services
● HTTP API
● business capabilities
● independently deployable
● full...
31
@phermens
● single application
● suite of services
● HTTP API
● business capabilities
● independently deployable
● full...
22nd December, 2015
Methodology
- http://httpwg.org/asset/http.svg
Microservices
46
@phermens
Why?
66
@phermens
Small repos!
net-crm-webservice [OrderLogger]>
>> git diff --shortstat (git hash-object -t tree /dev/null)
65...
Short break?
80
@phermens
Why not?
1. Complexity
Wikipedia - Vaska's complex
2. Speed
3. Development
4. Discipline
5. Alternatives
You are not Netflix.
#wearenotnetflix
137
@phermens
How?
138
@phermens
The classic combo
140
@phermens
There are other options...
141
@phermens
There are other ADVANCED options...
142
@phermens
Indirectly?
143
@phermens
Please not at the start!
145
@phermens
KISS - to start
Within a single domain
Containing single responsibility
Implementing one type of endpoint
146
@phermens
KISS + Growth
Within a single domain
Containing single responsibility
Implementing a few related endpoints
154
@phermens
Our “automated” tooling
158
@phermens
The full(er) picture
159
@phermens
Within a single domain
containing single responsibility
implementing a few related endpoints
Inherent Scale
...
160
@phermens
/GET
/UPDATE
/DELETE
Easy to understand
/GET
/UPDATE
/DELETE
/GET
/UPDATE
/DELETE
ProductOrderCart
http://www.grahamlea.com/2015/07/microservices-security-questions
- Graham Lea
http://www.grahamlea.com/2015/07/microservices-security-questions
- Graham Lea
https://blog.codecentric.de/2015/11/kommunikation-von-micros
ervices-die-vier-ebenen-der-entkopplung/ - Tobias Flohre
https://blog.codecentric.de/2015/11/kommunikation-von-micros
ervices-die-vier-ebenen-der-entkopplung/ - Tobias Flohre
You are not Netflix.
#wearenotnetflix
Short break?
A few little gotchas
169
@phermens
Infrastructure as Code
170
@phermens
Many options; pick one
171
@phermens
It’s going to fail
172
@phermens
Use some tools to help
174
@phermens
Don’t forget monitoring & alerting
175
@phermens
Just don’t do it like this
176
@phermens
Versioning.0.0
177
@phermens
Just roll forward!
178
@phermens
...until you need it
179
@phermens
“Any colour, so long as it’s black
180
@phermens
Communication
https://en.wikipedia.org/wiki/Models_of_communication
#Shannon_and_Weaver
181
@phermens
Just talk!
182
@phermens
Use a common language
183
@phermens
Have well defined stakeholders
184
@phermens
... and talk with them!
Gewoon doen!
Meenemen
A few short take-aways
Complexity
Autonomy
Consistency
Resiliency
Flexibility
Necessity
Zo, vraag met mate...
199
@phermens
Some additional reading
● https://martinfowler.com/articles/microservices.html - A good discussion of Micros...
200
@phermens
Thanks
https://hermens.com.au
@phermens
Microservices, because everyone wants to be cool
Microservices, because everyone wants to be cool
Microservices, because everyone wants to be cool
Microservices, because everyone wants to be cool
Microservices, because everyone wants to be cool
Microservices, because everyone wants to be cool
Microservices, because everyone wants to be cool
Microservices, because everyone wants to be cool
Microservices, because everyone wants to be cool
Microservices, because everyone wants to be cool
Microservices, because everyone wants to be cool
Microservices, because everyone wants to be cool
Microservices, because everyone wants to be cool
Microservices, because everyone wants to be cool
Microservices, because everyone wants to be cool
Microservices, because everyone wants to be cool
Microservices, because everyone wants to be cool
Microservices, because everyone wants to be cool
Microservices, because everyone wants to be cool
Microservices, because everyone wants to be cool
Microservices, because everyone wants to be cool
Microservices, because everyone wants to be cool
Microservices, because everyone wants to be cool
Microservices, because everyone wants to be cool
Microservices, because everyone wants to be cool
Microservices, because everyone wants to be cool
Microservices, because everyone wants to be cool
Microservices, because everyone wants to be cool
Microservices, because everyone wants to be cool
Microservices, because everyone wants to be cool
Microservices, because everyone wants to be cool
Microservices, because everyone wants to be cool
Microservices, because everyone wants to be cool
Microservices, because everyone wants to be cool
Microservices, because everyone wants to be cool
Microservices, because everyone wants to be cool
Microservices, because everyone wants to be cool
Microservices, because everyone wants to be cool
Microservices, because everyone wants to be cool
Microservices, because everyone wants to be cool
Microservices, because everyone wants to be cool
Microservices, because everyone wants to be cool
Microservices, because everyone wants to be cool
Microservices, because everyone wants to be cool
Microservices, because everyone wants to be cool
Microservices, because everyone wants to be cool
Microservices, because everyone wants to be cool
Microservices, because everyone wants to be cool
Microservices, because everyone wants to be cool
Microservices, because everyone wants to be cool
Microservices, because everyone wants to be cool
Microservices, because everyone wants to be cool
Microservices, because everyone wants to be cool
Microservices, because everyone wants to be cool
Microservices, because everyone wants to be cool
Microservices, because everyone wants to be cool
Microservices, because everyone wants to be cool
Microservices, because everyone wants to be cool
Microservices, because everyone wants to be cool
Microservices, because everyone wants to be cool
Microservices, because everyone wants to be cool
Microservices, because everyone wants to be cool
Microservices, because everyone wants to be cool
Microservices, because everyone wants to be cool
Microservices, because everyone wants to be cool
Microservices, because everyone wants to be cool
Microservices, because everyone wants to be cool
Microservices, because everyone wants to be cool
Microservices, because everyone wants to be cool
Microservices, because everyone wants to be cool
Microservices, because everyone wants to be cool
Microservices, because everyone wants to be cool
Microservices, because everyone wants to be cool
Microservices, because everyone wants to be cool
Microservices, because everyone wants to be cool
Microservices, because everyone wants to be cool
Microservices, because everyone wants to be cool
Microservices, because everyone wants to be cool
Microservices, because everyone wants to be cool
Microservices, because everyone wants to be cool
Microservices, because everyone wants to be cool
Microservices, because everyone wants to be cool
Microservices, because everyone wants to be cool
Microservices, because everyone wants to be cool
Microservices, because everyone wants to be cool
Microservices, because everyone wants to be cool
Microservices, because everyone wants to be cool
Microservices, because everyone wants to be cool
Microservices, because everyone wants to be cool
Microservices, because everyone wants to be cool
Microservices, because everyone wants to be cool
Microservices, because everyone wants to be cool
Microservices, because everyone wants to be cool
Microservices, because everyone wants to be cool
Microservices, because everyone wants to be cool
Microservices, because everyone wants to be cool
Microservices, because everyone wants to be cool
Microservices, because everyone wants to be cool
Microservices, because everyone wants to be cool
Microservices, because everyone wants to be cool
Microservices, because everyone wants to be cool
Microservices, because everyone wants to be cool
Microservices, because everyone wants to be cool
Microservices, because everyone wants to be cool
Microservices, because everyone wants to be cool
Microservices, because everyone wants to be cool
Microservices, because everyone wants to be cool
Microservices, because everyone wants to be cool
Microservices, because everyone wants to be cool
Microservices, because everyone wants to be cool
Microservices, because everyone wants to be cool
Microservices, because everyone wants to be cool
Microservices, because everyone wants to be cool
Microservices, because everyone wants to be cool
Microservices, because everyone wants to be cool
Microservices, because everyone wants to be cool
Microservices, because everyone wants to be cool
Microservices, because everyone wants to be cool
Microservices, because everyone wants to be cool
Microservices, because everyone wants to be cool
Microservices, because everyone wants to be cool
Upcoming SlideShare
Loading in …5
×

Microservices, because everyone wants to be cool

94 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

×