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.

How to slice your monolithic webapp using MicroApps architecture

1,255 views

Published on

Slicing a monolithic web service into MicroServices Architecture is a well known practice.
However, when it comes to a monolithic web application new challenges raises.
In Outbrain we have developed the MicroApps Architecture which aims to target these challenges using MicroServices concepts.

In this deck I will tell the story behind MicroApps Architecture: motivation, benefits, issues, and plans for the future.

Published in: Software

How to slice your monolithic webapp using MicroApps architecture

  1. 1. How to slice your monolithic webapp using value.quality.scale MicroApps architecture
  2. 2. @yonatanm value.quality.scale
  3. 3. Outbrain 0.5B> 200B Unique Visitors Recommendations per Month
  4. 4. once upon a time
  5. 5. * Multiple teams * Multiple products * More and more features * Multiple teams * Multiple products * More and more features After few years ...
  6. 6. * High Technology debt * High Complexity * High Technology debt * High Complexity How to handle – quality, ownership autonomy, velocity ??? But...
  7. 7. Want to buy a MicroService? * Hiding impl. details * Deploy independently * Isolation failures * Independence / Autonomy * Hiding impl. details * Deploy independently * Isolation failures * Independence / Autonomy
  8. 8. * Sessions * Security * Cross apps links * Allow-Origin CORS * User experience * Sessions * Security * Cross apps links * Allow-Origin CORS * User experience MicroServices to the rescue?
  9. 9. * Define your areas * Map the areas * Change routs if needed * Define your areas * Map the areas * Change routs if needed app1 / /** app2 / /** MicroApps to the rescue! LEGACY webapp
  10. 10. Authentication && Session Management app1/ /** Proxy app2/ /** Proxy app1 Auth APP2 Auth Login Logout Password Profile Auth app3/ /** Proxy MicroApp FACADE SERVICE MicroApps overview
  11. 11. Proxy and all that Jazz app1 Auth MicroApp App1 Proxy * Routing * Handles inbound request * Handles outbound responses * Routing * Handles inbound request * Handles outbound responses LegaCYWeb App app1 / /**
  12. 12. The Proxy Protocol App1 Proxy app1 Auth MicroApp * Session header * Specific cookie * User's IP * Session header * Specific cookie * User's IP * Body * Encoding * HTTP Status * Body * Encoding * HTTP Status FACADESERVICE
  13. 13. Know your Proxy * The Proxy Protocol * Connection pool * Performance metrics * Failures metrics * logs * The Proxy Protocol * Connection pool * Performance metrics * Failures metrics * logs
  14. 14. Infrastructure as a service * SSL * Access logs * Security * Monitoring * CDN integration * SSL * Access logs * Security * Monitoring * CDN integration Authentication && Session Management app1/ /** Proxy app2/ /** Proxy app3/ /** Proxy FACADE SERVICE
  15. 15. Technology * one session for all microApps * Better technology stack * Reducing tech debt * Gradual upgrade * Quality * one session for all microApps * Better technology stack * Reducing tech debt * Gradual upgrade * Quality
  16. 16. Culture * Autonomy and Freedom * Ownership * Separation of concern * Focus * Autonomy and Freedom * Ownership * Separation of concern * Focus I did it my Way Giving ppl as much as possible to do their jobGiving ppl as much as possible to do their job freedom
  17. 17. * Another moving part * Latency * hard to compete HAProxy * no more one CSS to rule them all * Another moving part * Latency * hard to compete HAProxy * no more one CSS to rule them all
  18. 18. * Initiated on Jan '15 (well, not really) * Started with one microApp * Gradual rollout * We have now 4 (and keep growing) Managed by different teams Each has a different technology stack * Highly monitored * Initiated on Jan '15 (well, not really) * Started with one microApp * Gradual rollout * We have now 4 (and keep growing) Managed by different teams Each has a different technology stack * Highly monitored InMicroApps
  19. 19. Future work * circuit breaker * Rewrite Facade Service * reusing web resources * open source it ? * circuit breaker * Rewrite Facade Service * reusing web resources * open source it ?
  20. 20. Thank You Q && A value.quality.scale Want to know more about Contact me Want to know more about Contact me Outbrain's Architecture?

×