[wso2con eu 2017] darwin ate my app

55
Darwin Ate My App Adaptation and adaptability in business and software Paul Fremantle CTO and Co-Founder, WSO2 @pzfreo

Upload: wso2-inc

Post on 21-Jan-2018

284 views

Category:

Technology


2 download

TRANSCRIPT

Page 1: [WSO2Con EU 2017] Darwin Ate My App

Darwin Ate My AppAdaptation and adaptability in business and software

Paul FremantleCTO and Co-Founder, WSO2@pzfreo

Page 2: [WSO2Con EU 2017] Darwin Ate My App

“Software is eating the world”Marc Andreessen

Page 3: [WSO2Con EU 2017] Darwin Ate My App

The only competitive companies in the future are those that can build Adaptive Digital Experiences

Page 4: [WSO2Con EU 2017] Darwin Ate My App
Page 5: [WSO2Con EU 2017] Darwin Ate My App

The action or process of adapting one thing to fit with another, or suit specified conditions, esp. a new or changed environment

Page 6: [WSO2Con EU 2017] Darwin Ate My App

An Adaptive Business

• Evolves faster to market trends• Reacts more quickly to customer demands• Flexes and scales to meet market demand• Creates new digital products faster• Couples costs to workload and revenue

Page 7: [WSO2Con EU 2017] Darwin Ate My App

• Adapting to customers in real time– Fraud detection, dynamic marketing, real time decision

making, etc• Adapting to workload challenges

– Scaling different parts of the business as needed– Consumption-based cost models

• Adapting to changing business needs– Fast evolution of business processes and digital products

Dimensions of Business Adaptation

Page 8: [WSO2Con EU 2017] Darwin Ate My App
Page 9: [WSO2Con EU 2017] Darwin Ate My App
Page 10: [WSO2Con EU 2017] Darwin Ate My App

(Biological) Adaptation

• Adaptation occurs in any system that has – Iteration / Generations– Selection process between generations

Page 11: [WSO2Con EU 2017] Darwin Ate My App

Genetic Algorithms

• Dates back to Alan Turing in 1950, who first proposed this

• The aerial shown was designed by a genetic algorithm and used on NASA’s ST-5 spacecraft

Page 12: [WSO2Con EU 2017] Darwin Ate My App

We are all involved in multiple meta genetic algorithms

aka (biological) adaptation processes

Page 13: [WSO2Con EU 2017] Darwin Ate My App

A-B testingImplements biological adaptation

A B25% 43%

Page 14: [WSO2Con EU 2017] Darwin Ate My App

Implements biological adaptation

v0.1 v0.2

Version Control

Page 15: [WSO2Con EU 2017] Darwin Ate My App

- Vertical gene transfer is from parents to children

- In code that means from one version to the next

- Horizontal gene transfer is from one cell to another

- In code that means from one codebase to another

Page 16: [WSO2Con EU 2017] Darwin Ate My App
Page 17: [WSO2Con EU 2017] Darwin Ate My App

Speed of Evolution

Page 18: [WSO2Con EU 2017] Darwin Ate My App

Speed of Evolution

• In any such adaptive system, the rate of adaptation is based on:– The rate of creation of new generations– The time for selection to kick in

Page 19: [WSO2Con EU 2017] Darwin Ate My App

Fruit flies

Page 20: [WSO2Con EU 2017] Darwin Ate My App

Adaptive Businesses rely on

Adaptive Technologies

Page 21: [WSO2Con EU 2017] Darwin Ate My App

Adaptive technologies• Act in real-time

– On events, streaming data, patterns and behaviour

• React to demand directly– Scaling as needed– Independently scaling different parts of the system

• Help organisations reduce the time between evolutions

– Faster iteration– Effective observability and testing

Page 22: [WSO2Con EU 2017] Darwin Ate My App

• Version controlled revisions– Iterations

• Automated Unit Tests– Fast Selection

For example Continuous Integration

ContinuousIntegration

Check In

Unit Test

Build

System Test

Deploy

Page 23: [WSO2Con EU 2017] Darwin Ate My App
Page 24: [WSO2Con EU 2017] Darwin Ate My App

Chaos Engineering enhancesselection of software

Page 25: [WSO2Con EU 2017] Darwin Ate My App

Abstractions and Complexity

http://dafoster.net/articles/2017/03/25/how-to-design-large-programs-with-abstraction-and-encapsulation/

With Abstraction Without Abstraction

Page 26: [WSO2Con EU 2017] Darwin Ate My App
Page 27: [WSO2Con EU 2017] Darwin Ate My App

27

Page 28: [WSO2Con EU 2017] Darwin Ate My App

Why use {API, Event, Stream} architecture?

• APIs provide an abstraction over everything that can be queried or activated

• Events allow action in real-time based on the environment, allowing work to be triggered

• Streams capture the ongoing evolving nature of the environment, allowing pattern matching and analysis

Page 29: [WSO2Con EU 2017] Darwin Ate My App

StubHub is an adaptive business

Page 30: [WSO2Con EU 2017] Darwin Ate My App

