Cell-based Architecture An Emerging Architecture Pattern for Agile - - PowerPoint PPT Presentation

cell based architecture
SMART_READER_LITE
LIVE PREVIEW

Cell-based Architecture An Emerging Architecture Pattern for Agile - - PowerPoint PPT Presentation

Cell-based Architecture An Emerging Architecture Pattern for Agile Integration Asanka Abeysinghe Deputy CTO & VP, Architecture - CTO Office WSO2 Inc. OLE, OLE2 Open Source COM, COM+ DCOM Co Co CORBA Programmer VP Solutions


slide-1
SLIDE 1

Asanka Abeysinghe

Cell-based Architecture

An Emerging Architecture Pattern for Agile Integration

Deputy CTO & VP, Architecture - CTO Office WSO2 Inc.

slide-2
SLIDE 2

2019 1997 2003

Architect

2012

VP Solutions Architecture

2001 2008

Director Solutions Architecture Deputy CTO Open Source Distributed Computing Programmer COBOL

OLE, OLE2 COM, COM+ DCOM CORBA

Java Developer

J2EE MMS 286-DX4 Eventing FIX HL7

Co Co

CONNECT-health Global architecture team 500+ customers Champions program

Chief Architect

2005

QSP AR Trusted advocate

Game hacker C++ programmer

Age-16

Hedge fund tools

  • Ref. Architecture
  • Ref. Methodology

Evangelize

2018

Middleware Developer/Architect

Entrepreneur

slide-3
SLIDE 3

Objectives #1 why: created a new pattern #2 introduce: Cell-based architecture

slide-4
SLIDE 4

picture credit: https://www.flickr.com/

slide-5
SLIDE 5

Motivation

slide-6
SLIDE 6

Centralized & Layered

picture credit: https://www.flickr.com/photos/kaktuslampa/

slide-7
SLIDE 7

Centralized & Layered

picture credit: https://www.flickr.com/photos/kaktuslampa/

slide-8
SLIDE 8

picture credit: https://www.flickr.com/photos/69929929@N06/

Powerpoint Architects

slide-9
SLIDE 9

picture credit: https://www.flickr.com/photos/johnerlandsen/

Reality of the Enterprise

slide-10
SLIDE 10

Brownfield > Greenfield

picture credit: https://www.apstra.com/home/landscape-of-meadow-field-with-the-changing-environment-2/

Legacy, monolithic Microservices, sprawl

slide-11
SLIDE 11

Reference Implementations

picture credit: https://www.marinersmuseum.org/

slide-12
SLIDE 12

picture credit: http://unlocked.footlocker.com/

Underutilization of the Technology

slide-13
SLIDE 13

Gap: architecture | development | deployment

picture credit: https://www.flickr.com/photos/28994379@N02/

slide-14
SLIDE 14

picture credit: https://www.solarpowerworldonline.com/2017/07/georgia-contractor-sells-farmers-solar-tough-market/

Dependency management

slide-15
SLIDE 15

picture credit: https://www.solarpowerworldonline.com/2017/07/georgia-contractor-sells-farmers-solar-tough-market/

Dependency management

slide-16
SLIDE 16

picture credit: https://www.flickr.com/photos/tiocfaidh_ar_la_1916/

Architecture Patterns

slide-17
SLIDE 17

Timeline

slide-18
SLIDE 18

Background: Layered Architecture

slide-19
SLIDE 19

picture credit: https://www.flickr.com/photos/23119666@N03/

A platform with an agile team

100 APIs, 60 message flows, 80 services, n DBs Multi-tenanted, 3 active tenants First release after 3 years

slide-20
SLIDE 20

picture credit: https://www.flickr.com/photos/imcountingufoz/

Rise of Microservices

slide-21
SLIDE 21

Pragmatic Microservices

Netflix: APIs Uber: Edge Gateway eBay: API Facade Gartner: Mini Services

slide-22
SLIDE 22

Background: Layered Architecture with MSA

slide-23
SLIDE 23

Background: Segmented Architecture

BS-1 BS-2 BS-n G-1 G-2 US-1 US-n

slide-24
SLIDE 24

Platform of Platforms

