SlideShare une entreprise Scribd logo
1  sur  29
Télécharger pour lire hors ligne
Sameera Jayasoma
@sameerajayasoma
WSO2
Microservices with Ballerina
Open Source Summit 2019
● The problem
● How Ballerina attempts to solves it
● Demo
○ Write a microservice in Ballerina
○ Deploy to Docker
○ Deploy to Kubernetes
○ Sequence diagrams
● What makes Ballerina unique for writing microservices
● Ballerina Platform
The problem
Everything is
An Endpoint
Functions
APIs
Data
SaaS apps
Legacy apps
Devices
Bazillion SaaS services to use
Everything you make is useful to someone else
Need for agility
● It isn’t easy
● The challenges include
○ Compensation
○ Transactions
○ Events
○ Circuit breakers
○ Discovery
○ Protocol handling
○ Various message formats
● These are all hard problems
● Many messages are exchanged between endpoints
● Typically schemas describe these messages
● Data binding converts these messages into types/values in programming
languages
● Creates a lot of friction for application that exchange messages
● Requires a lightweight thread implementation to maximize the usage of
computing resources
● Software unit of concurrency (thread) vs domain’s unit of concurrency
(user, transaction, interaction)
● Inefficient to match the scale of domain’s unit of concurrency with kernel
threads.
Microservices with Ballerina
● With existing frameworks and languages
○ For the work we do with customer at WSO2
● They don’t provide right abstractions for the job
“A programming language for
network-distributed applications”
● Not a DSL
● Full programming language with rich set of general purpose features
● General purpose features are optimized for “network distributed
applications”
● Almost all existing programming languages designed for a world where the
normal case is to integrate components running on one machine
● In the cloud world, the normal way for a program to interact with its
environment is over the network
● Not a systems-level programming language
● Easy to write and modify is more important than squeezing the ultimate
compute performance
● Suitable for application programmers
● Works for Mort, Elvis and Einstein
● Familiar
● Pragmatic
○ not a research language
● Readability
● Design language together with platform
Demo
What makes Ballerina unique as a
programming language
● Providing and consuming services
○ first-class language concepts with their own syntax and semantics, not a library
○ inherently concurrent
● Sequence diagrams
○ graphical view of most fundamental aspect of the semantics of a network distributed
application
○ sequence diagram view only possible because syntax and semantics of the language were
designed to enable it
○ higher-level concurrency abstraction
○ message sends/receives are matched up at compile-time
● Ballerina has chosen pragmatic point on the typing spectrum
○ Too static leads to inflexibility and/or complexity
○ Too dynamic means unreliable and poor IDE experience
● Structural types
○ Describes shape/structure of values
● Semantic subtyping
○ Types are just sets of values
● Untagged unions
○ Allows for choice of A or B
● No type hierarchies
● Most similar to TypeScript
● Errors are normal part of network programming (one reason why "network
transparent" does not work)
● Errors handled as part of normal control flow
● Error is a separate data type
● Possibility of errors described by type system in same way as rest of the
language
● Leverages untagged unions
● Provides a lightweight thread implementation called “strands”
Ballerina Platform
● Collection of tools that helps you to develop, build, test, run and deploy
programs written in Ballerina.
○ A language specification
○ Compiler and runtime
○ A set of standard libraries
○ Ballerina tool — the build tool++
○ A centralized module management architecture
○ LSP implementation, IDE plugins
○ and many more…
● One that produces Java bytecode
○ Java interoperability is provided
● One that produces platform-specific binaries
○ Not production ready yet
● Ballerina is an attempt to build a modern application development
programming language
○ For a future with lots of network endpoints
● Abstractions for providing and consuming services
● Type system is designed to make network data processing easier
● Framework to encourage more secure code
● Fully open source and developed openly
Learn more
Open source
Get support
http://ballerina.io
Stack Overflow #ballerina tag
Contact me ;-) sameera@wso2.com @sameerajayasoma

Contenu connexe

Tendances

Creating a Scalable and Decentralized API Management Architecture with WSO2 A...
Creating a Scalable and Decentralized API Management Architecture with WSO2 A...Creating a Scalable and Decentralized API Management Architecture with WSO2 A...
Creating a Scalable and Decentralized API Management Architecture with WSO2 A...
WSO2
 

Tendances (20)

API Management for GraphQL
API Management for GraphQLAPI Management for GraphQL
API Management for GraphQL
 
