SlideShare a Scribd company logo
1 of 34
Welcome to
Microservices – to Code or Low Code
Connected technology is fundamental to high-performing businesses
Ian
Vanstone
IntegrationWorks
Global
PART 1 - Ballerina Taster
A programming language for
microservices integration
Everythingis
anendpoint
Functions
APIs
Data
SaaSapps
Legacy
apps
Devices
Local logic
and functions
Remote calls and dependencies
Old world app
New world “app”
Old world architecture New world architecture
Integration is separate Integration is embedded
Integration Platform
The
Integration
Gap
ESB, BPMN, EAI
Java / Spring
JavaScript / Node
AGILE
INTEGRATION SIMPLE
caller hello
GE
T
Hello World
$ ballerina run hello_world_service.bal
Initiating service(s) in 'hello_world_service.bal'
[ballerina/http] started HTTP/WS endpoint 0.0.0.0:9090
$ curl http://localhost:9090/hello/sayHello
Hello, World!
import ballerina/http;
import ballerina/log;
service hello on new http:Listener(9090) {
resource function sayHello(http:Caller caller, http:Request req) {
var result = caller->respond("Hello, World!");
if (result is error) {
log:printError("Error sending response", err = result);
}
}
}
caller hello
GE
T
Hello
World
caller
My
Application
Endpoint 1 Endpoint 2 Endpoint 3 Endpo
$ ballerina openapi export ballerina_to_openapi.bal
$ ballerina openapi gen-service openapi_to_ballerina.yaml -m pet_service
$ ballerina openapi gen-client openapi_to_ballerina.yaml -m pet_client
$ ballerina run hello_service.bal $ ballerina build hello_service.bal
$ ballerina run hello_service.balx
Ballerina Virtual Machine
Lightweight runtime
e.g. Simple Ballerina service which serves 500 concurrent users has a memory footprint of ~50 MB.
import ballerina/test;
@test:Config
function testAssertIntEquals() {
int answer = 0;
int a = 5;
int b = 3;
answer = intAdd(a, b);
test:assertEquals(answer, 8, msg = "int values not equal");
}
function intAdd(int a, int b) returns (int) {
return (a + b);
}
$ ballerina test
Testing
import ballerina/http;
import ballerinax/docker;
@http:ServiceConfig {
basePath:"/helloWorld"
}
@docker:Config {
registry:"docker.abc.com",
name:"helloworld",
tag:"v1.0"
}
service helloWorld on new http:Listener(9090) {
resource function sayHello (http:Caller caller, http:Request request) {
http:Response response = new;
response.setTextPayload("Hello, World! n");
_ = caller -> respond(response);
}
}
$ ballerina build hello_world_docker.bal
$ docker run -d -p 9090:9090 docker.abc.com/helloworld:v1.0
$ ballerina run --observe tracing.bal
ballerina: started publishing tracers to Jaeger on localhost:5775
Initiating service(s) in 'ballerina-home/lib/balx/prometheus/reporter.balx'
[ballerina/http] started HTTP/WS endpoint 0.0.0.0:9797
ballerina: started Prometheus HTTP endpoint 0.0.0.0:9797
Initiating service(s) in 'tracing.bal'
[ballerina/http] started HTTP/WS endpoint 0.0.0.0:9234
1.The language
2.Language lock, stability
3.Community review of language specification
4.Language test suite
5.Merging / collapsing sequence diagrams
6.the BVM runtime, performance, etc.
7.LLVM prototype, Native compilation via LLVM
8.Longevity, stability, performance optimizations
9.Build system rationalization - common output
10.Build system - environment-specific builds
11.Internationalizing the grammar
12.Standard library
13.Enhance the seamless operation of cross platform behavior
14.Expand the list of supported database management systems
15.Extension / ecosystem improvements, such as Ballerina Central, registry, modules, customiza
16.Private version of Ballerina registry, powering Ballerina Central
17.Ability to write compiler extensions packaged with Ballerina modules
18.Ability to push compiled Ballerina programs into a registry (not just modules)
19.Integration related things around API gateway, message broker, transaction coordinator
20.Persistent and stateful services, ie "workflow"
21.Streaming SQL
22.API throttling support and API observability around API gateway
23.Optimize transaction model to support distributed transactions with MB
24.Transaction coordination - more coordination patterns will be introduced
25.In relation to workflow we plan checkpoint/restart, forward recoverability and compensation
26.Docker / Kubernetes compositions
27.Tooling
28.Observability integration into composer to facilitate tracing
29.Heterogeneous data transformations
Current version: 0.991.0
http://github.com/ballerina-platform/
Stack Overflow #ballerina tag
https://ballerina.io/philosophy/
https://ballerina.io/downloads/
https://ballerina.io/learn/by-example/
https://ballerina.io/learn/by-guide/
https://central.ballerina.io/
Thanks
Microservices – to Code or Low Code
Connected technology is fundamental to high-performing businesses
Ian
Vanstone
IntegrationWorks
Global
PART 1 - Ballerina Taster
A programming language for
microservices integration
Connected technology is fundamental to high-performing businesses
Mark
Ashcroft
OutSystems
PART 2 - OutSystems
Low-Code… Changing the game
in the world of microservices
Welcome to
Microservices – to Code or Low Code
Agility
OSS
+
custom code
COTS
(e.g. Legacy ERP)
COTS
(Modern SaaS)
Feature List Popular Implementations
UI Angular
App framework Spring
Containers Kubernetes
State/Data Redis
Connectors Lots!
CI/CD Jenkins
Observability Prometheus
Microservices Candy Store Shopping List
Lots of code
+
Lots of OSS
+
TBD
integration
Agility
Complexity
OSS
+
custom code
COTS
(e.g. Legacy ERP)
COTS
(Modern SaaS)
Agility doesn’t need to
be complex
Agility
Complexity
COTS
(e.g. Legacy ERP)
COTS
(Modern SaaS)
? OSS
+
custom code
Agility
Complexity
COTS
(e.g. Legacy ERP)
COTS
(Modern SaaS)
OSS
+
custom code
Founded in 2001 -
Lisbon; Privately
Owned
FY 2018: $100M+ USD
in sales; 1000
employees; growing
>50% YOY
52
Countries
22
Industries
245+
Global Partners
220K+
Community Members
OutSystems Leadership Web & Mobile
Mobile App Development
Platforms Q3 2018
Low-Code Dev Platforms for AD&D
Professionals, Q1 2019
5 Day Build – 2 Developers
Energy Services
(sFTP)
Forex Services
(Restful API)
Production Data
(external SQL db via VPN)
Insights Back Office (Notifications)
Insights Mobile Application
wits
Open Exchange
Rates
Production Db
Connector Apps
External Systems
Core Apps
Demo Services at Speed
Microservices Shopping List
Requirement Microservices
Implementation
OutSystems
UI Angular OOTB Web & Mobile
App framework Spring OOTB
Orchestration Kubernetes OOTB
State/Data Redis OOTB
Connectors Lots! OOTB &
CI/CD Jenkins OOTB and consumable (Lifetime Applications)
Observability Prometheus OOTB and consumable (Lifetime Analytics)
3
3
Building & Reusing
Services @ Speed
If you would like us to come and talk with your team, just reach out to
ian.vanstone@integration.works

