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

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?

Eoin Woods

May 11, 2018
Tweet

More Decks by Eoin Woods

Other Decks in Programming

Transcript

  1. Software Architecture as
    Systems Dissolve

    SATURN 2018
    Eoin Woods - Endava

    @eoinwoodz

    View Slide

  2. Thank You
    Eltjo Poort
    for nominating me and for 

    your contributions to the field

    View Slide

  3. Thank You
    Nick Rozanski
    for long term collaboration
    on software architecture

    View Slide

  4. Thank You

    View Slide

  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

    View Slide

  6. Systems are Dissolving

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  10. Our Five Ages
    Intelligent

    Connected

    (2020s)
    Internet

    is the System

    (2010s)
    Internet

    Connected

    (2000s)
    Distributed

    Monoliths

    (1990s)
    Monolithic

    (1980s)

    View Slide

  11. Our History

    View Slide

  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

    View Slide

  13. Distributed Monoliths
    •Client + Server + Database

    •“Batch” to “Online”

    •Software Architecture basics

    •Architectural style from vendors

    View Slide

  14. Internet Connected
    •CS + Internet connection

    •“Online” to “Always On”

    •Software Architecture explosion

    •Vendors sell “NFR” boxes

    View Slide

  15. Current Era

    View Slide

  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)

    View Slide

  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!

    View Slide

  18. New Principles
    •Evolve continually

    •Respond dynamically

    •Analyse don’t ask
    •An API for everything

    •Secure by Design

    •Internationalise instinctively

    View Slide

  19. New Practices
    •Continuous Delivery

    •Allow modular evolution

    •“Cloud” first
    •Measurement a basic service

    •Structure around “public” APIs

    •Build to be securable

    View Slide

  20. On the Future

    View Slide

  21. Intelligent Connected

    View Slide

  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

    View Slide

  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?

    View Slide

  24. In Summary

    View Slide

  25. Our Five Ages
    Intelligent

    Connected

    (2020s)
    Internet

    is the System

    (2010s)
    Internet

    Connected

    (2000s)
    Distributed

    Monoliths

    (1990s)
    Monolithic

    (1980s)

    View Slide

  26. The future of software architecture
    has never been more exciting … 

    or perhaps less certain

    View Slide

  27. Thank you
    Eoin Woods

    Endava

    [email protected]
    @eoinwoodz

    View Slide