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 vs. The First Law of Distributed Objects - GOTO Nights Chicago 2017

675 views

Published on

TALK #2: Microservices vs. The First Law of Object Design

We've been breaking systems and application into smaller components for a long time now. From Component-Based Design to Distributed Objects to SOA to what is today's preferred golden hammer: microservices.

One definition of microservices is that it is a flavor of SOA that emphasizes many specialize services versus a few more generalist ones. Often these microservices are so small that they take care of a single "object". Distributed objects aren't new to this industry, and in 2003, Martin Fowler wrote a classic article where he discusses several problems with this model, and proposes the First Law of Distributed Objects:

"Objects have been around for a while, and sometimes it seems that ever since they were created, folks have wanted to distribute them. However, distribution of objects, or indeed of anything else, has a lot more pitfalls than many people realize, especially when they're under the influence of vendors' cozy brochures. This article is about some of these hard lessons-lessons I've seen many of my clients learn the hard way... my First Law of Distributed Object Design: Don’t distribute your objects!"

Reinventing the wheel is nothing new in our field, but if microservices are meant to be small, how can we avoid the same problems from the past? What are the technologies, architectures, protocols, and practices we need in place to make sure that our microservices architecture isn't just the largest bowl of spaghetti this organization has ever cooked?

SPEAKER: Phil Calçado, Director of Software Engineering at DigitalOcean
Phil Calçado works at DigitalOcean, where he helps build the cloud for developers. Before that, he spent four years building the team and architecture behind SoundCloud's move from a monolith to microservices. He tweets at @pcalcado writes at http://philcalcado.com.

Published in: Software
  • Hello! Get Your Professional Job-Winning Resume Here - Check our website! https://vk.cc/818RFv
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

Microservices vs. The First Law of Distributed Objects - GOTO Nights Chicago 2017

  1. 1. Phil Calçado - @pcalcado philcalcado.com Microservices vs. The First Law of Distributed Objects
  2. 2. Phil Calçado - @pcalcado philcalcado.com Microservices vs. The First Law of Distributed Objects
  3. 3. (disclaimer)
  4. 4. Servers used to be very expensive. Efficient software was mandatory.
  5. 5. Internet usage was growing drastically. And so was the demand for engineers.
  6. 6. "The flexible, server-side infrastructure of CORBA makes it feasible to develop servers that can scale from handling a small number of objects up to handling a virtually unlimited number of objects. "
  7. 7. what are objects anyway?
  8. 8. "Smalltalk’s design—and existence—is due to the insight that everything we can describe can be represented by the recursive composition of a single kind of behavioral building block that hides its combination of state and process inside itself and can be dealt with only through the exchange of messages."
  9. 9. i.e. annoying little things that can’t do anything on their own.
  10. 10. An analogy from the meatspace
  11. 11. i.e. annoying little things that can’t do anything on their own.
  12. 12. Communication isn’t free
  13. 13. don’t
  14. 14. don’t
  15. 15. don’t
  16. 16. and there was much rejoicing
  17. 17. fast forward to 2017
  18. 18. microservices
  19. 19. what are microservices anyway?
  20. 20. "Microservices are small, autonomous services that work together."
  21. 21. i.e. annoying little things that can’t do anything on their own.
  22. 22. wtf? and still…
  23. 23. 1. technology did get better
  24. 24. no more design-by-committee
  25. 25. 2. services are coarse-grained
  26. 26. the problem with microservices is the micro service microservice?
  27. 27. Monolith Class ?
  28. 28. a real-world example
  29. 29. billing
  30. 30. billing BillableUser ?
  31. 31. it’s all about the language
  32. 32. run-rate invoice credit card user droplet-started droplet-destroyed tax currency bank account realised revenue
  33. 33. run-rate invoice credit card user droplet-started droplet-destroyed tax currency bank account realised revenue product price charging model
  34. 34. rating invoicing payment -collectingusers
  35. 35. rating invoicing payment -collecting users Highly visible Not visible Novel Commodity
  36. 36. the ubiquitous language can give you a blueprint
  37. 37. …unless you are too big or too small
  38. 38. Q&A

×