More Related Content

Similar to API and Microservices Meetup - To Code or Low Code?

Docker Container As A Service - March 2016
Docker Container As A Service - March 2016Docker Container As A Service - March 2016
Docker Container As A Service - March 2016Patrick Chanezon
 
SOA with C, C++, PHP and more
SOA with C, C++, PHP and moreSOA with C, C++, PHP and more
SOA with C, C++, PHP and moreWSO2
 
Node.js Build, Deploy and Scale Webinar
Node.js Build, Deploy and Scale WebinarNode.js Build, Deploy and Scale Webinar
Node.js Build, Deploy and Scale Webinarjguerrero999
 
Service Discovery Like a Pro
Service Discovery Like a ProService Discovery Like a Pro
Service Discovery Like a ProEran Harel
 
Continuous Integration and Deployment Best Practices on AWS
Continuous Integration and Deployment Best Practices on AWSContinuous Integration and Deployment Best Practices on AWS
Continuous Integration and Deployment Best Practices on AWSDanilo Poccia
 
Mobile Development integration tests
Mobile Development integration testsMobile Development integration tests
Mobile Development integration testsKenneth Poon
 
PHP Buildpacks in the Cloud on Bluemix
PHP Buildpacks in the Cloud on BluemixPHP Buildpacks in the Cloud on Bluemix
PHP Buildpacks in the Cloud on BluemixIBM
 
Cloud Foundry for PHP developers
Cloud Foundry for PHP developersCloud Foundry for PHP developers
Cloud Foundry for PHP developersDaniel Krook
 
.NET Cloud-Native Bootcamp
.NET Cloud-Native Bootcamp.NET Cloud-Native Bootcamp
.NET Cloud-Native BootcampVMware Tanzu
 
Containerizing a REST API and Deploying to Kubernetes
Containerizing a REST API and Deploying to KubernetesContainerizing a REST API and Deploying to Kubernetes
Containerizing a REST API and Deploying to KubernetesAshley Roach
 