TfL is an adaptive business

Page 31: [WSO2Con EU 2017] Darwin Ate My App

Uber is an adaptive business*

Greyball • Actively identifies

government officials• Offers an adapted view

to them

* This may not be strictly legal!

Page 32: [WSO2Con EU 2017] Darwin Ate My App

Jaguar Land Rover is an adaptive business

Page 33: [WSO2Con EU 2017] Darwin Ate My App

Abstractions manage complexity, but without governance,

that complexity bites back

Page 34: [WSO2Con EU 2017] Darwin Ate My App

Governance

… is the intersection of people and technology

Page 35: [WSO2Con EU 2017] Darwin Ate My App

Governance in our world• Store / Registry

– configuration and human interface

• Identity Management – for people and systems

• Runtime policy – gateway and enforcement

• Observability and monitoring– visibility and control

Page 36: [WSO2Con EU 2017] Darwin Ate My App

{APIs, Events, Streams} × {Store, Identity,

Runtime Policy, Observability}

Page 37: [WSO2Con EU 2017] Darwin Ate My App
Page 38: [WSO2Con EU 2017] Darwin Ate My App

Recursive architecture

• Every time you consume an API, Event or Stream you create a new API, Event, or Stream–In Ballerina, one-step process for APIs–In Siddhi, one-step process for streams and events

All our products will move from two-step to one-step

Page 39: [WSO2Con EU 2017] Darwin Ate My App
Page 40: [WSO2Con EU 2017] Darwin Ate My App

What is an Adaptive Application?• Creates and Consumes APIs, Events, and Streams

– Acts on and adapt to real time data

• Scales up and down instantly – Fast startup, stateless, low memory– Reincarnation is welcome to any individual instance

• Built with the right programming model– Time to value is important– But time to adapt is more important

• Observable by default

Page 41: [WSO2Con EU 2017] Darwin Ate My App

• Language Runtime– Improved worker semantics – Functions on types– Modularity with ‘public’ / ‘private’ package members.– Resiliency for network failures

• Developer Tools– Composer: browser based graphic/text/swagger editor and

debugger– IDE plugins: IntelliJ Idea– Testerina: Unit testing framework

Ballerina v0.95.0 Technology Preview

Page 42: [WSO2Con EU 2017] Darwin Ate My App

Observability

42

Page 43: [WSO2Con EU 2017] Darwin Ate My App

Observability

● Observability is monitoring, testing and business analytics together● Understanding the whole picture● Getting insights faster

Page 44: [WSO2Con EU 2017] Darwin Ate My App
Page 45: [WSO2Con EU 2017] Darwin Ate My App

By the way

Every WSO2 product:• Has APIs to manage the product

– Every function has an API

• Creates events and streams– Monitoring and callbacks

Page 46: [WSO2Con EU 2017] Darwin Ate My App
Page 47: [WSO2Con EU 2017] Darwin Ate My App

WSO2 Update Manager Built on APIs, leading to Adaptive Business

https://cdn.updates.wso2.com

https://api.updates.wso2.com

WUM SyncPMT

WUM Client

APIM Cloud APP Cloud

Product Dist

C P

U W

CDN

Page 48: [WSO2Con EU 2017] Darwin Ate My App

• Governed and observable• Scalable in real time• Cloud enabled• Open Source

WSO2 is the only company that gives you APIs, Streams and Events for your entire IT assets

Page 49: [WSO2Con EU 2017] Darwin Ate My App

Focus areas for WSO2 • Creating the right environment and model for Serverless and

Cloud Native– Coupling costs to outcomes

● Enhancing the recursive nature of the technology – Improving generational adaptation

● Building a better programming model for working with APIs, Events and Streams

– Ballerina, Siddhi, Push/Pull mediation– The right programming model for the right task

● Improving our Governance by surveillance– Managing complexity

Page 50: [WSO2Con EU 2017] Darwin Ate My App

Sessions and Tracks• Integration Track and API Track

– Creating an API First architecture

• Analytics Track– Handling Events and Streams

• Ballerina Track– Recursive, Cloud Native programming and integration

• IAM Track– Identities as APIs, Events and Streams

Page 51: [WSO2Con EU 2017] Darwin Ate My App

Call to action• Does your development model embrace adaptation:

–Iteration, observability and fast selection• Do you have a plan to convert your IT assets into

–APIs, Events and Streams?• Do you have a recursive architecture?• How do your systems adapt to real-time data?

If you are doing these things, come and tell me your stories

Page 52: [WSO2Con EU 2017] Darwin Ate My App

Adapt or Die!?

•Biological adaptation is driving our businesses and software

•The right architecture allows us to adapt faster–APIs, Events and Streams allow us to iterate faster–Observability and Governance manage complexity

•Creating (and adapting) digital experiences is the key to becoming an adaptive business

52

Page 53: [WSO2Con EU 2017] Darwin Ate My App
Page 54: [WSO2Con EU 2017] Darwin Ate My App

Software is eating the world but

Darwin is eating software

Page 55: [WSO2Con EU 2017] Darwin Ate My App

wso2.com

55