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

The reconstitution of middleware with APIs

The reconstitution of middleware with APIs

Middleware is essential for application development which increases the productivity of full-stack developers by bringing battle hardened functional capabilities covering the majority of a digital-driven project. However, with the adoption to Microservices and cloud-native application architecture middleware cannot use like used in the past, this is a solution for the above problem.
Complexity created by distributed computing encapsulated by the middleware for over two decades and made application developers productive by letting them focus on business logic relevant to their domain. Modern architecture and technology drift, such as Microservices, Cloud-native, and Serverless do not have room to embed middleware into the application development while the need is still there.
In this talk, Asanka is going to deep-dive into an API-centric, decentralized, and code-first approach to fill the void of middleware and make the application developer productive again.

Asanka Abeysinghe

May 15, 2019
Tweet

More Decks by Asanka Abeysinghe

Other Decks in Technology

Transcript

  1. INTEGRATION SUMMIT 2019 The Reconstitution of Middleware with APIs Story

    of a Middleware Developer Asanka Abeysinghe Deputy CTO & VP, Architecture - CTO Office WSO2, Inc
  2. 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
  3. 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.
  4. Type of Middleware Message Oriented Object Oriented Remote Procedure Call

    Database Transaction Portals Embedded Content-centric
  5. 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
  6. In the long run Middleware is disappearing - in to

    code (simpler constructs, more power) - in to infrastructure (scaling, management, observability)
  7. 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
  8. 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”
  9. 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
  10. 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
  11. API-centric Architecture Pull APIs - RESTful HTTP, gRPC Push APIs

    - Events JMS, AMQP, SMTP - Streams Kafka, MQTT Architecture Block Architecture Block
  12. 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
  13. 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/
  14. 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.
  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. 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