@pzfreo dr. paul fremantle, cto and co-founder, wso2 … · 2020. 8. 31. · 2. type checking data...

40
October 2018 Dr. Paul Fremantle, CTO and Co-Founder, WSO2 @pzfreo

Upload: others

Post on 31-Dec-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: @pzfreo Dr. Paul Fremantle, CTO and Co-Founder, WSO2 … · 2020. 8. 31. · 2. Type checking data during compilation 3. Verification of workflow and orchestration 4. A language server

October 2018

Dr. Paul Fremantle, CTO and Co-Founder, WSO2@pzfreo

Page 2: @pzfreo Dr. Paul Fremantle, CTO and Co-Founder, WSO2 … · 2020. 8. 31. · 2. Type checking data during compilation 3. Verification of workflow and orchestration 4. A language server

Increasing demand is causing disaggregation

Page 3: @pzfreo Dr. Paul Fremantle, CTO and Co-Founder, WSO2 … · 2020. 8. 31. · 2. Type checking data during compilation 3. Verification of workflow and orchestration 4. A language server

Everything is An Endpoint

Functions

APIs

Data

SaaS apps

Legacy apps

Devices

Disaggregation leads to more endpoints

Page 4: @pzfreo Dr. Paul Fremantle, CTO and Co-Founder, WSO2 … · 2020. 8. 31. · 2. Type checking data during compilation 3. Verification of workflow and orchestration 4. A language server

Integration in an increasingly disaggregated world

TransactionsCircuit Breaking

ProtocolsPayloads

EventsSecurity

WorkflowStreams

Compensation

Page 5: @pzfreo Dr. Paul Fremantle, CTO and Co-Founder, WSO2 … · 2020. 8. 31. · 2. Type checking data during compilation 3. Verification of workflow and orchestration 4. A language server

TheIntegration

Gap

ESB, BPM, EAIJava / Spring

JavaScript / Node

Page 6: @pzfreo Dr. Paul Fremantle, CTO and Co-Founder, WSO2 … · 2020. 8. 31. · 2. Type checking data during compilation 3. Verification of workflow and orchestration 4. A language server

AGILEINTEGRATION SIMPLE

Page 7: @pzfreo Dr. Paul Fremantle, CTO and Co-Founder, WSO2 … · 2020. 8. 31. · 2. Type checking data during compilation 3. Verification of workflow and orchestration 4. A language server

Ballerina is a compiled, type safe,concurrent programming language.

Page 8: @pzfreo Dr. Paul Fremantle, CTO and Co-Founder, WSO2 … · 2020. 8. 31. · 2. Type checking data during compilation 3. Verification of workflow and orchestration 4. A language server

Hello World

Page 9: @pzfreo Dr. Paul Fremantle, CTO and Co-Founder, WSO2 … · 2020. 8. 31. · 2. Type checking data during compilation 3. Verification of workflow and orchestration 4. A language server

caller hello

GET

Hello World

Page 10: @pzfreo Dr. Paul Fremantle, CTO and Co-Founder, WSO2 … · 2020. 8. 31. · 2. Type checking data during compilation 3. Verification of workflow and orchestration 4. A language server

Annotations

Page 11: @pzfreo Dr. Paul Fremantle, CTO and Co-Founder, WSO2 … · 2020. 8. 31. · 2. Type checking data during compilation 3. Verification of workflow and orchestration 4. A language server

caller hello

POST (name)

Hello, name!

Page 12: @pzfreo Dr. Paul Fremantle, CTO and Co-Founder, WSO2 … · 2020. 8. 31. · 2. Type checking data during compilation 3. Verification of workflow and orchestration 4. A language server

Connectors

Page 13: @pzfreo Dr. Paul Fremantle, CTO and Co-Founder, WSO2 … · 2020. 8. 31. · 2. Type checking data during compilation 3. Verification of workflow and orchestration 4. A language server

caller hello

POST (status)

response

twitter

tweet (status)

response

Page 14: @pzfreo Dr. Paul Fremantle, CTO and Co-Founder, WSO2 … · 2020. 8. 31. · 2. Type checking data during compilation 3. Verification of workflow and orchestration 4. A language server

caller hello

POST (status)

response

twitter

tweet (status)

response

transform

transform

Page 15: @pzfreo Dr. Paul Fremantle, CTO and Co-Founder, WSO2 … · 2020. 8. 31. · 2. Type checking data during compilation 3. Verification of workflow and orchestration 4. A language server

Inherently Async I/O