Platform (shared capabilities) Project 1 Project 2 Project 3 Project n Platform (shared capabilities) Project 1 Project 2 Project 3 Project n Platform (shared capabilities) Project 1 Project 2 Project 3 Project n Platform (shared capabilities) Project 1 Project 2 Project 3 Project n

CI/CD User Store

slide-25
SLIDE 25

picture credit: https://www.flickr.com/photos/ableman/

slide-26
SLIDE 26

Making of……

picture credit: https://commons.wikimedia.org/wiki/User:Frank_Schulenburg CC BY 3.0

slide-27
SLIDE 27

picture credit: https://clutchpoints.com/phil-jackson-talks-about-the-kobe-bryant-michael-jordan-comparison/

slide-28
SLIDE 28

Paul Fremantle - CTO, Co-Founder - WSO2

slide-29
SLIDE 29
slide-30
SLIDE 30

Building the Concept

slide-31
SLIDE 31

Business vs technical services

picture credit: https://www.flickr.com/photos/arpadlukacs/

slide-32
SLIDE 32

Service: Technical definition

A code exposes through an interface that describes a collection of operations that are network accessible using a standardized messaging protocol.

slide-33
SLIDE 33

Service: Business definition

Software components that can be spontaneously discovered, combined, and recombined to provide a solution to a business problem.

slide-34
SLIDE 34

Microservice: Technical definition

A microservice must have a single purpose and be loosely coupled in design and deployed independently of

  • ther microservices.

"Micro" is a concept of scope rather than size.

slide-35
SLIDE 35

Microservice: Business definition

Microservices is an approach to application development in which a large application is built as a suite of modular components or services. These services are built around business capabilities.

slide-36
SLIDE 36

Group of (Micro)services

slide-37
SLIDE 37

The cell is the basic structural, functional, and biological unit of all known living organisms

slide-38
SLIDE 38

Cell-based Reference Architecture

slide-39
SLIDE 39

Component: Atomic Units

A component represents a process or business logic running in a container, serverless environment, or an existing runtime. A component is designed based on a specific scope, which can be independently run and reused at the runtime.

slide-40
SLIDE 40

Cell: Units of Enterprise Architecture

A cell is a collection of components, grouped from design and implementation into deployment. A cell is independently deployable, manageable, and observable.

slide-41
SLIDE 41

Cell:Component 1:M 1:1

slide-42
SLIDE 42

Connected Cells

picture credit: https://www.medicalnewstoday.com/

slide-43
SLIDE 43

Control Plane:

  • Signaling of the network
  • Makes decisions about the traffic flow

Data Plane:

  • Forwards traffic between hops
  • Takes data packets

picture credit: https://www.flickr.com/photos/teflon/

Management Plane:

  • Configure
  • Observeabiltty, Monitor
slide-44
SLIDE 44

Inter and Intra Cell communication

DP- data plane CP- control plane MP- management plane

slide-45
SLIDE 45

Inter and Intra Cell communication

Local-mesh Global-mesh

DP- data plane CP- control plane MP- management plane

slide-46
SLIDE 46

Connected Cells

Cell gateway (ingress) Sidecar (egress) Adaptor (egress) Ambassador (egress)

slide-47
SLIDE 47

API-centric Architecture

picture credit: https://www.flickr.com/photos/hugh_nelson/

slide-48
SLIDE 48

API-centric Architecture

slide-49
SLIDE 49

API-centric Architecture

Pull APIs

  • RESTful HTTP, gRPC

Push APIs

  • Events JMS, AMQP, SMTP
  • Streams Kafka, MQTT
slide-50
SLIDE 50

Gateway Pattern

picture credit: https://www.flickr.com/photos/ell-r-brown/

slide-51
SLIDE 51

Automated Governance (Re)-enables Flow

Policy Store (Registry) Observability (Monitoring/
 Analytics) Policy 
 Enforcement (GW)

Automated governance is made

  • f three things:

A source of truth:

Policy store/registry

Enforcement of the policy

Gateway or plugin attempting to keep the desired state

Observability

How close to the desired state are we?

slide-52
SLIDE 52

Security of Cells

picture credit: https://www.flickr.com/photos/laurelfan/ https://www.flickr.com/photos/sahdblunders/

slide-53
SLIDE 53

Security of Cells

slide-54
SLIDE 54

