Serverless Land
bene@theodo.co.uk
Ben Ellerby
@EllerbyBen
MVMs and EventBridge Storming
Ben Ellerby
@EllerbyBen
serverless-transformation
Serverless Microservices
@EllerbyBen
@EllerbyBen
Event-Driven Serverless
@EllerbyBen
Cloud Migration
&
Modernization
👷♀️
Cloud Migration
The process of moving digital business assets and operations to a cloud provider / to another cloud provider
@EllerbyBen
Application Migration
The process of moving an application to a different environment
@EllerbyBen
Migration Cloud
- Rehost - "lift-and-shift"
- Refactor - Reuse existing code, but ontop of more abstracted infrastructure
- Rebuild - Re-architecting/writing the application.
- Replace - discard and "buy-not-build" via a SaaS application
@EllerbyBen
Domain Shift
@EllerbyBen
A
B
APP
APP
Traditional Migration Structure
@EllerbyBen
On-Prem
APP
APP
Cloud
Language / Framework Migration
@EllerbyBen
.NET
APP
APP
Python
Structural Migration (Microservices)
@EllerbyBen
Monolith
APP
Cloud Modernization
@EllerbyBen
Cloud
APP
Cloud Native
Serverless
What is Agile
In software development, agile practices approach discovering requirements and developing solutions through the collaborative effort of self-organizing and cross-functional teams and their customer(s)/end user(s).
@EllerbyBen
Does this look like the migration project's you've seen?
- discovering requirements collaborative effort
- cross-functional teams
- customer(s)/end user(s)
@EllerbyBen
What is an MVP?
A minimum viable product (MVP) is a version of a product with just enough features to be usable by early customers who can then provide feedback for future product development.
Learning
@EllerbyBen
BUILD
MEASURE
LEARN
Purpose of MVP
@EllerbyBen
- Test hypotheses early
- Learn faster
- Reduce waste
- Ship to customers quicker
- Validate assumptions
- (and other more brand related advantages)
@EllerbyBen
Minimum Viable Migrations
Waterfall: As-Is To-Be
@EllerbyBen
As-Is
To-Be
APP
APP
Waterfall: As-Is To-Be
@EllerbyBen
As-Is
To-Be
APP
APP
Requirements
Design
Implementation
Verification
Deadlock of "Feature Parity"
@EllerbyBen
As-Is
To-Be
APP
APP
SSO | 1 | 0 |
CRM Integration | 1 | 0 |
Email Sending | 1 | 0 |
Core Feature X | 1 | 1 |
Legacy Feature Y | 1 | 0 |
... | 1 | 0 |
Deadlock of Parity
@EllerbyBen
As-Is
To-Be
APP
APP
SSO | 1 | 1 |
CRM Integration | 1 | 1 |
Email Sending | 1 | 1 |
Core Feature X | 1 | 1 |
Legacy Feature Y | 1 | 1 |
... | 1 | 1 |
How to achieve odd parity
@EllerbyBen
As-Is
To-Be
APP
APP
SSO | 1 | 1 |
CRM Integration | 1 | 1 |
Email Sending | 1 | 1 |
Core Feature X | 1 | 1 |
Legacy Feature Y | 1 | 0 |
... | 1 | 1 |
Least significant "bit"/feature
How to achieve odd parity
@EllerbyBen
How do we release a version of the system without a low priority feature
- Run an opt-in beta program?
- Remove high cost - low reward features?
- Move users who don't need the feature
How to achieve odd parity
@EllerbyBen
How do we release a version of the system without a required high priority feature?
- We need a strategy to run 2+ systems in parallel with a clean interface/contract that does not negatively impact the design of the new system with the constraints of the old.
- An exit strategy from the old system to eliminate the complexity and risk of running parallel systems
Minimum Viable Migrations (MVM)
@EllerbyBen
A Minimum Viable Migration (MVM) is a usable migrated version of an application from one domain/paradigm to another with a subset features to be used by some or all customers
Minimum Viable Migrations (MVM)
@EllerbyBen
Why?
- Learn faster
- Test assumptions earlier
- Focus the team and create a culture of continuous deployment
- Deliver value to customers faster
Features: As-Is To-Be
@EllerbyBen
As-Is
To-Be
APP
APP
MVMs: Progressive Migrations
@EllerbyBen
As-Is
To-Be
MVM
MVM
MVM
MVM
MVMs: Progressive Migrations
@EllerbyBen
To-Be
MVMs: Progressive Migrations
@EllerbyBen
As-Is
To-Be
Spoiler Alert:
There is no final "to-be" for any system
@EllerbyBen
MVM
MVM
MVM
MVM
MVM
You keep iterating on your MVM
Model the new system in terms of Events
@EllerbyBen
- Event-Driven architectures are becoming the default for modern Cloud-Native Applications.
- We need to design the architecture of the system "to-be" in terms of events.
The Event
@EllerbyBen
- Event: “A significant change in state” — K. Mani Chandy
@EllerbyBen
EventBridge Storming
EventBridge Storming: "A specific variant of EventStorming that reduces rework and tight-coupling for teams building state-of-the-art Serverless Event-Driven Architectures with EventBridge."
@EllerbyBen
EventBridge Storming
@EllerbyBen
Result
@EllerbyBen
EventBridge Storming
@EllerbyBen
serverless-transformation
www.aleios.com
Serverless Land Talk: MVM and EventBridge
By Ben Ellerby
Serverless Land Talk: MVM and EventBridge
AWS Live Stream
- 553