From MSS to TelScale - Mobicents Summit 2011
From MSS to TelScale - Mobicents Summit 2011From MSS to TelScale - Mobicents Summit 2011
From MSS to TelScale - Mobicents Summit 2011telestax
 
NDC 2011 - Let me introduce my Moncai
NDC 2011 - Let me introduce my MoncaiNDC 2011 - Let me introduce my Moncai
NDC 2011 - Let me introduce my Moncaimoncai
 
Jazoon2010 - Edgar Silva - Open source SOA on Steroids
Jazoon2010 - Edgar Silva - Open source SOA on SteroidsJazoon2010 - Edgar Silva - Open source SOA on Steroids
Jazoon2010 - Edgar Silva - Open source SOA on SteroidsEdgar Silva
 
Fixing the mobile web - Internet World Romania
Fixing the mobile web - Internet World RomaniaFixing the mobile web - Internet World Romania
Fixing the mobile web - Internet World RomaniaChristian Heilmann
 
Spring Boot & Spring Cloud on Pivotal Application Service
Spring Boot & Spring Cloud on Pivotal Application ServiceSpring Boot & Spring Cloud on Pivotal Application Service
Spring Boot & Spring Cloud on Pivotal Application ServiceVMware Tanzu
 
Going FaaSter, Functions as a Service at Netflix
Going FaaSter, Functions as a Service at NetflixGoing FaaSter, Functions as a Service at Netflix
Going FaaSter, Functions as a Service at NetflixYunong Xiao
 
Taking Docker to Dance: Continuous Delivery on AWS
Taking Docker to Dance: Continuous Delivery on AWSTaking Docker to Dance: Continuous Delivery on AWS
Taking Docker to Dance: Continuous Delivery on AWSJessie Yi Wei
 
Haufe Onboarding - Fast Iterating With the MERN Stack - TEC Day 2019
Haufe Onboarding - Fast Iterating With the MERN Stack - TEC Day 2019Haufe Onboarding - Fast Iterating With the MERN Stack - TEC Day 2019
Haufe Onboarding - Fast Iterating With the MERN Stack - TEC Day 2019Haufe-Lexware GmbH & Co KG
 
Play Framework: async I/O with Java and Scala
Play Framework: async I/O with Java and ScalaPlay Framework: async I/O with Java and Scala
Play Framework: async I/O with Java and ScalaYevgeniy Brikman
 
Import golang; struct microservice
Import golang; struct microserviceImport golang; struct microservice
Import golang; struct microserviceGiulio De Donato
 

Similar to API and Microservices Meetup - To Code or Low Code? (20)

Docker Container As A Service - March 2016
Docker Container As A Service - March 2016Docker Container As A Service - March 2016
Docker Container As A Service - March 2016
 
SOA with C, C++, PHP and more
SOA with C, C++, PHP and moreSOA with C, C++, PHP and more
SOA with C, C++, PHP and more
 
Node.js Build, Deploy and Scale Webinar
Node.js Build, Deploy and Scale WebinarNode.js Build, Deploy and Scale Webinar
Node.js Build, Deploy and Scale Webinar
 
Service Discovery Like a Pro
Service Discovery Like a ProService Discovery Like a Pro
Service Discovery Like a Pro
 
Continuous Integration and Deployment Best Practices on AWS
Continuous Integration and Deployment Best Practices on AWSContinuous Integration and Deployment Best Practices on AWS
Continuous Integration and Deployment Best Practices on AWS
 
Mobile Development integration tests
Mobile Development integration testsMobile Development integration tests
Mobile Development integration tests
 
PHP Buildpacks in the Cloud on Bluemix
PHP Buildpacks in the Cloud on BluemixPHP Buildpacks in the Cloud on Bluemix
PHP Buildpacks in the Cloud on Bluemix
 
Cloud Foundry for PHP developers
Cloud Foundry for PHP developersCloud Foundry for PHP developers
Cloud Foundry for PHP developers
 
.NET Cloud-Native Bootcamp
.NET Cloud-Native Bootcamp.NET Cloud-Native Bootcamp
.NET Cloud-Native Bootcamp
 
Containerizing a REST API and Deploying to Kubernetes
Containerizing a REST API and Deploying to KubernetesContainerizing a REST API and Deploying to Kubernetes
Containerizing a REST API and Deploying to Kubernetes
 
From MSS to TelScale - Mobicents Summit 2011
From MSS to TelScale - Mobicents Summit 2011From MSS to TelScale - Mobicents Summit 2011
From MSS to TelScale - Mobicents Summit 2011
 
