invasion of lightweight architectures - amazon s3 · bio matt lancaster •>10 years building...
TRANSCRIPT
Copyright © Accenture, LLP. All rights reserved. Strategy | Digital | Technology | Operations
Invasion of Lightweight
Architectures
Copyright © Accenture, LLP. All rights reserved.
Bio
Matt Lancaster
• >10 years building software for fun and profit (ongoing)
• Twice CTO, once professor, occasional angel investor, now Benevolent Dictat… Lightweight Architecture lead at Accenture
• Also have degrees in Philosophy and Ancient History
– If you want raunchy Roman poetry or a long conversation about Alexander’s successors, I’m also your guy!
Copyright © Accenture, LLP. All rights reserved.
“New IT” is the New Normal
• Software is eating the world:
– Primary channels of customer
engagement are digital
– Software is being embedded in everything
– Digital experiences now permeate
everything from cars to toasters
• Adaptation means three fundamental
challenges:
– Delivery speed; “Lean Startup” approach
– Become a Digital Native
– Deliver at or below current budgets
Copyright © Accenture, LLP. All rights reserved.
Examples
vs
vs
Copyright © Accenture, LLP. All rights reserved.
How to Adapt?
New Delivery Methods
DevOpsLightweight Architecture They’re linked!
To succeed,
we must tackle
all three!
Copyright © Accenture, LLP. All rights reserved.
What are Lightweight Architectures, anyway?
Traditional Architectures Lightweight Architectures
Device Specific Development
Monolithic
Single Technology
Closed / Vendor driven
Responsive Web Design
Modular
Best tool for the Job
Open Source & Ecosystem Embraced
Features Released in Months Features Released in Days
Tool Based Integration Standards & API based integration
Copyright © Accenture, LLP. All rights reserved.
Traditional Architecture: Hospitality Example
Reservations Loyalty CRM Content
Web Mobile
Monolithic Backend Systems
Channels
ESB
Copyright © Accenture, LLP. All rights reserved.
Lightweight Architecture: Hospitality Example
Web Mobile Third PartyAny Channels
Reservations Loyalty CRM Content Physical Property
Above Property APIs On-Property APIs
Microservices
Things
Channels
Copyright © Accenture, LLP. All rights reserved.
1=0, 2=0, 3=3
• The benefits of New IT are often sought by making token delivery changes
/ partial DevOps implementation
• Even with continuous delivery capability and Lean Agile delivery, legacy
architecture can make us fail!
• Without architecture changes, DevOps or modern, lean delivery methods
will fail to produce significant results.
vs…is not a fair fight, and no
amount of training or
process change can fix this!
Copyright © Accenture, LLP. All rights reserved.
Why Do We Need Lightweight Architectures?
Problem
Test/Integration Complexity
Solved by
Modularity / Contracts
Slow Feature Release Separate Modular Deployables
Scalability Exponentially Expensive Elastic Architectures
Unreliable / Costly Failure Protection Build for Breaking
Tech Limits UX Tech Empowers UX
ALL of these issues have significant delivery impacts and business strategy impact!
Copyright © Accenture, LLP. All rights reserved.
Business Problems and Solutions:
Deeper Dive
Copyright © Accenture, LLP. All rights reserved.
Test / Integration Complexity
Cause: monolithic systems, deep interdependence
Solution Patterns: microservices, modular UI
Solution Details (left and right)
Representative technologies
Microservice
Data
App Logic
API Interfaces Supporting Services
Microservice
API Gateway
Elastic Infrastructure
Microservice
Microservice Architecture
gokit
Copyright © Accenture, LLP. All rights reserved.
Slow Feature Releases
Cause: monolithic ‘all or nothing’ model
Solution Patterns: separate deployables, modular UI
Solution Details (left)
Representative technologies
Container
Microkernel
App Platform
Additional Services
Host
Application
Copyright © Accenture, LLP. All rights reserved.
Exponentially expensive scalability
Cause: ‘threaded’ application and architecture model
Solution Patterns: distributed app patterns (Reactor, Actor Model, etc)
Solution Details (left and right)
Representative technologies
Event Dispatcher
Synchronous
Event
Demultiplexer
Initiators and
Receivers
Event HandlersEvent HandlersEvent Handlers
responses
events
Stores and
retrieves events
Reactor Pattern Actor System
Dispatcher
Thread Management
Execution Context
Actor
Behavior &
State
Mailbox
Msg
Queue
Durability
Supervisor
Strategy
Exception
Handling
Actor Ref
Actor
Supervisor
Guardian
Actor /
User
Actor
ClientImmutable
Message
Serializable
Spring Reactor
Copyright © Accenture, LLP. All rights reserved.
Unreliable / Costly Failure Protection
Cause: ‘protect from failure’ mindset
Solution Patterns: distributed horizontal scalability, Circuit Breaker
Solution Details (left and right)
Representative technologies
Contemporary middleware Lightweight
Browser
Web Web
HW LB HW LB
App App
DB
Web Web
App App
DB
Disk Disk
Browser
SW LB
Service Service
Store
Disk
SW LB
Store
Disk
Horizontally Scalable
Distributed Architecture
Closed
Half-
openOpen
Failure count
threshold
reached
Success count
threshold
reached
Operation failed
Timeout times expired
Circuit Breaker Pattern
Copyright © Accenture, LLP. All rights reserved.
Technology Limits User Experience
Cause: Legacy UI technologies, Fragmented UI
Solution Patterns: Client/API, Modular UI
Solution Details (left and right)
Representative technologies
Booking LoyaltyOn-Prem
UIs
Modular UI
Separate SPAs
Common Framework
APIs
MicroserviceMicroservice
Content
View
Controller Model
Passes
calls to
Fires
events
on
manipulates
DOM
Router
PushState
Fires
eventsUpdates
User
Interaction
Client Pattern Example: MVC
Copyright © Accenture, LLP. All rights reserved.
…and More!
Many more business problems are solved and constraints
are lifted by putting our system architectures on a diet!
If we want to survive in the now universally ‘digital native’
landscape, it’s not a question of ‘if’, but ‘when’!
Copyright © Accenture, LLP. All rights reserved.
Implications and Commentary
Copyright © Accenture, LLP. All rights reserved.
What Does This Mean for Us?
• Switch from ’Infantry Divisions’ to ’Special Forces Teams’
– Lightweight Architecture, combined with new delivery methods and DevOps will
drastically reduce the manpower needed to deliver an application, but each
individual will need to be more skilled.
• Software Architecture becomes critical to business strategy!
Copyright © Accenture, LLP. All rights reserved.
And Now for Some Fun, Provocative
Statements :)
Copyright © Accenture, LLP. All rights reserved.
ESBs Must Die
• The ESB has no place in modern system
architectures
– (outside of continuing to support legacy systems)
• APIs & Microservices built on top of an ESB mean
that you’re attaching a cruise ship anchor to a
steamboat
• Modern system architectures are analogous to the
architecture of the Internet itself: distributed by
design
– an integration bus is only a SPOF!
Copyright © Accenture, LLP. All rights reserved.
No More Sporks!
• The era of single-language systems is quickly
coming to a close
• Java and (traditional) .NET are being replaced (in
some cases wholesale)
– Down with (many applications of) Java, long live the
JVM!
• Most modern systems are polyglot, and
components are fit for purpose
– …and select the best language/tool for the job
• If you say you’re a ‘J(2)EE Architect’ or a ’Java
Architect’, it’s code for ‘Don’t Hire Me’
Copyright © Accenture, LLP. All rights reserved.
Don’t Assemble a Bunch of Packages
• If your resulting system architecture looks like a
bunch of proprietary software icons connected with
lines, you’re doing it wrong
• Most packaged software vendors haven’t caught
up yet, they’re still mostly monoliths
• Friends don’t let friends create houses of cards
stuck together with old chewing gum ;)
Copyright © Accenture, LLP. All rights reserved.
Don’t Use Queues, JMS or Otherwise
• They’re just bottlenecks, and have no place in
remotely distributed systems
• Use patterns like Reactor / Proactor / Actors
instead