Page 16: @pzfreo Dr. Paul Fremantle, CTO and Co-Founder, WSO2 … · 2020. 8. 31. · 2. Type checking data during compilation 3. Verification of workflow and orchestration 4. A language server

Sequence Diagrammatic

Page 17: @pzfreo Dr. Paul Fremantle, CTO and Co-Founder, WSO2 … · 2020. 8. 31. · 2. Type checking data during compilation 3. Verification of workflow and orchestration 4. A language server
Page 18: @pzfreo Dr. Paul Fremantle, CTO and Co-Founder, WSO2 … · 2020. 8. 31. · 2. Type checking data during compilation 3. Verification of workflow and orchestration 4. A language server

Docker & Kubernetes

Page 19: @pzfreo Dr. Paul Fremantle, CTO and Co-Founder, WSO2 … · 2020. 8. 31. · 2. Type checking data during compilation 3. Verification of workflow and orchestration 4. A language server

Circuit Breaker

Page 20: @pzfreo Dr. Paul Fremantle, CTO and Co-Founder, WSO2 … · 2020. 8. 31. · 2. Type checking data during compilation 3. Verification of workflow and orchestration 4. A language server

caller hello

response

Simpson quotes

GET

quote

twitter

tweet (quote)

response

Page 21: @pzfreo Dr. Paul Fremantle, CTO and Co-Founder, WSO2 … · 2020. 8. 31. · 2. Type checking data during compilation 3. Verification of workflow and orchestration 4. A language server

caller hello

response

Simpson quotes twitter

tweet

response

Open Circuit Breaker

logic

Page 22: @pzfreo Dr. Paul Fremantle, CTO and Co-Founder, WSO2 … · 2020. 8. 31. · 2. Type checking data during compilation 3. Verification of workflow and orchestration 4. A language server

Observability

Page 23: @pzfreo Dr. Paul Fremantle, CTO and Co-Founder, WSO2 … · 2020. 8. 31. · 2. Type checking data during compilation 3. Verification of workflow and orchestration 4. A language server

Jaeger / Zipkin

Page 24: @pzfreo Dr. Paul Fremantle, CTO and Co-Founder, WSO2 … · 2020. 8. 31. · 2. Type checking data during compilation 3. Verification of workflow and orchestration 4. A language server

Prometheus + Grafana

Page 25: @pzfreo Dr. Paul Fremantle, CTO and Co-Founder, WSO2 … · 2020. 8. 31. · 2. Type checking data during compilation 3. Verification of workflow and orchestration 4. A language server

ElasticSearch / Kibana / Logstash (ELK)

Page 26: @pzfreo Dr. Paul Fremantle, CTO and Co-Founder, WSO2 … · 2020. 8. 31. · 2. Type checking data during compilation 3. Verification of workflow and orchestration 4. A language server

Agile

Page 27: @pzfreo Dr. Paul Fremantle, CTO and Co-Founder, WSO2 … · 2020. 8. 31. · 2. Type checking data during compilation 3. Verification of workflow and orchestration 4. A language server

Continuous

Page 28: @pzfreo Dr. Paul Fremantle, CTO and Co-Founder, WSO2 … · 2020. 8. 31. · 2. Type checking data during compilation 3. Verification of workflow and orchestration 4. A language server
Page 29: @pzfreo Dr. Paul Fremantle, CTO and Co-Founder, WSO2 … · 2020. 8. 31. · 2. Type checking data during compilation 3. Verification of workflow and orchestration 4. A language server

gRPC and ProtoBuf

Page 30: @pzfreo Dr. Paul Fremantle, CTO and Co-Founder, WSO2 … · 2020. 8. 31. · 2. Type checking data during compilation 3. Verification of workflow and orchestration 4. A language server

Ballerina syntax

Automatically creates this .proto

Page 31: @pzfreo Dr. Paul Fremantle, CTO and Co-Founder, WSO2 … · 2020. 8. 31. · 2. Type checking data during compilation 3. Verification of workflow and orchestration 4. A language server

Swagger

Page 32: @pzfreo Dr. Paul Fremantle, CTO and Co-Founder, WSO2 … · 2020. 8. 31. · 2. Type checking data during compilation 3. Verification of workflow and orchestration 4. A language server

Asynchronous

Page 33: @pzfreo Dr. Paul Fremantle, CTO and Co-Founder, WSO2 … · 2020. 8. 31. · 2. Type checking data during compilation 3. Verification of workflow and orchestration 4. A language server
Page 34: @pzfreo Dr. Paul Fremantle, CTO and Co-Founder, WSO2 … · 2020. 8. 31. · 2. Type checking data during compilation 3. Verification of workflow and orchestration 4. A language server