CSV and JSON Transformation in WSO2 Micro Integrator 4.0 - WSO2 APIM Communit...
CSV and JSON Transformation in WSO2 Micro Integrator 4.0 - WSO2 APIM Communit...CSV and JSON Transformation in WSO2 Micro Integrator 4.0 - WSO2 APIM Communit...
CSV and JSON Transformation in WSO2 Micro Integrator 4.0 - WSO2 APIM Communit...
 
Rate Limiting GQLs Using Depth and Complexity Analysis
Rate Limiting GQLs Using Depth and Complexity AnalysisRate Limiting GQLs Using Depth and Complexity Analysis
Rate Limiting GQLs Using Depth and Complexity Analysis
 
[WSO2 Integration Summit Stuttgart 2019] Role of Integration in an API Driven...
[WSO2 Integration Summit Stuttgart 2019] Role of Integration in an API Driven...[WSO2 Integration Summit Stuttgart 2019] Role of Integration in an API Driven...
[WSO2 Integration Summit Stuttgart 2019] Role of Integration in an API Driven...
 
[Workshop] API Management in Microservices Architecture
[Workshop] API Management in Microservices Architecture[Workshop] API Management in Microservices Architecture
[Workshop] API Management in Microservices Architecture
 
Continuous Integration and Continuous Deployment (CI/CD) with WSO2 Enterprise...
Continuous Integration and Continuous Deployment (CI/CD) with WSO2 Enterprise...Continuous Integration and Continuous Deployment (CI/CD) with WSO2 Enterprise...
Continuous Integration and Continuous Deployment (CI/CD) with WSO2 Enterprise...
 
WSO2- OSC Korea - Accelerating Digital Businesses with APIs
WSO2- OSC Korea - Accelerating Digital Businesses with APIsWSO2- OSC Korea - Accelerating Digital Businesses with APIs
WSO2- OSC Korea - Accelerating Digital Businesses with APIs
 
[WSO2 Summit APAC 2020} Creating Smart Endpoints Using Integration Microservices
[WSO2 Summit APAC 2020} Creating Smart Endpoints Using Integration Microservices[WSO2 Summit APAC 2020} Creating Smart Endpoints Using Integration Microservices
[WSO2 Summit APAC 2020} Creating Smart Endpoints Using Integration Microservices
 
[WSO2 Integration Summit Nairobi 2019] Emerging Architecture Patterns: API-ce...
[WSO2 Integration Summit Nairobi 2019] Emerging Architecture Patterns: API-ce...[WSO2 Integration Summit Nairobi 2019] Emerging Architecture Patterns: API-ce...
[WSO2 Integration Summit Nairobi 2019] Emerging Architecture Patterns: API-ce...
 
Presentation at the 2016 Linux Foundation Collab Summit
Presentation at the 2016 Linux Foundation Collab SummitPresentation at the 2016 Linux Foundation Collab Summit
Presentation at the 2016 Linux Foundation Collab Summit
 
[WSO2 Integration Summit San Francisco 2019] Ballerina - Cloud Native Middlew...
[WSO2 Integration Summit San Francisco 2019] Ballerina - Cloud Native Middlew...[WSO2 Integration Summit San Francisco 2019] Ballerina - Cloud Native Middlew...
[WSO2 Integration Summit San Francisco 2019] Ballerina - Cloud Native Middlew...
 
[WSO2 Integration Summit Stuttgart 2019] Decentralizing APIs for Agile Busine...
[WSO2 Integration Summit Stuttgart 2019] Decentralizing APIs for Agile Busine...[WSO2 Integration Summit Stuttgart 2019] Decentralizing APIs for Agile Busine...
[WSO2 Integration Summit Stuttgart 2019] Decentralizing APIs for Agile Busine...
 
Creating a Scalable and Decentralized API Management Architecture with WSO2 A...
Creating a Scalable and Decentralized API Management Architecture with WSO2 A...Creating a Scalable and Decentralized API Management Architecture with WSO2 A...
Creating a Scalable and Decentralized API Management Architecture with WSO2 A...
 
API Management 101: The New API Experience with WSO2
API Management 101: The New API Experience with WSO2API Management 101: The New API Experience with WSO2
API Management 101: The New API Experience with WSO2
 
API Management for GraphQL
API Management for GraphQLAPI Management for GraphQL
API Management for GraphQL
 
[APIdays INTERFACE 2021] Now that we have K8s, can we stop re-inventing API p...
[APIdays INTERFACE 2021] Now that we have K8s, can we stop re-inventing API p...[APIdays INTERFACE 2021] Now that we have K8s, can we stop re-inventing API p...
[APIdays INTERFACE 2021] Now that we have K8s, can we stop re-inventing API p...
 
