[wso2con eu 2017] darwin ate my app
TRANSCRIPT
Darwin Ate My AppAdaptation and adaptability in business and software
Paul FremantleCTO and Co-Founder, WSO2@pzfreo
“Software is eating the world”Marc Andreessen
The only competitive companies in the future are those that can build Adaptive Digital Experiences
The action or process of adapting one thing to fit with another, or suit specified conditions, esp. a new or changed environment
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
• 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
(Biological) Adaptation
• Adaptation occurs in any system that has – Iteration / Generations– Selection process between generations
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
We are all involved in multiple meta genetic algorithms
aka (biological) adaptation processes
A-B testingImplements biological adaptation
A B25% 43%
Implements biological adaptation
v0.1 v0.2
Version Control
- 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
Speed of Evolution
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
Fruit flies
Adaptive Businesses rely on
Adaptive Technologies
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
• Version controlled revisions– Iterations
• Automated Unit Tests– Fast Selection
For example Continuous Integration
ContinuousIntegration
Check In
Unit Test
Build
System Test
Deploy
Chaos Engineering enhancesselection of software
Abstractions and Complexity
http://dafoster.net/articles/2017/03/25/how-to-design-large-programs-with-abstraction-and-encapsulation/
With Abstraction Without Abstraction
27
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
StubHub is an adaptive business
TfL is an adaptive business
Uber is an adaptive business*
Greyball • Actively identifies
government officials• Offers an adapted view
to them
* This may not be strictly legal!
Jaguar Land Rover is an adaptive business
Abstractions manage complexity, but without governance,
that complexity bites back
Governance
… is the intersection of people and technology
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
{APIs, Events, Streams} × {Store, Identity,
Runtime Policy, Observability}
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
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
• 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
Observability
42
Observability
● Observability is monitoring, testing and business analytics together● Understanding the whole picture● Getting insights faster
By the way
Every WSO2 product:• Has APIs to manage the product
– Every function has an API
• Creates events and streams– Monitoring and callbacks
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
• 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
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
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
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
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
Software is eating the world but
Darwin is eating software
wso2.com
55