Upgrade to Pro — share decks privately, control downloads, hide ads and more …

A Decentralized Reference Architecture for Clou...

A Decentralized Reference Architecture for Cloud-Native Applications

The number of microservices running in enterprises increases daily. As a result, service composition, governance, security, and observability are becoming a challenge to implement and incorporate. A “cell-based” architecture is an approach that can be applied to current or desired development and technologies to address these issues. This technology-neutral approach helps cloud-native dev teams become more efficient, act in a more self-organized manner, and speed overall release times.

Asanka Abeysinghe

May 13, 2021
Tweet

More Decks by Asanka Abeysinghe

Other Decks in Technology

Transcript

  1. Asanka Abeysinghe Cell-based Architectur e Decentralized Architecture Pattern for Cloud-native

    Applications Chief Technology Evangelist (former Deputy CTO) WSO2 Inc.
  2. 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
  3. Objectives #1 why: a new patter n #2 how: created

    the patter n #3 what: is Cell-based architecture
  4. 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
  5. Service: Technical definition A code exposes through an interface that

    describes a collection of operations that are network accessible using a standardized messaging protocol.
  6. Service: Business definition Software components that can be spontaneously discovered,

    combined, and recombined to provide a solution to a business problem.
  7. 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.
  8. 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.
  9. 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
  10. 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.
  11. 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.
  12. 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
  13. API-first Architecture Pull API s - RESTful HTTP, gRPC Push

    API s - Events JMS, AMQP, SMTP - Streams Kafka, MQTT
  14. 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?
  15. 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
  16. 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 .