APIdays Helsinki 2019 - The Future of the Dynamic Application Server, NGINX U...
APIdays Helsinki 2019 - The Future of the Dynamic Application Server, NGINX U...APIdays Helsinki 2019 - The Future of the Dynamic Application Server, NGINX U...
APIdays Helsinki 2019 - The Future of the Dynamic Application Server, NGINX U...
 
[APIdays Paris 2019] API Management in Service Mesh Using Istio and WSO2 API ...
[APIdays Paris 2019] API Management in Service Mesh Using Istio and WSO2 API ...[APIdays Paris 2019] API Management in Service Mesh Using Istio and WSO2 API ...
[APIdays Paris 2019] API Management in Service Mesh Using Istio and WSO2 API ...
 
How to Build a Scalable, Distributed, Multi-Cloud API Architecture on Kubernetes
How to Build a Scalable, Distributed, Multi-Cloud API Architecture on KubernetesHow to Build a Scalable, Distributed, Multi-Cloud API Architecture on Kubernetes
How to Build a Scalable, Distributed, Multi-Cloud API Architecture on Kubernetes
 
[WSO2Con EU 2018] OpenAPI Specification 3 - The Evolution of Swagger
[WSO2Con EU 2018] OpenAPI Specification 3 - The Evolution of Swagger[WSO2Con EU 2018] OpenAPI Specification 3 - The Evolution of Swagger
[WSO2Con EU 2018] OpenAPI Specification 3 - The Evolution of Swagger
 

Similaire à [Open Source Summit 2019] Microservices with Ballerina

Modified.net overview
Modified.net overviewModified.net overview
Modified.net overview
Faisal Aziz
 

Similaire à [Open Source Summit 2019] Microservices with Ballerina (20)

Ballerina cloud native middleware as a programming language | Yenlo - WSO2 In...
Ballerina cloud native middleware as a programming language | Yenlo - WSO2 In...Ballerina cloud native middleware as a programming language | Yenlo - WSO2 In...
Ballerina cloud native middleware as a programming language | Yenlo - WSO2 In...
 
[Women in Tech Global Conference - 2022]Cloud-Native Middleware as a Programm...
[Women in Tech Global Conference - 2022]Cloud-Native Middleware as a Programm...[Women in Tech Global Conference - 2022]Cloud-Native Middleware as a Programm...
[Women in Tech Global Conference - 2022]Cloud-Native Middleware as a Programm...
 
[DeveloperWeek Cloud - 2022]Programming language Designed for Cloud Native Ap...
[DeveloperWeek Cloud - 2022]Programming language Designed for Cloud Native Ap...[DeveloperWeek Cloud - 2022]Programming language Designed for Cloud Native Ap...
[DeveloperWeek Cloud - 2022]Programming language Designed for Cloud Native Ap...
 
Ballerina Tutorial @ SummerSOC 2019
Ballerina Tutorial @ SummerSOC 2019Ballerina Tutorial @ SummerSOC 2019
Ballerina Tutorial @ SummerSOC 2019
 
Visual Basic User Interface-III
Visual Basic User Interface-IIIVisual Basic User Interface-III
Visual Basic User Interface-III
 
Integration Microservices
Integration MicroservicesIntegration Microservices
Integration Microservices
 
sl slides-unit-1.pptx
sl slides-unit-1.pptxsl slides-unit-1.pptx
sl slides-unit-1.pptx
 
Go at uber
Go at uberGo at uber
Go at uber
 
Parallel language and compiler
Parallel language and compilerParallel language and compiler
Parallel language and compiler
 
The Fn Project: A Quick Introduction (December 2017)
The Fn Project: A Quick Introduction (December 2017)The Fn Project: A Quick Introduction (December 2017)
The Fn Project: A Quick Introduction (December 2017)
 
Computer programming programming_langugages
Computer programming programming_langugagesComputer programming programming_langugages
Computer programming programming_langugages
 
computer-science_engineering_principles-of-programming-languages_introduction...
computer-science_engineering_principles-of-programming-languages_introduction...computer-science_engineering_principles-of-programming-languages_introduction...
computer-science_engineering_principles-of-programming-languages_introduction...
 
.Net framework
.Net framework.Net framework
.Net framework
 
Modified.net overview
Modified.net overviewModified.net overview
Modified.net overview
 
Asp.net new
Asp.net newAsp.net new
Asp.net new
 