// Built-In package mgmt, sharing, and unit testing

$ tree .ballerina/ # Dependencies downloaded and cached locally Ballerina.toml # Defines project build intent my.package/ # Any folder is a package RouterService.bal tests/ RouterTests.bal

$ ballerina buildPulling dependencies… ballerinax/http [central.ballerina.io -> home repo] [====>] 56/56 ballerinax/rpc [central.ballerina.io -> home repo] [====>] 98/98 ballerinax/twitter [central.ballerina.io -> home repo] [====>] 79/79

Building binaries… something.bal ⇒ target/something.balo something.bal ⇒ target/something.balo something.bal ⇒ target/something.balo

Running tests… Test <mytest> ⇒ RUNNING … SUCCESS Test <mytest> ⇒ RUNNING … SUCCESS Test <mytest> ⇒ RUNNING … SUCCESS

Generating deployment artifacts… @docker - complete 1/1 @kubernetes:ingress - complete 3/3 @kubernetes:svc - complete 3/3 @kubernetes:deployment - complete 1/1

SUCCESS

$ ballerina run Service ready at http://192.168.1.101/customer

$ ballerina run kubernetes Service ready at http://wso2.com:4056/customer

Why Create a New Programming Language?Developer productivity happens when coding is simple.

The Ballerina programming language is a type-safe, Turing complete language so we can provide:

1. Incremental build and test

2. Type checking data during compilation

3. Verification of workflow and orchestration

4. A language server with intellisense in any IDE

5. An included GUI IDE for orchestrating interactions

6. Testerina for build-time unit testing integrations

7. Binaries with low footprint, high performance for cloud native optimized execution

8. Composite app construction of polyglot services

9. Package mgmt, like maven, for simple code-level sharing of integrations

10. Build-time instrumentation to enable debuggable observability from your APM

Page 35: @pzfreo Dr. Paul Fremantle, CTO and Co-Founder, WSO2 … · 2020. 8. 31. · 2. Type checking data during compilation 3. Verification of workflow and orchestration 4. A language server

Everything demoed is in the Ballerina By Guide repoMy setup● Ballerina 0.982.0

● Docker ○ 2.0.0.0-beta1-mac75○ Kubernetes: v1.10.3

● Visual Studio Code Version 1.28.1

● Ballerina vscode plugin (0.982.0)

Page 36: @pzfreo Dr. Paul Fremantle, CTO and Co-Founder, WSO2 … · 2020. 8. 31. · 2. Type checking data during compilation 3. Verification of workflow and orchestration 4. A language server

Ballerina is the glue between microservices

TransactionsCircuit Breaking

ProtocolsPayloads

EventsSecurity

WorkflowStreams

Compensation

Page 37: @pzfreo Dr. Paul Fremantle, CTO and Co-Founder, WSO2 … · 2020. 8. 31. · 2. Type checking data during compilation 3. Verification of workflow and orchestration 4. A language server

In the demo

Discover atballerina.io

Ballerina bridges the Integration Gap

Agile Integration SimpleEdit / Build / Run Package management Services Transformations

Language server Ballerina Central Endpoints JSON primitive

IDE plugins Type safety Resources Annotations

Projects Union types Connectors Circuit breaker

Docker and K8S Flow control -> Async

Debugger Observability Workers, fork/join gRPC

Testerina: unit tests CI/CD Message broker Protobuf

Doc generation Table, vector, map Versioning XML type

CLI extensions Struct Bridge Streams

Dev tracing Lambda Swagger CSV

I/O Tasks, scheduling Databases Session mgmt

Projects Dependency mgmt

Page 38: @pzfreo Dr. Paul Fremantle, CTO and Co-Founder, WSO2 … · 2020. 8. 31. · 2. Type checking data during compilation 3. Verification of workflow and orchestration 4. A language server

Save the Date!

Ballerina Day London

Thursday November 15th 2018

https://ballerina.io/learn/events/ballerina-day-london-2018/

Page 39: @pzfreo Dr. Paul Fremantle, CTO and Co-Founder, WSO2 … · 2020. 8. 31. · 2. Type checking data during compilation 3. Verification of workflow and orchestration 4. A language server

How to get involved

Learn more

Open source

Get support

http://ballerina.io

https://github.com/ballerina-platform/ballerina-lang

Stack Overflow #ballerina tag

Page 40: @pzfreo Dr. Paul Fremantle, CTO and Co-Founder, WSO2 … · 2020. 8. 31. · 2. Type checking data during compilation 3. Verification of workflow and orchestration 4. A language server

Thank you!