Slide 1

Slide 1 text

INTEGRATION SUMMIT 2019 The Reconstitution of Middleware with APIs Story of a Middleware Developer Asanka Abeysinghe Deputy CTO & VP, Architecture - CTO Office WSO2, Inc

Slide 2

Slide 2 text

February 1997

Slide 3

Slide 3 text

First day at work picture credit: https://www.richard-banks.org

Slide 4

Slide 4 text

First weeke at work ISAM DCom INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT file-name ASSIGN TO dd-name ORGANIZATION IS INDEXED ACCESS MODE IS SEQUENTIAL RECORD KEY IS rec-key1 ALTERNATE RECORD KEY IS rec-key2

Slide 5

Slide 5 text

March 1997

Slide 6

Slide 6 text

picture credit: http://www.levisstadium.com/getting-here/

Slide 7

Slide 7 text

picture credit: https://www.ronniestewartracing.com/events/2016/4/2/levi-stadium-supercross-race

Slide 8

Slide 8 text

picture credit: https://www.ninersnation.com

Slide 9

Slide 9 text

Platform to perform Connecting an experience Colin Kaepernick Eli Tomac Chris Martin

Slide 10

Slide 10 text

Middleware is computer software that provides services to software applications beyond those available from the operating system. It can be described as "software glue”. Middleware makes it easier for software developers to implement communication and input/output, so they can focus on the specific purpose of their application.

Slide 11

Slide 11 text

Type of Middleware Message Oriented Object Oriented Remote Procedure Call Database Transaction Portals Embedded Content-centric

Slide 12

Slide 12 text

Same power in different forms picture credit: https://www.thetimes.co.uk/article/asterix-exhibition-the-indomitable-gaul-who-restored-frances-postwar-pride-wpfcfqv2s

Slide 13

Slide 13 text

Fall 2008

Slide 14

Slide 14 text

Modular Middleware

Slide 15

Slide 15 text

May 2019

Slide 16

Slide 16 text

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 Committer 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 Ref. Architecture Ref. Methodology Evangelize 2018 Middleware Developer

Slide 17

Slide 17 text

In the long run Middleware is disappearing - in to code (simpler constructs, more power) - in to infrastructure (scaling, management, observability)

Slide 18

Slide 18 text

People

Slide 19

Slide 19 text

Full Stack Developer

Slide 20

Slide 20 text

Connected roles Architecture Development Deployment Architect Developer DevOps

Slide 21

Slide 21 text

Process

Slide 22

Slide 22 text

Step 1 Step 1 Step 1 Step 2 Step 2 Step 2 … … … Step n Step p Step q SGMM SOA Governance Planning Assessment SOA Governance Capabilities Heat Map SOA Governance Transition Plan SOA Governance Assets Techniques, Checklist, Guidance, Examples Governance Process Models Complex processes inturupt flow

Slide 23

Slide 23 text

App Logic . . . Scaling HA Resilience Observability Scaling HA Resilience Observability HA Resilience Observability Compute Network Storage Ops Infrastructure Centralized
 Dev Org Middleware 
 & Integration
 CoE Teams Ops
 Team HA Resilience Observability Scaling INTEGRATION HA Resilience Observability Scaling MESSAGING HA Resilience Observability Scaling DATA HA Resilience Observability Scaling SECURITY App Logic App Logic App 1 App 2 App (n) Fast Waterfall “Wagile”

Slide 24

Slide 24 text

Agile - Developer Flow

Slide 25

Slide 25 text

Agile Flow for Development Teams

Slide 26

Slide 26 text

picture credit: https://www.formula1.com/en/teams/Red-Bull.html Self-Organized teams

Slide 27

Slide 27 text

Technology

Slide 28

Slide 28 text

The wrong technology stack interrupts flow

Slide 29

Slide 29 text

COMPOSABLE ENTERPRISE WITH CLOUD NATIVE Autonomous releases, CI/CD, self-organization, change-control authority App (n) App Microservice INTEGRATION MESSAGING DATA SECURITY App 1 INTEGRATION MESSAGING DATA SECURITY Microservices App 2 App Miniservices INTEGRATION MESSAGING DATA SECURITY APIs Self-
 Organizing
 Dev Teams . . . Ops
 Team Event-Based Hybrid Integration Platform Scaling | HA | Resilience | Observability Orchestration & High-Performance Data Store Ops Infrastructure Architecture Blocks Enable the Composable Enterprise App Logic . . . Scaling HA Resilience Observability Scaling HA Resilience Observability HA Resilience Observability Compute Network Storage Ops Infrastructure Centralized
 Dev Org Middleware 
 & Integration
 CoE Teams Ops
 Team LAYERED ENTERPRISE WITH CENTER OF EXCELLENCE Coordinated releases, organizational rigor, centralized change control HA Resilience Observability Scaling INTEGRATION HA Resilience Observability Scaling MESSAGING HA Resilience Observability Scaling DATA HA Resilience Observability Scaling SECURITY App Logic App Logic App 1 App 2 App (n) DevOps

Slide 30

Slide 30 text

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

Slide 31

Slide 31 text

Intra and Inter communication Architecture Blocks Architecture Blocks

Slide 32

Slide 32 text

Intra and Inter communication Local-mesh Global-mesh Architecture Blocks Architecture Blocks

Slide 33

Slide 33 text

API-centric Architecture Architecture Block Architecture Block

Slide 34

Slide 34 text

API-centric Architecture Pull APIs - RESTful HTTP, gRPC Push APIs - Events JMS, AMQP, SMTP - Streams Kafka, MQTT Architecture Block Architecture Block

Slide 35

Slide 35 text

In the long run Middleware is disappearing - in to code - in to infrastructure

Slide 36

Slide 36 text

Pragmatic Approach Ballerina: middleware embedded into the code Cellery: middleware embedded into the infrastructure Cell-based Architecture: decentralized architecture Agile Methodology: increase the flow efficiency

Slide 37

Slide 37 text

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/

Slide 38

Slide 38 text

Ballerina - code and visual syntax in sync

Slide 39

Slide 39 text

https://cellery.io/ Build, run, and manage code-first composites on Kubernetes

Slide 40

Slide 40 text

Cellery - simple composition and graphical view

Slide 41

Slide 41 text

picture credit: https://www.medicalnewstoday.com/ https://github.com/wso2/reference-architecture Cell-based Architecture

Slide 42

Slide 42 text

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.

Slide 43

Slide 43 text

No content

Slide 44

Slide 44 text

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

Slide 45

Slide 45 text

picture credit: https://www.flickr.com/photos/vasile23/ Reference Methodology https://github.com/wso2/reference-methodology

Slide 46

Slide 46 text

People, Process & Technology ++

Slide 47

Slide 47 text

No content

Slide 48

Slide 48 text

Cells and Podular Organizations

Slide 49

Slide 49 text

In the long run Middleware is disappearing - in to code - in to infrastructure

Slide 50

Slide 50 text

picture credit: https://www.flickr.com/photos/infomatique/ APIs the glue of (µ) components deployed in a decentralized architecture

Slide 51

Slide 51 text

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

Slide 52

Slide 52 text

INTEGRATION SUMMIT 2019 THANK YOU wso2.com @asankama