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

Made with Slides.com