[wso2con eu 2017] keynote: ballerina plans and futures

41
Ballerina-in-Chief Founder, Chairperson and Chief Architect; WSO2 Lt. Col. & IT Advisor; Sri Lanka Army Ballerina Plans and Futures Sanjiva Weerawarana, Ph.D.

Upload: wso2-inc

Post on 21-Jan-2018

1.184 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: [WSO2Con EU 2017] Keynote: Ballerina Plans and Futures

Ballerina-in-ChiefFounder, Chairperson and Chief Architect; WSO2Lt. Col. & IT Advisor; Sri Lanka Army

Ballerina Plans and Futures

Sanjiva Weerawarana, Ph.D.

Page 2: [WSO2Con EU 2017] Keynote: Ballerina Plans and Futures

• Why are we doing Ballerina?

• What is the state of Ballerina?

• How will it affect the WSO2 products?

• What should you do to prepare for it?

What will you leave with?Hopefully, answers to these questions:

Page 3: [WSO2Con EU 2017] Keynote: Ballerina Plans and Futures

Why, oh why… ?

Page 4: [WSO2Con EU 2017] Keynote: Ballerina Plans and Futures

Make Integration Great Again

Page 5: [WSO2Con EU 2017] Keynote: Ballerina Plans and Futures

• 286k SaaS services to use– The new shared library

• Everything you make is useful to someone else– Serve, or be forgotten

• Need for agility– Recompose, recompose, recompose

Networked interactions are everywhere

Page 6: [WSO2Con EU 2017] Keynote: Ballerina Plans and Futures

• Too hot ‘n heavy for the future– Microservices, serverless, containers

• Too restrictive with DSL approach and hacks galore

Why not use ESBs?

Page 7: [WSO2Con EU 2017] Keynote: Ballerina Plans and Futures

• Too hot ‘n heavy for the future– Microservices, serverless, containers

• Too restrictive with DSL approach and hacks galore

• (In the future; today just keep buying the ESB!)

Why not use ESBs?

Page 8: [WSO2Con EU 2017] Keynote: Ballerina Plans and Futures

• Writing, managing and deploying code is now rapid with awesome SDLC tools

• DSLs and ESBs don’t love CICD processes

Code is Great Again!

“Configuration over code” is over

Page 9: [WSO2Con EU 2017] Keynote: Ballerina Plans and Futures

• Type system mismatches - no understanding of json, xml, sql

• Generally poor at handling asynchronous programming

• Writing network resilient programs is very hard with frameworks galore

