Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Self-contained Systems: A Different Approach to Microservices

Self-contained Systems: A Different Approach to Microservices

This presentation discusses approaches to Microservices - including self-contained systems and their benefits and trade-offs.

Eberhard Wolff

April 21, 2016
Tweet

More Decks by Eberhard Wolff

Other Decks in Technology

Transcript

  1. Server Server Microservices: Definition > Independent deployment units > Any

    technology > Any infrastructure > UI + Logic Micro Service Micro Service
  2. Why Microservices? Strong Modularization Scaling Agile Sustainable development Replaceable Services

    Continuous Delivery Free choice of technology Handle Legacy efficient Independent Scaling Robustness Small teams develop and deploy independently Add services – not code Small Services Failure limited to single Microservice
  3. Why Microservices? Scaling Agile Sustainable development Continuous Delivery Free choice

    of technology Handle Legacy efficient Independent Scaling Robustness Organization Deployment Units Technology
  4. Single Developer Scaling Agile Sustainable development Continuous Delivery Free choice

    of technology Handle Legacy efficient Independent Scaling Robustness Organization Deployment Units Technology
  5. Replace Monolith Scaling Agile Sustainable development Continuous Delivery Free choice

    of technology Handle Legacy efficient Independent Scaling Robustness Organization Deployment Units Technology
  6. Layered > Reusable Backend Services > Mobile client / Web

    App as frontend > Backend for frontend (BFF): Custom backend services > ...to implement frontend specific logic > E.g. Netflix
  7. Layered: Benefits > Good way to build an API >

    E.g. for mobile > Might be easier to migrate into > …if existing architecture is similar
  8. Layered: Issues > BFF might contain the same logic –

    same processes > BFF might contain most relevant logic > Change to a business process means changing many services > Lots of communication
  9. ESI (Edge Side Includes) ... <div> ... a lot of

    static content and images ... </div> ... ... <header> ... Logged in as: Ada Lovelace ... </header> <div> some dynamic content </div>
  10. ESI (Edge Side Includes) ... <div> ... a lot of

    static content and images ... </div> ... ... <esi:include src="http://example.com/header" /> <esi:include src="http://example.com/dynamic" /> http://www.w3.org/TR/esi-lang
  11. Client-side Integration: Code $("a.embeddable").each(function(i, link) { $("<div />").load(link.href, function(data, status,

    xhr) { $(link).replaceWith(this.children); }); }); > Replace <a href= " " class= "embeddable"> with content of document in a <div> (jQuery)
  12. No risky big bang to migrate an outdated, monolithic system

    into a system of systems. Version 1 Version 2
  13. Migration in small, manageable steps which minimize risk of failure

    and lead to an evolutionary modernization of big and complex systems.
  14. Conclusion > SCS: autonomouos web application > Might consist of

    Microservices > Focus on UI Integration > Almost completely independent > Coarse-grained architecture approach
  15. Conclusion > Self-contained systems are Microservices … > that are

    not “micro”… > and don’t have to be “services” > Many are doing it already!