cell-based architecture - o'reilly · 2019. 8. 7. · ebay: api facade gartner: mini services....
TRANSCRIPT
-
Asanka Abeysinghe
Cell-based Architecture 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 DeveloperJ2EE MMS
286-DX4
Eventing FIX HL7
Committer
CONNECT-health
Global architecture team 500+ customers Champions program
Chief Architect2005
QSP AR Trusted advocate
Game hacker C++ programmer
Age-16
Hedge fund tools
Ref. Architecture Ref. Methodology Evangelize
2018
Middleware Developer/Architect
Entrepreneur
-
Objectives
#1 why: created a new pattern
#2 introduce: Cell-based architecture
-
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 DBs 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
-
Background: Layered Architecture with MSA
-
Background: Segmented Architecture
BS-1 BS-2 BS-n
G-1 G-2
US-1 US-n
-
Platform of PlatformsPlatform (shared capabilities)
Proj
ect 1
Proj
ect 2
Proj
ect 3
Proj
ect n
Platform (shared capabilities)
Proj
ect 1
Proj
ect 2
Proj
ect 3
Proj
ect n
Platform (shared capabilities)
Proj
ect 1
Proj
ect 2
Proj
ect 3
Proj
ect n
Platform (shared capabilities)
Proj
ect 1
Proj
ect 2
Proj
ect 3
Proj
ect n
CI/CD User Store
-
picture credit: https://www.flickr.com/photos/ableman/
-
Making of……
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/
-
Paul Fremantle - CTO, Co-Founder - WSO2
-
Building the Concept
-
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.
-
Group of (Micro)services
-
The cell is the basic structural, functional, and
biological unit of all known living organisms
-
Cell-based Reference 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.
-
Cell:Component 1:M 1:1
-
Connected Cells
picture credit: https://www.medicalnewstoday.com/
-
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
-
Inter and Intra Cell communication
Local-meshGlobal-mesh
DP- data plane CP- control plane MP- management plane
-
Connected CellsCell gateway (ingress)
Sidecar (egress)
Adaptor (egress)
Ambassador (egress)
-
API-centric Architecture
picture credit: https://www.flickr.com/photos/hugh_nelson/
-
API-centric Architecture Pull APIs - RESTful HTTP, gRPC Push APIs - Events JMS, AMQP, SMTP - Streams Kafka, MQTT
-
Gateway Pattern
picture credit: https://www.flickr.com/photos/ell-r-brown/
-
Automated Governance (Re)-enables Flow
Policy Store (Registry)
Observability (Monitoring/
Analytics)
Policy Enforcement
(GW)
Automated governance is made of 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?
-
Security of Cells
picture credit: https://www.flickr.com/photos/laurelfan/ https://www.flickr.com/photos/sahdblunders/
-
Security of Cells
-
Developer Experience (DX) of a Cell
-
Creating CellsBrand new Cell
Existing (micro)services
Update an existing Cell
Create a new version
-
Lifecycle of a Cell
-
picture credit: https://www.flickr.com/photos/rincon_de_lula/
-
Structured Agility
Versioned Components
Versioned Cells
Dependency managed
Autowired
Reusable
Enhanced MSA & CNA
-
Cell-based Enterprise Architecture
-
Cell TypesCell 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
-
Reference Implementation L1
-
Human-centric Architecture
picture credit: https://www.vertoanalytics.com/human-vs-data-centric-marketing/
-
Cells and Podular Organizations
-
picture credit: https://www.flickr.com/photos/woordenaar/
Cell Boundaries
-
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.
-
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
https://www.tasktop.com/blog/5-best-metrics-youve-never-met/https://dzone.com/articles/reducing-mttr
-
Self-contained
Deployable as a unit
Independently elastic
Data, control & management plane
Summary: Cell-based Architecture
-
My Contribution: walk the talk
picture credit: https://www.omgubuntu.co.uk/2018/06/microsoft-buying-github
-
picture credit: https://www.flickr.com/photos/josephmorris/
Just a (steady) start
https://github.com/wso2/reference-architecture
-
picture credit: https://www.flickr.com/photos/vasile23/
https://github.com/wso2/reference-methodology
Reference Methodology
-
https://cellery.io/
Build, run, and manage code-first composites on Kubernetes
-
Cellery - simple composition and graphical view
-
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/
-
Ballerina - code and visual syntax in sync
-
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
-
Rate today ’s session
Session page on conference website O’Reilly Events App
-
@asankama
THANK YOU
https://www.linkedin.com/in/asankaabeysinghe/