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
- 620