Software Architecture as Systems Dissolve

Software Architecture as Systems Dissolve

oftware architecture has been a mainstream discipline since the 1990s and in that time has become a recognized, widely researched, and often valued part of the software engineering process. However, architecture approaches must reflect the technologies and priorities of the systems we are building, and in this regard its future has never looked more uncertain or more exciting. From our history of monolithic compile-time architecture, to many-tiered distributed systems, to Internet-connected services, we are now entering the era of cloud-hosted, microservice-based, pay-for-usage systems development. In this new world, the boundaries of “my” system are no longer so clear, and our systems are dissolving into complex webs of independently owned and evolved services, with nothing more in common than a shared credit card for billing and an agreement on the format of network requests. What can the history of software architecture tell us about the likely challenges in this environment? And how must it develop in order to meet them?

6facddda8e4536c0b0bfbdaf45e50675?s=128

Eoin Woods

May 11, 2018
Tweet

Transcript

  1. Software Architecture as Systems Dissolve 
 SATURN 2018 Eoin Woods

    - Endava
 @eoinwoodz
  2. Thank You Eltjo Poort for nominating me and for 


    your contributions to the field
  3. Thank You Nick Rozanski for long term collaboration on software

    architecture
  4. Thank You

  5. Who am I? •Eoin Woods • CTO at Endava •

    10 years in product development - Bull, Sybase, InterTrust • 10 years in capital markets applications - UBS and BGI •Software engineer, then architect, now CTO •Author, editor, speaker, community guy
  6. Systems are Dissolving

  7. https://commons.wikimedia.org/wiki/File:Sodium-chloride-3D-ionic.png

  8. https://commons.wikimedia.org/wiki/File:Glycine-condensation-2-3D-balls.png

  9. https://www.dreamstime.com/stock-illustration-oxytocin-molecule-isolated-white-model-hormone-produced-naturally-large-amounts-childbirth-causing-image51747855

  10. Our Five Ages Intelligent
 Connected
 (2020s) Internet
 is the System


    (2010s) Internet
 Connected
 (2000s) Distributed
 Monoliths
 (1990s) Monolithic
 (1980s)
  11. Our History

  12. Monolithic •Structuring of programs •Batch processing dominates •Fundamentals of modularisation

    •Architecture a vendor concern https://mtm2017.mybluemix.net/part_two/part_two_ch04.html
  13. Distributed Monoliths •Client + Server + Database •“Batch” to “Online”

    •Software Architecture basics •Architectural style from vendors
  14. Internet Connected •CS + Internet connection •“Online” to “Always On”

    •Software Architecture explosion •Vendors sell “NFR” boxes
  15. Current Era

  16. Internet as the System https://www.google.com/about/datacenters/gallery/ •Mobile UI + APIs •“Always

    On” to “Access Anywhere” •Software architecture becomes dynamic •Vendors sell “platforms” (PaaS)
  17. Architectural Drivers Constant Competition => Continuous Development & 
 100%

    Uptime Unknown Users => Measurement of Behaviour Unpredictable Demand => Dynamic Response to Load Part of the Internet => Consumable by Systems Visible from Anywhere => Constant Attack Threat Accessed Globally => Compliant Everywhere!
  18. New Principles •Evolve continually •Respond dynamically •Analyse don’t ask •An

    API for everything •Secure by Design •Internationalise instinctively
  19. New Practices •Continuous Delivery •Allow modular evolution •“Cloud” first •Measurement

    a basic service •Structure around “public” APIs •Build to be securable
  20. On the Future

  21. Intelligent Connected

  22. Intelligent Connected •Data & Algorithms => Qualities •“Access Anywhere” to


    “Intelligent Assistance” •Architecture Seen at Runtime •Vendors sell “intelligent behaviour” Our future as software architects … http://www.geomarketing.com/what-marketers-need-to-know-about-the-world-of-connected-intelligence
  23. Intelligent Connected Less More Structural Design Data and Algorithm Design

    Defined Structure Emergent Structure Decisions Principles, Policies, Algorithms Certainty Probability Operational Processes Operational Policy & Automation How will it affect software architecture?
  24. In Summary

  25. Our Five Ages Intelligent
 Connected
 (2020s) Internet
 is the System


    (2010s) Internet
 Connected
 (2000s) Distributed
 Monoliths
 (1990s) Monolithic
 (1980s)
  26. The future of software architecture has never been more exciting

    … 
 or perhaps less certain
  27. Thank you Eoin Woods
 Endava
 eoin.woods@endava.com @eoinwoodz