cell-based architecture - o'reilly · 2019. 8. 7. · ebay: api facade gartner: mini services....

81
Asanka Abeysinghe Cell-based Architecture An Emerging Architecture Pattern for Agile Integration Deputy CTO & VP, Architecture - CTO Office WSO2 Inc.

Upload: others

Post on 31-Jan-2021

3 views

Category:

Documents


0 download

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/