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. Thank You Eltjo Poort for nominating me and for 


    your contributions to the field
  2. 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
  3. Our Five Ages Intelligent
 Connected
 (2020s) Internet
 is the System


    (2010s) Internet
 Connected
 (2000s) Distributed
 Monoliths
 (1990s) Monolithic
 (1980s)
  4. Monolithic •Structuring of programs •Batch processing dominates •Fundamentals of modularisation

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

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

    •Software Architecture explosion •Vendors sell “NFR” boxes
  7. 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)
  8. 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!
  9. New Principles •Evolve continually •Respond dynamically •Analyse don’t ask •An

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

    a basic service •Structure around “public” APIs •Build to be securable
  11. 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
  12. 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?
  13. Our Five Ages Intelligent
 Connected
 (2020s) Internet
 is the System


    (2010s) Internet
 Connected
 (2000s) Distributed
 Monoliths
 (1990s) Monolithic
 (1980s)