Developer Experience (DX)

  • f a Cell
slide-55
SLIDE 55

Creating Cells

Brand new Cell Existing (micro)services Update an existing Cell Create a new version

slide-56
SLIDE 56
slide-57
SLIDE 57

Lifecycle of a Cell

slide-58
SLIDE 58
slide-59
SLIDE 59

picture credit: https://www.flickr.com/photos/rincon_de_lula/

slide-60
SLIDE 60

Structured Agility

Versioned Components Versioned Cells Dependency managed Autowired Reusable Enhanced MSA & CNA

slide-61
SLIDE 61

Cell-based Enterprise Architecture

slide-62
SLIDE 62
slide-63
SLIDE 63

Cell Types

Cell Type Components

Logic Microservices, Functions, MicroGateways, lightweight storages Integration MicroESB or other integration microservices, lightweight storage and/or cache Legacy Existing systems, legacy services External SaaS and partner systems Data RDBMS, NoSQL, File, Message Broker* Identity IDP, user stores Channel Web Apps, IoT, mobile apps

slide-64
SLIDE 64

Reference Implementation L0

slide-65
SLIDE 65
slide-66
SLIDE 66

Reference Implementation L1

slide-67
SLIDE 67
slide-68
SLIDE 68

Human-centric Architecture

picture credit: https://www.vertoanalytics.com/human-vs-data-centric-marketing/

slide-69
SLIDE 69

Cells and Podular Organizations

slide-70
SLIDE 70

picture credit: https://www.flickr.com/photos/woordenaar/

Cell Boundaries

slide-71
SLIDE 71

Defining Cell boundaries

The design of systems has always required an approach to the clustering of functionality, and it remains an open Computer Science problem - so don't expect a definitive answer! The number of component-component connections within a cell should be higher than the number that crosses the cell boundary. Other approaches such as Domain-driven Design (DDD) may help, but fundamentally the cell model is there to provide team boundaries.

Hence the size of a cell should be based on the size, responsibility, and output of a team

  • and the size and output of a team based on team concepts.

Cell-based architecture aims to create business focussed architectural constructs that can reuse at a higher level, so naturally organizing the teams and cells around business functions is essential.

slide-72
SLIDE 72

Measure the success

picture credit: https://www.marketingdonut.co.uk/direct-marketing/running-a-direct-mail-campaign/getting-the-measure-of-your-marketing

slide-73
SLIDE 73

https://www.tasktop.com/blog/5-best-metrics-youve-never-met/ https://dzone.com/articles/reducing-mttr

Mean Time to Repair

slide-74
SLIDE 74

Self-contained Deployable as a unit Independently elastic Data, control & management plane

Summary: Cell-based Architecture

slide-75
SLIDE 75

My Contribution: walk the talk

picture credit: https://www.omgubuntu.co.uk/2018/06/microsoft-buying-github

slide-76
SLIDE 76

picture credit: https://www.flickr.com/photos/josephmorris/

Just a (steady) start

https://github.com/wso2/reference-architecture

slide-77
SLIDE 77

picture credit: https://www.flickr.com/photos/vasile23/

https://github.com/wso2/reference-methodology

Reference Methodology

slide-78
SLIDE 78

https://cellery.io/

Build, run, and manage code-first composites

  • n

Kubernetes

slide-79
SLIDE 79

Cellery - simple composition and graphical view

slide-80
SLIDE 80

A cloud-native programming language for microservices and APIs

  • A compiled, transactional, statically and

strongly typed programming language with textual and graphical syntaxes.

  • Incorporates fundamental concepts of

distributed system integration

  • Offers a type safe, concurrent environment

to implement microservices with distributed transactions, reliable messaging, stream processing, and workflows

  • Compiles into container images for

deployment on Kubernetes and Docker

https://ballerina.io/

slide-81
SLIDE 81

Ballerina - code and visual syntax in sync

slide-82
SLIDE 82

picture credit: https://www.flickr.com/photos/infomatique/

Invitation to consume and contribute

https://ballerina.io https://cellery.io https://github.com/wso2/reference-architecture https://github.com/wso2/reference-methodology

slide-83
SLIDE 83

@asankama

THANK YOU

https://www.linkedin.com/in/asankaabeysinghe/