Why not Java/NodeJS/Python/*?

Page 10: [WSO2Con EU 2017] Keynote: Ballerina Plans and Futures

Sequence diagram based programming language will make integration great again.

Page 11: [WSO2Con EU 2017] Keynote: Ballerina Plans and Futures

State of the Ballerina Union

Page 12: [WSO2Con EU 2017] Keynote: Ballerina Plans and Futures

• An event-driven, parallel programming language for networked applications

• Textual and graphical syntaxes with sequence diagram metaphor

• Powerful type system, connectivity and resiliency

• Designed for modern development practices

The Ballerina Programming Language

Page 13: [WSO2Con EU 2017] Keynote: Ballerina Plans and Futures

Ballerina has been influenced & inspired by C, C++, Java, Go, Kotlin, Dart, NodeJS, Javascript, Maven, NPM, Tomcat, Hysterix and a variety of other awesome programming languages, technologies & tools.

Thank you; we strive to do you proud.

Standing on the shoulders of giants!

Page 14: [WSO2Con EU 2017] Keynote: Ballerina Plans and Futures

• V0.95 released on Monday• Many things are stable• Some things are not stable• Performance is getting better, but not there

yet• Editing experience is getting better, but not

there yet

Work in progress

Page 15: [WSO2Con EU 2017] Keynote: Ballerina Plans and Futures

Type system

Page 16: [WSO2Con EU 2017] Keynote: Ballerina Plans and Futures

• Connectors– Failover, load balancing, circuit breaking,

caching, timeout, ..• Transactions

– XA for DB/JMS type– Microtransaction model for B-to-B usecases

• Security– Taint checking, authn, authzn

Resiliency

Page 17: [WSO2Con EU 2017] Keynote: Ballerina Plans and Futures

• Most languages are sequential first, parallel second

• Ballerina is parallel always ultimately natural– Sequence diagrams are inherently parallel

• Funky semantics for parallel workers of functions

• Async is not right yet; will make it better

Parallelism

Page 18: [WSO2Con EU 2017] Keynote: Ballerina Plans and Futures

• Server and client connectors as you’d expect

• Powerful I/O library for non-blocking I/O for any kind of channel of bytes, chars or records

• Caching, logging, math, ...

Standard library

Page 19: [WSO2Con EU 2017] Keynote: Ballerina Plans and Futures

• IDE support - Composer, Idea, VSCode, ..• Unit testing framework• Documentation framework• Versioned module and dependency framework• Docker integration

Support for programming lifecycle

Page 20: [WSO2Con EU 2017] Keynote: Ballerina Plans and Futures

• Compile to Ballerina byte codes .balo• Statically linked to executable .balx• BVM interpreter for bytecodes

– Written in Java

Execution model

Page 21: [WSO2Con EU 2017] Keynote: Ballerina Plans and Futures

• Ballerina has ZERO Java semantics• We’re writing most of the tools in Java

– Because its an ok language to do so ;-)– “native” is currently bound to Java, but internal

• Planning to compile from .balx to native binary– Looking at LLVM– Or Graal– Or ?? (Help wanted!)

Ballerina/Java: Friends without benefits!

Page 22: [WSO2Con EU 2017] Keynote: Ballerina Plans and Futures

• Download it, try it, give it a whirl

• Join the community– https://groups.google.com/forum/#!forum/baller

ina-dev

We want your help!

Page 23: [WSO2Con EU 2017] Keynote: Ballerina Plans and Futures

Ballerina and WSO2 Products

Page 24: [WSO2Con EU 2017] Keynote: Ballerina Plans and Futures

• Is awesome– API composition– Fantastic multi-environments via labels– Microgateways, offline gateways– Bunch of other cool things

• Oh, and it uses Ballerina in the gateway

API Manager v3

Page 25: [WSO2Con EU 2017] Keynote: Ballerina Plans and Futures

• Gateway will be programmed using Ballerina

• Much more flexible and easy to use than current gateway– Graphical composer will be part of it

API Manager v3 Gateway

Page 26: [WSO2Con EU 2017] Keynote: Ballerina Plans and Futures

• Will replace ESB and DSS with Ballerina

• Significant change from a programming model sense

• Migration tool will deal with a lot of the pain

Enterprise Integrator 7

Page 27: [WSO2Con EU 2017] Keynote: Ballerina Plans and Futures

NO!

Do APIMv3 and EI 7 have to be together?

Page 28: [WSO2Con EU 2017] Keynote: Ballerina Plans and Futures

• NO!

• APIMv3 and EI7 will support serverless, container and good ‘ol server modes

• If you want to go all micro, we’re there for you– (And the only one!)

Do I have to go microservices?

Page 29: [WSO2Con EU 2017] Keynote: Ballerina Plans and Futures

NO! There will be many more minor releases of EI6 as we continue to enhance its functionality.

It will be supported as long as you need it to be.

OMG is ESB/EI6 gone?

Page 30: [WSO2Con EU 2017] Keynote: Ballerina Plans and Futures

Dunno, yet.

What about IS / DAS / IoT

Page 31: [WSO2Con EU 2017] Keynote: Ballerina Plans and Futures

What should I do today?

Page 32: [WSO2Con EU 2017] Keynote: Ballerina Plans and Futures

Don’t stop buying the current products!

Very important!

Page 33: [WSO2Con EU 2017] Keynote: Ballerina Plans and Futures

• Avoid writing ESB class mediators as much as possible– Migration tool can’t convert those

• Don’t hack around with properties and magic

ESB, DSS, EI 6 users

Page 34: [WSO2Con EU 2017] Keynote: Ballerina Plans and Futures

• Don’t do too much hacking in the gateway mediation sequences– In particular, no Java code

• Use checkin-in/check-out for environments

APIM users

Page 35: [WSO2Con EU 2017] Keynote: Ballerina Plans and Futures

Play nice, stay within boundaries and don’t go crazy then you’ll be ok!

Summary

Page 36: [WSO2Con EU 2017] Keynote: Ballerina Plans and Futures

Conclusion

Page 37: [WSO2Con EU 2017] Keynote: Ballerina Plans and Futures

• Ballerina current supports main programs and services

• Thinking about long running processes

• Thinking about events & streams

APIs, events and streams

Page 38: [WSO2Con EU 2017] Keynote: Ballerina Plans and Futures

• Ballerina makes it easier to write smart(er) endpoints– Type system, resiliency, parallelism

Smart endpoints and dumb pipes

Page 39: [WSO2Con EU 2017] Keynote: Ballerina Plans and Futures

• Only about once in a decade and takes a decade or more– Fortran, Cobol, C, C++, Java, C#, Javascript,

Python, Go

• Combination of fast boot, low memory, non-blocking, network integration, micro all, serverless opens door for Ballerina to win

Creating a winning language is very hard.

Page 40: [WSO2Con EU 2017] Keynote: Ballerina Plans and Futures

Long term effort

Page 41: [WSO2Con EU 2017] Keynote: Ballerina Plans and Futures