Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
SlideShare a Scribd company logo
Asanka Abeysinghe
Cell-based Architectur
e

Decentralized Architecture Pattern for Cloud-native
Applications
Chief Technology Evangelist (former Deputy CTO)
WSO2 Inc.
2019
1997 2003
Architect
2012
VP Solutions
Architecture
2001 2008
Director
Solutions
Architecture
Deputy CTO
Open Source
Distributed Computing
Programmer
COBOL
OLE, OLE
2

COM, COM
+

DCO
M

CORBA
Java Developer
J2E
E

MMS
286-DX4
Eventin
g

FI
X

HL7
CONNECT-health
Global architecture tea
m

500+ customer
s

Champions program
Chief
Architect
2005
QS
P

A
R

Trusted advocate
Game hacker
 

C++ programmer
Age-16
Hedge fund tools
Ref. Architectur
e

Ref. Methodolog
y

Evangelize
2018
Middleware Developer/Architect
Entrepreneur
Chief
Technology
Evangelist
2020
Connecting humans & technolog
y

Architecting the transformation
Objectives
#1 why: a new patter
n

#2 how: created the patter
n

#3 what: is Cell-based architecture
https://github.com/wso2/reference-architecture/blob/master/reference-architecture-cell-based.md
picture credit: https://www.flickr.com/
Motivation
Centralized & Layered
picture credit: https://www.flickr.com/photos/kaktuslampa/
picture credit: https://www.flickr.com/photos/69929929@N06/
Powerpoint Architects
picture credit: https://www.flickr.com/photos/johnerlandsen/
Reality of the Enterprise
Brownfield > Greenfield
picture credit: https://www.apstra.com/home/landscape-of-meadow-field-with-the-changing-environment-2/
Legacy, monolithic Microservices, sprawl
Reference Implementations
picture credit: https://www.marinersmuseum.org/
picture credit: http://unlocked.footlocker.com/
Underutilization of the Technology
Gap: architecture | development | deployment
picture credit: https://www.flickr.com/photos/28994379@N02/
picture credit: https://www.solarpowerworldonline.com/2017/07/georgia-contractor-sells-farmers-solar-tough-market/
Dependency management
picture credit: https://www.flickr.com/photos/tiocfaidh_ar_la_1916/
Architecture Patterns
Timeline
Background: Layered Architecture
picture credit: https://www.flickr.com/photos/23119666@N03/
A platform with an agile team
 

100 APIs, 60 message flows, 80 services, n DB
s

Multi-tenanted, 3 active tenants
 

First release after 3 years
picture credit: https://www.flickr.com/photos/imcountingufoz/
Rise of Microservices
Pragmatic Microservices
Netflix: APIs
Uber: Edge Gateway
eBay: API Facade
Gartner: Mini Services
Business vs technical services
picture credit: https://www.flickr.com/photos/arpadlukacs/
Service: Technical definition
A code exposes through an
interface that describes a
collection of operations that are
network accessible using a
standardized messaging
protocol.
Service: Business definition
Software components that
can be spontaneously
discovered, combined, and
recombined to provide a
solution to a business
problem.
Microservice: Technical definition
A microservice must have a
single purpose and be loosely
coupled in design and deployed
independently of other
microservices.
"Micro" is a concept of scope
rather than size.
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.
Background: Layered Architecture with MSA
Background: Segmented Architecture
BS-1 BS-2 BS-n
G-1 G-2
US-1 US-n
Platform of Platforms
Platform (shared capabilities)
Project
Project
2
Project
3
Project
n
Platform (shared capabilities)
Project
Project
2
Project
3
Project
n
Platform (shared capabilities)
Project
Project
2
Project
3
Project
n
Platform (shared capabilities)
Project
Project
2
Project
3
Project
n
CI/CD
User
Store
picture credit: https://www.flickr.com/photos/ableman/
Building the
 

Concept
The cell is the basic structural,
functional, and
 

biological unit of all known
living organisms
Cell-based Architecture
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.
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.
Group of (Micro)services
Cell:Componen
t

1:
M

1:1
Connected Cells
picture credit: https://www.medicalnewstoday.com/
Control Plane:
 

- Signaling of the networ
k

- Makes decisions about the traffic flow
Data Plane:
 

- Forwards traffic between hop
s

- Takes data packets
picture credit: https://www.flickr.com/photos/teflon/
Management Plane:
 

- Configure
 

- Observeabiltty, Monitor
Inter and Intra Cell communication
Local-mesh
Global-mesh
DP- data plan
e

CP- control plan
e

MP- management plane
Connected Cells
Cell gateway (ingress
)

Sidecar (egress)
Adaptor (egress)
Ambassador (egress)
API-first Architecture
picture credit: https://www.flickr.com/photos/hugh_nelson/
API-first Architecture Pull API
s

- RESTful HTTP, gRPC
Push API
s

- Events JMS, AMQP, SMTP
- Streams Kafka, MQTT
Automated Governance (Re)-enables Flow
Policy Stor
e

(Registry)
Observabilit
y

(Monitoring/

Analytics)
Policy 

Enforcemen
t

(GW
)

Automated governance is made
of three things
:

A source of truth
:

Policy store/registr
y

Enforcement of the polic
y

Gateway or plugin attempting to keep the
desired stat
e

Observability
 

How close to the desired state are we?
Security of Cells
Developer Experience (DX)
of a Cell
Creating Cells
Brand new Cell
Existing (micro)service
s

Update an existing Cel
l

Create a new version
A Decentralized Reference Architecture for Cloud-native Applications  V2.0
Lifecycle of a Cell
A Decentralized Reference Architecture for Cloud-native Applications  V2.0
Structured Agility
Versioned Components
Versioned Cell
s

Dependency manage
d

Autowired
 

Reusable
 

Enhanced MSA & CNA
Cell-based Enterprise
Architecture
A Decentralized Reference Architecture for Cloud-native Applications  V2.0
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
Reference Implementation L0
A Decentralized Reference Architecture for Cloud-native Applications  V2.0
Reference Implementation L1
A Decentralized Reference Architecture for Cloud-native Applications  V2.0
Human-centric Architecture
picture credit: https://www.vertoanalytics.com/human-vs-data-centric-marketing/
Cells and Cellular Organizations
https://www.forbes.com/sites/forbestechcouncil/2020/06/29/the-cellular-enterprise/
Measure the success
picture credit: https://www.marketingdonut.co.uk/direct-marketing/running-a-direct-mail-campaign/getting-the-measure-of-your-marketing
https://www.tasktop.com/blog/5-best-metrics-youve-never-met/
https://dzone.com/articles/reducing-mttr
Mean Time to Repair
Self-containe
d

Units of enterprise architectur
e

Independently elasti
c

Local data & control plane
Summary: Cell
Decentralized, MSA, Cloud-nativ
e

Technology neutral
 

Human-centri
c

APIs as products
Summary: Cell-based Architecture
Contribution: walk the talk
picture credit: https://www.omgubuntu.co.uk/2018/06/microsoft-buying-github
picture credit: https://www.flickr.com/photos/infomatique/
Invitation to consume and contribute
https://github.com/wso2/reference-architecture
https://github.com/wso2/reference-methodology
https://ballerina.io
http://wso2.com
http://cellery.io
Abc
Let’s connect

More Related Content

A Decentralized Reference Architecture for Cloud-native Applications V2.0