Successfully reported this slideshow.
Your SlideShare is downloading. ×

Do you really want to go fully micro?

Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad

Check these out next

1 of 45 Ad

Do you really want to go fully micro?

Download to read offline

Microservices are definitely the hot topic du jour . Everyone ( and their dog ) is using microservices or migrating towards them. However, the initial enthusiasm for microservices is starting to fade, and for many scenarios monoliths still seem to fit the bill.

Even more interesting, in many situations a pure approach of using either microservices or monliths is not enough. Instead a more careful, intermediate approach can be quite powerul.

This talk introduces the concepst of an API gateway for microservices as a means to adopt microservices at a more convenient pace. This approach brings about most of the benefits of microservices, but removes large chunks of complexity. We will touch upon authentication, authorization, API standardisation and logging,

The API gateway implementation demoed is based on Apache Sling - an innovative web framework built on top of the Java Content Repository (JCR), that uses OSGi for its component model and fosters RESTful application design. Although we will use Apache Sling for examples, previous knowledge of Sling or its components is not required.

Microservices are definitely the hot topic du jour . Everyone ( and their dog ) is using microservices or migrating towards them. However, the initial enthusiasm for microservices is starting to fade, and for many scenarios monoliths still seem to fit the bill.

Even more interesting, in many situations a pure approach of using either microservices or monliths is not enough. Instead a more careful, intermediate approach can be quite powerul.

This talk introduces the concepst of an API gateway for microservices as a means to adopt microservices at a more convenient pace. This approach brings about most of the benefits of microservices, but removes large chunks of complexity. We will touch upon authentication, authorization, API standardisation and logging,

The API gateway implementation demoed is based on Apache Sling - an innovative web framework built on top of the Java Content Repository (JCR), that uses OSGi for its component model and fosters RESTful application design. Although we will use Apache Sling for examples, previous knowledge of Sling or its components is not required.

Advertisement
Advertisement

More Related Content

Slideshows for you (20)

Similar to Do you really want to go fully micro? (20)

Advertisement

More from Robert Munteanu (20)

Recently uploaded (20)

Advertisement