NDC 2011 - Let me introduce my Moncai
NDC 2011 - Let me introduce my MoncaiNDC 2011 - Let me introduce my Moncai
NDC 2011 - Let me introduce my Moncai
 
Jazoon2010 - Edgar Silva - Open source SOA on Steroids
Jazoon2010 - Edgar Silva - Open source SOA on SteroidsJazoon2010 - Edgar Silva - Open source SOA on Steroids
Jazoon2010 - Edgar Silva - Open source SOA on Steroids
 
Fixing the mobile web - Internet World Romania
Fixing the mobile web - Internet World RomaniaFixing the mobile web - Internet World Romania
Fixing the mobile web - Internet World Romania
 
Spring Boot & Spring Cloud on Pivotal Application Service
Spring Boot & Spring Cloud on Pivotal Application ServiceSpring Boot & Spring Cloud on Pivotal Application Service
Spring Boot & Spring Cloud on Pivotal Application Service
 
Going FaaSter, Functions as a Service at Netflix
Going FaaSter, Functions as a Service at NetflixGoing FaaSter, Functions as a Service at Netflix
Going FaaSter, Functions as a Service at Netflix
 
Taking Docker to Dance: Continuous Delivery on AWS
Taking Docker to Dance: Continuous Delivery on AWSTaking Docker to Dance: Continuous Delivery on AWS
Taking Docker to Dance: Continuous Delivery on AWS
 
Haufe Onboarding - Fast Iterating With the MERN Stack - TEC Day 2019
Haufe Onboarding - Fast Iterating With the MERN Stack - TEC Day 2019Haufe Onboarding - Fast Iterating With the MERN Stack - TEC Day 2019
Haufe Onboarding - Fast Iterating With the MERN Stack - TEC Day 2019
 
Play Framework: async I/O with Java and Scala
Play Framework: async I/O with Java and ScalaPlay Framework: async I/O with Java and Scala
Play Framework: async I/O with Java and Scala
 
Import golang; struct microservice
Import golang; struct microserviceImport golang; struct microservice
Import golang; struct microservice
 

Recently uploaded

WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...WSO2
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastPapp Krisztián
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...Shane Coughlan
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrainmasabamasaba
 
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplatePresentation.STUDIO
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...panagenda
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024VictoriaMetrics
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfonteinmasabamasaba
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech studentsHimanshiGarg82
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is insideshinachiaurasa2
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisamasabamasaba
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...Jittipong Loespradit
 
%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benoni%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benonimasabamasaba
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...masabamasaba
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...masabamasaba
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyviewmasabamasaba
 

Recently uploaded (20)

WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the past
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
 
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
 
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
 
%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benoni%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benoni
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
 
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
 