LAS16-108: JerryScript and other scripting languages for IoT
LAS16-108: JerryScript and other scripting languages for IoTLAS16-108: JerryScript and other scripting languages for IoT
LAS16-108: JerryScript and other scripting languages for IoT
 
Top 10 programming languages
Top 10 programming languagesTop 10 programming languages
Top 10 programming languages
 
Yotpo microservices
Yotpo microservicesYotpo microservices
Yotpo microservices
 
Software development, mobile platforms, cloud services - Lean Development and...
Software development, mobile platforms, cloud services - Lean Development and...Software development, mobile platforms, cloud services - Lean Development and...
Software development, mobile platforms, cloud services - Lean Development and...
 
Programming Languages Categories / Programming Paradigm By: Prof. Lili Saghafi
Programming Languages Categories / Programming Paradigm By: Prof. Lili Saghafi Programming Languages Categories / Programming Paradigm By: Prof. Lili Saghafi
Programming Languages Categories / Programming Paradigm By: Prof. Lili Saghafi
 

Plus de WSO2

Plus de WSO2 (20)

Driving Innovation: Scania's API Revolution with WSO2
Driving Innovation: Scania's API Revolution with WSO2Driving Innovation: Scania's API Revolution with WSO2
Driving Innovation: Scania's API Revolution with WSO2
 
Less Is More: Utilizing Ballerina to Architect a Cloud Data Platform
Less Is More: Utilizing Ballerina to Architect a Cloud Data PlatformLess Is More: Utilizing Ballerina to Architect a Cloud Data Platform
Less Is More: Utilizing Ballerina to Architect a Cloud Data Platform
 
Modernizing Legacy Systems Using Ballerina
Modernizing Legacy Systems Using BallerinaModernizing Legacy Systems Using Ballerina
Modernizing Legacy Systems Using Ballerina
 
WSO2CON 2024 - Unlocking the Identity: Embracing CIAM 2.0 for a Competitive A...
WSO2CON 2024 - Unlocking the Identity: Embracing CIAM 2.0 for a Competitive A...WSO2CON 2024 - Unlocking the Identity: Embracing CIAM 2.0 for a Competitive A...
WSO2CON 2024 - Unlocking the Identity: Embracing CIAM 2.0 for a Competitive A...
 
WSO2CON 2024 Slides - Unlocking Value with AI
WSO2CON 2024 Slides - Unlocking Value with AIWSO2CON 2024 Slides - Unlocking Value with AI
WSO2CON 2024 Slides - Unlocking Value with AI
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
Quantum Leap in Next-Generation Computing
Quantum Leap in Next-Generation ComputingQuantum Leap in Next-Generation Computing
Quantum Leap in Next-Generation Computing
 
WSO2CON 2024 - Elevating the Integration Game to the Cloud
WSO2CON 2024 - Elevating the Integration Game to the CloudWSO2CON 2024 - Elevating the Integration Game to the Cloud
WSO2CON 2024 - Elevating the Integration Game to the Cloud
 
WSO2CON 2024 - OSU & WSO2: A Decade Journey in Integration & Innovation
WSO2CON 2024 - OSU & WSO2: A Decade Journey in Integration & InnovationWSO2CON 2024 - OSU & WSO2: A Decade Journey in Integration & Innovation
WSO2CON 2024 - OSU & WSO2: A Decade Journey in Integration & Innovation
 
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open SourceWSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
 
WSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaSWSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaS
 
WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?
 
WSO2CON 2024 - IoT Needs CIAM: The Importance of Centralized IAM in a Growing...
WSO2CON 2024 - IoT Needs CIAM: The Importance of Centralized IAM in a Growing...WSO2CON 2024 - IoT Needs CIAM: The Importance of Centralized IAM in a Growing...
WSO2CON 2024 - IoT Needs CIAM: The Importance of Centralized IAM in a Growing...
 
WSO2CON 2024 - Architecting AI in the Enterprise: APIs and Applications
WSO2CON 2024 - Architecting AI in the Enterprise: APIs and ApplicationsWSO2CON 2024 - Architecting AI in the Enterprise: APIs and Applications
WSO2CON 2024 - Architecting AI in the Enterprise: APIs and Applications
 
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
 
WSO2CON 2024 - Software Engineering for Digital Businesses
WSO2CON 2024 - Software Engineering for Digital BusinessesWSO2CON 2024 - Software Engineering for Digital Businesses
WSO2CON 2024 - Software Engineering for Digital Businesses
 
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
 
