WSO2 Summit London 2018 Introduction

Download WSO2 Summit London 2018 Introduction

Post on 18-Mar-2018




2 download


WSO2 Summit LondonMarch 2018Rapidly Changing Developer Consumption ModelsExplosion of IT Assets Required for Digital TransformationThe Adoption Challenge Move FastInnovate MoreReduce OverheadAvoid Lock-InTotal ControlOpen source can save the day!Operations & Digital SecurityDevelopersGovernance and integration for exploding endpoint problemUniversal identity integrationProductivity - every developer an integrator#1 OSS integration company; #8 OSS software company5 trillion transactions / year; 40M identities; 20k APIs2018 exiting ARR ~$40M ARR2018 exiting HC ~5602018 EBITDA $5M WSO2 DASHBOARD($000s)Exiting Subscription ARRARR GrowthSubscription CustomersEBITDACash Generated(Spent) From OpsRule of 40S&M Spend for $1 Net New ARRDollar-based Net Retention Rate2015 2016 2017$ 11,25239%$ 16,38746%$ 24,98352%$ (13,482)$ (11,769)$ (192)$ (799)$ 603$ 2,747$ 3.9796%454$ 1.78107%461$ 1.14118%471181 229 312-39 32 56Average HeadcountColomboMountain View London So PauloJaffnaNew York2005 2007 2010 2012 2014 2015 2017 25 4852006002018ColomboLondonMountain ViewSo PauloJaffnaNew YorkAustralia(April 1st)Mexico(Soon)Europe(Soon)WSO2 API ManagerWSO2 Enterprise IntegratorWSO2 Identity ServerWSO2 Streaming ProcessorWSO2 IoTNewReleasesQ1Q2Q3Q4Quarterly Product ReleasesInstallers for any environment1 Trillion End PointsIf everything is an endpoint, everyone is an integrator.12Centralized IntegrationThrough a bus or brokerConcentrates expertiseDecentralized IntegrationEvery service embeds integrationCrowd sources integration// Deployment annotations generate architecture artifacts during build @kubernetes:deployment{}@kubernetes:service{}@kubernetes:ingress{ host:"", path:"/customer" }// A service is a network-accessible server endpoint, in this case httpservice updateService { // An endpoint is a named connection to a networked endpoint endpoint customerSystem { create http:HttpClient("http://networkedSystem", {}); } // A resource is a named invocation point for this API @http:resourceConfig { methods:["POST"], path: "/" } resource update (http:Connection conn, http:InRequest req) { http:OutResponse response = { statusCode : 200 }; // Atomic operations for network actions transaction { // JSON, XML, and ProtoBuf are built-in data types json customerData = req.getJsonPayload(); http:OutRequest out = {}; out.setJsonPayload(customerData); // Multi-return values and type inference! var cust, custerr ="/updateCustomer", out); var bill, billerr ="/billCustomer", out); if (billerr != null || custerr != null) { abort; } } failed { response.statusCode = 500; } // Send response to initiating client and ignore any error _ = conn.respond(response); } }Ballerina is a cloud native programming language and runtime, including a message broker and API gateway, which make it easy to create resilient services that integrate and orchestrate transactions across distributed endpoints.A programming language for orchestration and composition of API and streaming endpoints.A service runtime tuned for serverless and cloud native: it boots faster than average network latency, small memory footprint, and is stateless.Frameworks to extend Ballerinas resilience and transaction properties to existing applications and code: 1. A sidecar to bridge legacy services available over localhost 2. Ballerina for Java to package Java code into Ballerina servicesAn API gateway, message broker, and transaction coordinator to enforce runtime policies, scale event-driven architecture, and orchestrate transactions across services.Agile toolchain plugins with a compiler, composer, and IDE extensions.Ballerina Central to discover reusable integration extensions in a global package registry.Serverless IT Operating ModelFocus on Outcomes, Not InfrastructureServerless IT Operating ModelFocus on Outcomes, Not Infrastructure19Thank You