API and Microservices Meetup - To Code or Low Code?

  • 1. Welcome to Microservices – to Code or Low Code Connected technology is fundamental to high-performing businesses Ian Vanstone IntegrationWorks Global PART 1 - Ballerina Taster A programming language for microservices integration
  • 2.
  • 4. Local logic and functions Remote calls and dependencies Old world app New world “app”
  • 5. Old world architecture New world architecture Integration is separate Integration is embedded Integration Platform
  • 6. The Integration Gap ESB, BPMN, EAI Java / Spring JavaScript / Node AGILE INTEGRATION SIMPLE
  • 7. caller hello GE T Hello World $ ballerina run hello_world_service.bal Initiating service(s) in 'hello_world_service.bal' [ballerina/http] started HTTP/WS endpoint 0.0.0.0:9090 $ curl http://localhost:9090/hello/sayHello Hello, World! import ballerina/http; import ballerina/log; service hello on new http:Listener(9090) { resource function sayHello(http:Caller caller, http:Request req) { var result = caller->respond("Hello, World!"); if (result is error) { log:printError("Error sending response", err = result); } } }
  • 8.
  • 10.
  • 11. $ ballerina openapi export ballerina_to_openapi.bal $ ballerina openapi gen-service openapi_to_ballerina.yaml -m pet_service $ ballerina openapi gen-client openapi_to_ballerina.yaml -m pet_client
  • 12. $ ballerina run hello_service.bal $ ballerina build hello_service.bal $ ballerina run hello_service.balx Ballerina Virtual Machine Lightweight runtime e.g. Simple Ballerina service which serves 500 concurrent users has a memory footprint of ~50 MB.
  • 13. import ballerina/test; @test:Config function testAssertIntEquals() { int answer = 0; int a = 5; int b = 3; answer = intAdd(a, b); test:assertEquals(answer, 8, msg = "int values not equal"); } function intAdd(int a, int b) returns (int) { return (a + b); } $ ballerina test Testing
  • 14. import ballerina/http; import ballerinax/docker; @http:ServiceConfig { basePath:"/helloWorld" } @docker:Config { registry:"docker.abc.com", name:"helloworld", tag:"v1.0" } service helloWorld on new http:Listener(9090) { resource function sayHello (http:Caller caller, http:Request request) { http:Response response = new; response.setTextPayload("Hello, World! n"); _ = caller -> respond(response); } } $ ballerina build hello_world_docker.bal $ docker run -d -p 9090:9090 docker.abc.com/helloworld:v1.0
  • 15. $ ballerina run --observe tracing.bal ballerina: started publishing tracers to Jaeger on localhost:5775 Initiating service(s) in 'ballerina-home/lib/balx/prometheus/reporter.balx' [ballerina/http] started HTTP/WS endpoint 0.0.0.0:9797 ballerina: started Prometheus HTTP endpoint 0.0.0.0:9797 Initiating service(s) in 'tracing.bal' [ballerina/http] started HTTP/WS endpoint 0.0.0.0:9234
  • 16. 1.The language 2.Language lock, stability 3.Community review of language specification 4.Language test suite 5.Merging / collapsing sequence diagrams 6.the BVM runtime, performance, etc. 7.LLVM prototype, Native compilation via LLVM 8.Longevity, stability, performance optimizations 9.Build system rationalization - common output 10.Build system - environment-specific builds 11.Internationalizing the grammar 12.Standard library 13.Enhance the seamless operation of cross platform behavior 14.Expand the list of supported database management systems 15.Extension / ecosystem improvements, such as Ballerina Central, registry, modules, customiza 16.Private version of Ballerina registry, powering Ballerina Central 17.Ability to write compiler extensions packaged with Ballerina modules 18.Ability to push compiled Ballerina programs into a registry (not just modules) 19.Integration related things around API gateway, message broker, transaction coordinator 20.Persistent and stateful services, ie "workflow" 21.Streaming SQL 22.API throttling support and API observability around API gateway 23.Optimize transaction model to support distributed transactions with MB 24.Transaction coordination - more coordination patterns will be introduced 25.In relation to workflow we plan checkpoint/restart, forward recoverability and compensation 26.Docker / Kubernetes compositions 27.Tooling 28.Observability integration into composer to facilitate tracing 29.Heterogeneous data transformations Current version: 0.991.0
  • 17. http://github.com/ballerina-platform/ Stack Overflow #ballerina tag https://ballerina.io/philosophy/ https://ballerina.io/downloads/ https://ballerina.io/learn/by-example/ https://ballerina.io/learn/by-guide/ https://central.ballerina.io/
  • 18. Thanks Microservices – to Code or Low Code Connected technology is fundamental to high-performing businesses Ian Vanstone IntegrationWorks Global PART 1 - Ballerina Taster A programming language for microservices integration
  • 19. Connected technology is fundamental to high-performing businesses Mark Ashcroft OutSystems PART 2 - OutSystems Low-Code… Changing the game in the world of microservices Welcome to Microservices – to Code or Low Code
  • 21. Feature List Popular Implementations UI Angular App framework Spring Containers Kubernetes State/Data Redis Connectors Lots! CI/CD Jenkins Observability Prometheus Microservices Candy Store Shopping List Lots of code + Lots of OSS + TBD integration
  • 23. Agility doesn’t need to be complex
  • 26. Founded in 2001 - Lisbon; Privately Owned FY 2018: $100M+ USD in sales; 1000 employees; growing >50% YOY 52 Countries 22 Industries 245+ Global Partners 220K+ Community Members
  • 27. OutSystems Leadership Web & Mobile Mobile App Development Platforms Q3 2018 Low-Code Dev Platforms for AD&D Professionals, Q1 2019
  • 28.
  • 29.
  • 30. 5 Day Build – 2 Developers Energy Services (sFTP) Forex Services (Restful API) Production Data (external SQL db via VPN) Insights Back Office (Notifications) Insights Mobile Application wits Open Exchange Rates Production Db Connector Apps External Systems Core Apps
  • 32. Microservices Shopping List Requirement Microservices Implementation OutSystems UI Angular OOTB Web & Mobile App framework Spring OOTB Orchestration Kubernetes OOTB State/Data Redis OOTB Connectors Lots! OOTB & CI/CD Jenkins OOTB and consumable (Lifetime Applications) Observability Prometheus OOTB and consumable (Lifetime Analytics)
  • 34. If you would like us to come and talk with your team, just reach out to ian.vanstone@integration.works