WSO2CON 2024 - Designing Event-Driven Enterprises: Stories of Transformation
WSO2CON 2024 - Designing Event-Driven Enterprises: Stories of TransformationWSO2CON 2024 - Designing Event-Driven Enterprises: Stories of Transformation
WSO2CON 2024 - Designing Event-Driven Enterprises: Stories of Transformation
 
WSO2CON 2024 - Not Just Microservices: Rightsize Your Services!
WSO2CON 2024 - Not Just Microservices: Rightsize Your Services!WSO2CON 2024 - Not Just Microservices: Rightsize Your Services!
WSO2CON 2024 - Not Just Microservices: Rightsize Your Services!
 
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...
 

Dernier

Dernier (20)

The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 

[Open Source Summit 2019] Microservices with Ballerina

  • 2. ● The problem ● How Ballerina attempts to solves it ● Demo ○ Write a microservice in Ballerina ○ Deploy to Docker ○ Deploy to Kubernetes ○ Sequence diagrams ● What makes Ballerina unique for writing microservices ● Ballerina Platform
  • 4.
  • 6. Bazillion SaaS services to use Everything you make is useful to someone else Need for agility
  • 7.
  • 8. ● It isn’t easy ● The challenges include ○ Compensation ○ Transactions ○ Events ○ Circuit breakers ○ Discovery ○ Protocol handling ○ Various message formats ● These are all hard problems
  • 9. ● Many messages are exchanged between endpoints ● Typically schemas describe these messages ● Data binding converts these messages into types/values in programming languages ● Creates a lot of friction for application that exchange messages
  • 10. ● Requires a lightweight thread implementation to maximize the usage of computing resources ● Software unit of concurrency (thread) vs domain’s unit of concurrency (user, transaction, interaction) ● Inefficient to match the scale of domain’s unit of concurrency with kernel threads.
  • 12. ● With existing frameworks and languages ○ For the work we do with customer at WSO2 ● They don’t provide right abstractions for the job
  • 13. “A programming language for network-distributed applications”
  • 14. ● Not a DSL ● Full programming language with rich set of general purpose features ● General purpose features are optimized for “network distributed applications”
  • 15. ● Almost all existing programming languages designed for a world where the normal case is to integrate components running on one machine ● In the cloud world, the normal way for a program to interact with its environment is over the network
  • 16. ● Not a systems-level programming language ● Easy to write and modify is more important than squeezing the ultimate compute performance ● Suitable for application programmers
  • 17. ● Works for Mort, Elvis and Einstein ● Familiar ● Pragmatic ○ not a research language ● Readability ● Design language together with platform
  • 18. Demo
  • 19. What makes Ballerina unique as a programming language
  • 20. ● Providing and consuming services ○ first-class language concepts with their own syntax and semantics, not a library ○ inherently concurrent ● Sequence diagrams ○ graphical view of most fundamental aspect of the semantics of a network distributed application ○ sequence diagram view only possible because syntax and semantics of the language were designed to enable it ○ higher-level concurrency abstraction ○ message sends/receives are matched up at compile-time
  • 21. ● Ballerina has chosen pragmatic point on the typing spectrum ○ Too static leads to inflexibility and/or complexity ○ Too dynamic means unreliable and poor IDE experience
  • 22. ● Structural types ○ Describes shape/structure of values ● Semantic subtyping ○ Types are just sets of values ● Untagged unions ○ Allows for choice of A or B ● No type hierarchies ● Most similar to TypeScript
  • 23. ● Errors are normal part of network programming (one reason why "network transparent" does not work) ● Errors handled as part of normal control flow ● Error is a separate data type ● Possibility of errors described by type system in same way as rest of the language ● Leverages untagged unions
  • 24. ● Provides a lightweight thread implementation called “strands”
  • 26. ● Collection of tools that helps you to develop, build, test, run and deploy programs written in Ballerina. ○ A language specification ○ Compiler and runtime ○ A set of standard libraries ○ Ballerina tool — the build tool++ ○ A centralized module management architecture ○ LSP implementation, IDE plugins ○ and many more…
  • 27. ● One that produces Java bytecode ○ Java interoperability is provided ● One that produces platform-specific binaries ○ Not production ready yet
  • 28. ● Ballerina is an attempt to build a modern application development programming language ○ For a future with lots of network endpoints ● Abstractions for providing and consuming services ● Type system is designed to make network data processing easier ● Framework to encourage more secure code ● Fully open source and developed openly
  • 29. Learn more Open source Get support http://ballerina.io Stack Overflow #ballerina tag Contact me ;-) sameera@wso2.com @sameerajayasoma