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.

Moved to https://slidr.io/azzazzel/microservices-and-modularity-or-the-difference-between-treatment-and-cure

5,018 views

Published on

This slide deck will be removed from here in the future. It has been moved to : https://slidr.io/azzazzel/microservices-and-modularity-or-the-difference-between-treatment-and-cure

Published in: Software

Moved to https://slidr.io/azzazzel/microservices-and-modularity-or-the-difference-between-treatment-and-cure

  1. 1. MARCH 17, 2015 Microservices and Modularity or the difference between treatment and cure Milen Dyankov @milendyankov
  2. 2. ~$ pidof java
  3. 3. ~$ pidof java 9927 2151 ~$
  4. 4. ~$ pidof java 9927 2151 ~$ ps aux | grep java | grep -v grep | awk '{print $2}'
  5. 5. ~$ pidof java 9927 2151 ~$ ps aux | grep java | grep -v grep | awk '{print $2}' 2151 9927 ~$
  6. 6. ~$ pidof java 9927 2151 ~$ ps aux | grep java | grep -v grep | awk '{print $2}' 2151 9927 ~$ Monolith Microservices
  7. 7. What are Microservices
  8. 8. Componentization via Services Organized around Business Capabilities Products not Projects Smart endpoints and dumb pipes Decentralized Governance Decentralized Data Management Infrastructure Automation Design for failure Evolutionary Design Microservices characteristics!
  9. 9. Componentization via Services Organized around Business Capabilities Products not Projects Smart endpoints and dumb pipes Decentralized Governance Decentralized Data Management Infrastructure Automation Design for failure Evolutionary Design 50% not strictly software but rather operations related!
  10. 10. Why consider Microservices
  11. 11. wrong but common answer Reducing the complexity of Monoliths
  12. 12. ...
  13. 13. ...
  14. 14. ...
  15. 15. ... or
  16. 16. ... or ...∞
  17. 17. ... or ...∞ ...
  18. 18. ... or ... Reduced complexity !!! ∞ ...
  19. 19. . . . then all you are doing is shifting complexity from inside a component to the connections between components. . . . it moves it to a place that's less explicit and harder to control.
  20. 20. Microservices What's cool about
  21. 21. “The real power ... is the ability for a developer to develop a single entity and then deploy that component multiple times” “Highly Scalable, Robust, Architecture” “In very straightforward terms ... is a component model for building portable, reusable and scalable business components ... for distributed environment.”
  22. 22. “The real power ... is the ability for a developer to develop a single entity and then deploy that component multiple times” www.onjava.com/pub/a/onjava/2001/12/19/eejbs.html “Highly Scalable, Robust, Architecture” www.dhlee.info/computing/ejb/reference/seybold_ejb.pdf “In very straightforward terms ... is a component model for building portable, reusable and scalable business components ... for distributed environment.” www.idt.mdh.se/kurser/ct3340/archives/ht08/papersRM08/37.pdf Quotes from articles about EJB ( 1999 – 2002 )
  23. 23. . . . Companies worldwide have overspent about $1 billion . . . vendors are encouraging customer to buy high-end technology that they don't need.
  24. 24. Who is doing Microservices
  25. 25. microservices
  26. 26. microservices What do they have in common ?
  27. 27. microservices They build microservices for their own needs!
  28. 28. microservices They build microservices for their own needs! This makes it easer for them to grow the DevOps culture hire the right people accept “Decentralized” approach automate infrastructure
  29. 29. . . . a technique that is more effective for a more skillful team isn't necessarily going to work for less skillful teams . . . A poor team will always create a poor system . . .
  30. 30. Should I do Microservices
  31. 31. microservices Does your organization fit into that space?
  32. 32. . . . you shouldn't start with a microservices architecture. Instead begin with a monolith, keep it modular, and split it into microservices once the monolith becomes a problem. . . .
  33. 33. Microservices What else, if not
  34. 34. Microservices do not cure complexity! Actually nothing does !
  35. 35. The term "cure" means that, after medical treatment, the patient no longer has that particular condition anymore. Some diseases have no cure. The patient will always have the condition, but treatment can help to manage it.
  36. 36. Good treatment for complexity is enforcing clean modular architecture
  37. 37. . . . The Deployment Model is a Detail. . . . there is no such thing as a micro-service architecture. Micro-services are a deployment option . . .
  38. 38. Interesting !?! But in my project it's not possible because of . . . Really ?!? Modularizing “Duke's forest” JEE tutorial demo! https://github.com/azzazzel/modular-dukes-forest
  39. 39. Model JPA Store JPA, EJB JSF Shipping JPA, EJB JSF PaymentEJB Glassfish
  40. 40. Domain Model Catalog usecase Ide ntity u se case E-com m erce usecase JPA persistence In-memory persistence EJB controllers OSGi services Portlet display JSF display JEE container SpringBoot OSGi runtime Liferay Database
  41. 41. Domain Model Catalog usecase Ide ntity u se case E-com m erce usecase JPA persistence In-memory persistence EJB controllers OSGi services Portlet display JSF display JEE container SpringBoot OSGi runtime Liferay Database
  42. 42. Domain Model Catalog usecase Ide ntity u se case E-com m erce usecase JPA persistence In-memory persistence EJB controllers OSGi services Portlet display JSF display JEE container SpringBoot OSGi runtime Liferay Database
  43. 43. Domain Model Catalog usecase Ide ntity u se case E-com m erce usecase JPA persistence In-memory persistence EJB controllers OSGi services Portlet display JSF display JEE container SpringBoot OSGi runtime Liferay Database
  44. 44. Domain Model Catalog usecase Ide ntity u se case E-com m erce usecase JPA persistence In-memory persistence EJB controllers OSGi services Portlet display JSF display JEE container SpringBoot OSGi runtime Liferay Database
  45. 45. http://blog.8thlight.com/uncle-bob/2012/08/13/the-clean-architecture.html
  46. 46. Microservices Modularity Is a important software architecture concept! One can design modular application without
  47. 47. The OSGi specification describes a modular system and a service platform for the Java programming language Confluence Eclipse Fuse ESB Glassfish Jboss JIRA JonAS Service Mix Weblogic Websphere . . . The architecture of choice for and
  48. 48. Componentization via Services Organized around Business Capabilities Products not Projects Smart endpoints and dumb pipes Decentralized Governance Decentralized Data Management Infrastructure Automation Design for failure Evolutionary Design Same characteristics but more flexible !
  49. 49. We are transforming a huge code base into small simple core and OSGi (micro)services! We have so far extracted over 80 apps and we are not done yet! This is not theory! We do this at
  50. 50. milen.dyankov@liferay.com http://www.liferay.com/web/milen.dyankov/ @milendyankov @LiferayPL http://www.liferay.com @Liferay http://www.facebook.com/Liferay

×