Asanka Abeysinghe
Cell-based Architecture
An Emerging Architecture Pattern for Agile Integration
Deputy CTO & VP, Architecture - CTO Office WSO2 Inc.
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
Asanka Abeysinghe
An Emerging Architecture Pattern for Agile Integration
Deputy CTO & VP, Architecture - CTO Office WSO2 Inc.
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
Evangelize
2018
Middleware Developer/Architect
Entrepreneur
picture credit: https://www.flickr.com/
picture credit: https://www.flickr.com/photos/kaktuslampa/
picture credit: https://www.flickr.com/photos/kaktuslampa/
picture credit: https://www.flickr.com/photos/69929929@N06/
picture credit: https://www.flickr.com/photos/johnerlandsen/
picture credit: https://www.apstra.com/home/landscape-of-meadow-field-with-the-changing-environment-2/
picture credit: https://www.marinersmuseum.org/
picture credit: http://unlocked.footlocker.com/
picture credit: https://www.flickr.com/photos/28994379@N02/
picture credit: https://www.solarpowerworldonline.com/2017/07/georgia-contractor-sells-farmers-solar-tough-market/
picture credit: https://www.solarpowerworldonline.com/2017/07/georgia-contractor-sells-farmers-solar-tough-market/
picture credit: https://www.flickr.com/photos/tiocfaidh_ar_la_1916/
picture credit: https://www.flickr.com/photos/23119666@N03/
picture credit: https://www.flickr.com/photos/imcountingufoz/
Netflix: APIs Uber: Edge Gateway eBay: API Facade Gartner: Mini Services
BS-1 BS-2 BS-n G-1 G-2 US-1 US-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 Platform (shared capabilities) Project 1 Project 2 Project 3 Project n
CI/CD User Store
picture credit: https://www.flickr.com/photos/ableman/
picture credit: https://commons.wikimedia.org/wiki/User:Frank_Schulenburg CC BY 3.0
picture credit: https://clutchpoints.com/phil-jackson-talks-about-the-kobe-bryant-michael-jordan-comparison/
picture credit: https://www.flickr.com/photos/arpadlukacs/
A code exposes through an interface that describes a collection of operations that are network accessible using a standardized messaging protocol.
Software components that can be spontaneously discovered, combined, and recombined to provide a solution to a business problem.
A microservice must have a single purpose and be loosely coupled in design and deployed independently of
"Micro" is a concept of scope rather than size.
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.
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.
A cell is a collection of components, grouped from design and implementation into deployment. A cell is independently deployable, manageable, and observable.
picture credit: https://www.medicalnewstoday.com/
Control Plane:
Data Plane:
picture credit: https://www.flickr.com/photos/teflon/
Management Plane:
DP- data plane CP- control plane MP- management plane
Local-mesh Global-mesh
DP- data plane CP- control plane MP- management plane
Cell gateway (ingress) Sidecar (egress) Adaptor (egress) Ambassador (egress)
picture credit: https://www.flickr.com/photos/hugh_nelson/
Pull APIs
Push APIs
picture credit: https://www.flickr.com/photos/ell-r-brown/
Policy Store (Registry) Observability (Monitoring/ Analytics) Policy Enforcement (GW)
Automated governance is made
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?
picture credit: https://www.flickr.com/photos/laurelfan/ https://www.flickr.com/photos/sahdblunders/
Brand new Cell Existing (micro)services Update an existing Cell Create a new version
picture credit: https://www.flickr.com/photos/rincon_de_lula/
Versioned Components Versioned Cells Dependency managed Autowired Reusable Enhanced MSA & CNA
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
picture credit: https://www.vertoanalytics.com/human-vs-data-centric-marketing/
picture credit: https://www.flickr.com/photos/woordenaar/
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
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.
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-contained Deployable as a unit Independently elastic Data, control & management plane
picture credit: https://www.omgubuntu.co.uk/2018/06/microsoft-buying-github
picture credit: https://www.flickr.com/photos/josephmorris/
picture credit: https://www.flickr.com/photos/vasile23/
https://cellery.io/
A cloud-native programming language for microservices and APIs
strongly typed programming language with textual and graphical syntaxes.
distributed system integration
to implement microservices with distributed transactions, reliable messaging, stream processing, and workflows
deployment on Kubernetes and Docker
https://ballerina.io/
picture credit: https://www.flickr.com/photos/infomatique/