Do you really want to go fully micro?

  1. 1. #Devoxx #ApacheSling @rombert Do you really want to go fully micro? Do you really want to go fully micro? Robert Munteanu Adobe
  2. 2. #Devoxx #ApacheSling @rombert Who I am  $DAYJOB  Adobe Experience Manager  Apache Sling  Apache Jackrabbit  Apache Felix  Open Source  Apache Sling  MantisBT  Mylyn Connector for MantisBT  Mylyn Connector for Review Board
  3. 3. #Devoxx #ApacheSling @rombert Agenda ● Microservices and monoliths ● Microservices and microservices ● A middle ground? ● Apache Sling primer ● Demo Application ● Conclusion
  4. 4. #Devoxx #ApacheSling @rombert Agenda ● Microservices and monoliths ● Microservices and microservices ● A middle ground? ● Apache Sling primer ● Demo Application ● Conclusion
  5. 5. #Devoxx #ApacheSling @rombert Microservices – the cool factor
  6. 6. #Devoxx #ApacheSling @rombert Microservices – best tool for the job
  7. 7. #Devoxx #ApacheSling @rombert Microservices – always think of failures
  8. 8. #Devoxx #ApacheSling @rombert Microservices – simpler scaling
  9. 9. #Devoxx #ApacheSling @rombert Microservices – different reusability
  10. 10. #Devoxx #ApacheSling @rombert Microservices – faster deployment
  11. 11. #Devoxx #ApacheSling @rombert Microservices – faster delivery Week 1 Week 2 Week 3 Week 4 Week 5 Week 6 Week 7 Week 8 Release Release Release Week 1h Week 2 Week 3 Week 4 Week 5 Week 6 Week 7 Week 8 Search Catalogue Payment Payment Search Payment Catalogue Payment Search Payment Payment Search Catalogue Payment Payment
  12. 12. #Devoxx #ApacheSling @rombert Monoliths – crowdsourced wisdom
  13. 13. #Devoxx #ApacheSling @rombert Monoliths – less distributed computing 1. The network is reliable 2. Latency is zero 3. Bandwidth is infinite 4. The network is secure 5. Topology doesn't change 6. There is one administrator 7. Transport cost is zero 8. The network is homogeneous The Eight Fallacies of Distributed Computing, Peter Deutsch, 1994
  14. 14. #Devoxx #ApacheSling @rombert Monoliths – Latency/Bandwidth
  15. 15. #Devoxx #ApacheSling @rombert Monoliths – Security
  16. 16. #Devoxx #ApacheSling @rombert Monoliths – less operations overhead
  17. 17. #Devoxx #ApacheSling @rombert Monoliths – less operations overhead
  18. 18. #Devoxx #ApacheSling @rombert Monoliths – better code reuse
  19. 19. #Devoxx #ApacheSling @rombert Monoliths – simpler availability Ordering Search Catalogue User Preferences
  20. 20. #Devoxx #ApacheSling @rombert Monoliths – easier service discovery
  21. 21. #Devoxx #ApacheSling @rombert Monoliths – easier troubleshooting
  22. 22. #Devoxx #ApacheSling @rombert Agenda ● Microservices and monoliths ● Microservices and microservices ● A middle ground? ● Apache Sling primer ● Demo Application ● Conclusion
  23. 23. #Devoxx #ApacheSling @rombert Microservices and microservices
  24. 24. #Devoxx #ApacheSling @rombert How to choose? ● What are you trying to solve with microservices? ● What level of technical diversity does your organisation have? ● Are you comfortable with partially embracing microservices?
  25. 25. #Devoxx #ApacheSling @rombert Agenda ● Microservices and monoliths ● Microservices and microservices ● A middle ground? ● Apache Sling primer ● Demo Application ● Conclusion
  26. 26. #Devoxx #ApacheSling @rombert A middle ground – using an API gateway Provides: ● Authentication ● Authorization ● KPIs ● Circuit breakers Must be: ● Lightweight ● Stateless ● Extensible
  27. 27. #Devoxx #ApacheSling @rombert Middle ground – transparent API gateway API Gateway Billing Microservice Consumer PUT /payments/ PUT /payments/ 201 Created Content-Type: application/json 201 Created Content-Type: application/json
  28. 28. #Devoxx #ApacheSling @rombert A middle ground – an advanced gateway Provides: ● Adapter for API changes ● Protocol/format unification ● Call batching for reduced network usage
  29. 29. #Devoxx #ApacheSling @rombert A middle ground – transforming API gateway API Gateway Catalog Microservice Consumer GET /special-offers GET /special-offers 200 OK Content-Type: application/json 200 OK Content-Type: application/json Search microservice GET /search/?q=special 200 OK Content-Type: application/xml
  30. 30. #Devoxx #ApacheSling @rombert Agenda ● Microservices and monoliths ● Microservices and microservices ● A middle ground? ● Apache Sling primer ● Demo Application ● Conclusion
  31. 31. #Devoxx #ApacheSling @rombert Apache Sling – Brief History 2007 Incubation 2009 TLP 2015 Version 8 200x Pre-Apache
  32. 32. #Devoxx #ApacheSling @rombert Apache Sling – Code Statistics
  33. 33. #Devoxx #ApacheSling @rombert Apache Sling – Contributor activity
  34. 34. #Devoxx #ApacheSling @rombert Apache Sling – Value proposition ● Content-oriented/RESTful ● Lightweight ● Extensible ● Easily deployable
  35. 35. #Devoxx #ApacheSling @rombert Sling – Repository view of the world [sling/redirect] [catalog/welcome] [catalog/category] [page/specials] / /catalog /catalog/watches /special-offers
  36. 36. #Devoxx #ApacheSling @rombert Sling – ResourceProviders / /customers /inventory /orders Customer µService Inventory µService Orders µService Logging KPIs CircuitBreakers Authentication Authorization
  37. 37. #Devoxx #ApacheSling @rombert Agenda ● Microservices and monoliths ● Microservices and microservices ● A middle ground? ● Apache Sling primer ● Demo application ● Conclusion
  38. 38. #Devoxx #ApacheSling @rombert Demo application - overview
  39. 39. #Devoxx #ApacheSling @rombert Demo application - authentication
  40. 40. #Devoxx #ApacheSling @rombert Demo application - JWT
  41. 41. #Devoxx #ApacheSling @rombert Demo application – Actual demo!!!!one
  42. 42. #Devoxx #ApacheSling @rombert Agenda ● Microservices and monoliths ● Microservices and microservices ● A middle ground? ● Apache Sling primer ● Demo Application ● Conclusion
  43. 43. #Devoxx #ApacheSling @rombert Conclusions – Apache Sling ● Eventing, Thread Pooling, Job Management, Caching ● Scripting: Groovy, Scala, JSP, Sightly, Java, Ruby, Thymeleaf ● Flexible resource rendering with resource types ● Very extensible due to being internally powered by OSGi – most extension points available to clients
  44. 44. #Devoxx #ApacheSling @rombert Conclusions – Microservices ● Microservices are a useful tool, but make sure you understand the tradeoffs ● Microservices are not an all-or-nothing proposition, pick what is best for your organisation ● An API gateway can bring a lot of value to a microservices deployment ● Try Apache Sling today
  45. 45. #Devoxx #ApacheSling @rombert Resources ● Apache Sling – https://sling.apache.org ● Apache Jackrabbit ● https://jackrabbit.apache.org ● http://jackrabbit.apache.org/oak/ ● JWT – https://jwt.io ● Netflix Hystrix - https://github.com/Netflix/Hystrix

×