SlideShare a Scribd company logo
1 of 19
Download to read offline
Cloud-Native Middleware as a Programming Language
Anupama Pathirage
June 2022
Source : https://snarky.ca/the-key-challenges-in-designing-a-programming-language/
Source : IBM cloud native development report
In this session
Why we need a new programming language?
What is Ballerina?
Key features of Ballerina
Demo - Develop a REST service using Ballerina
Open source contributions to Ballerina
Application development process
● Write code to integrate many systems
● Test and document the code
● Build and package into Docker
● Write deployment descriptors
● API management and security
● Scaling and performance
● Observe the usages and analytics
● Adjust and redeploy
Why we need a new programming language?
○ Better network abstractions
○ Better support for data representation
○ Network aware type system
○ 1st Class support for a wide spectrum of network protocols
○ Ability to handle concurrency easily
○ Cloud friendliness
○ Visual representations for the full picture
○ Should be a complete platform, not just a language
What is Ballerina?
○ Started in 2016 by WSO2.
○ A general-purpose programming language.
○ Specializes in solving integration & cloud-based problems by providing the
right level of language abstractions and tools.
○ Open-source project and driven by the community.
What is Ballerina?
○ Data-Oriented
○ Language has objects, the development methods are not completely OOP-based.
○ Both objects and functions are first class concepts, giving developers the ability to choose
the best option based on their requirements.
○ Primary focus is on represent, describe, communicate pure data.
○ Compiled
○ Flexibly typed
○ Concurrent
○ Ballerina is NOT a JVM language. It has two implementations.
○ jBallerina - written in java to run on top of JVM. This is the first implementation to prove
the language.
○ nBallerina - Compiled using LLVM, directly to the platform architecture.
Ballerina Provides Network Abstractions
○ Provides abstractions for both network
services and network clients.
○ For clients - Client objects with remote
methods to represent outbound network
messages
○ For services - Service objects
○ A remote method on a service object
represents a network-callable method.
○ A resource method, which enables a
more data-oriented view of services.
○ Incoming network messages are
dispatched to service objects by using
objects implementing the
language-defined Listener type.
Ballerina has Network-Aware Data & Type System
● Ballerina’s type system is specifically focused
on aiding the development of networked and
distributed applications.
● Plain Data
○ Messages exchanged by network
protocols are represented by plain
data
○ This is called anydata in Ballerina
○ Can be directly serialized to and from
JSON in a simple, natural way.
● Ballerina has a structural type system
○ Type compatibility is identified by
considering the structure of the value
rather than just relying on the name of
the type.
Code to Cloud with Ballerina
● Ballerina provides a unique developer
experience to move from code to cloud.
● The Ballerina compiler can be extended to
read the source code and generate artifacts
to deploy your code into different clouds.
● These artifacts can be Dockerfiles, Docker
images, Kubernetes YAML files, or serverless
functions.
● Building the source with
○ bal build --cloud=k8s Generate the
Kubernetes YAML files and Docker image
○ bal build --cloud=docker
Generate the Docker image and Dockerfile
Ballerina is Concurrent, Reliable & Maintainable
● With more and more applications needing to
support network interaction, concurrency
becomes important for handling scale.
○ Asynchronous function calls - calls a function
asynchronously and the function runs on a
separate logical thread
○ Workers - Represents a single strand of a
function invocation.
○ A strand is a logical thread of control assigned
to every worker, which is multitasked
cooperatively instead of preemptively.
● Ballerina runtime has built-in support for
interacting with a transaction manager.
○ language provides syntax for delimiting
transactions.
Ballerina Provides Sequence Diagram
Ballerina is a Platform
Ballerina has:
- "The language" - This is the core and it's the part that's defined in the
language specification.
- "Platform" - The language has been designed in conjunction with key
components of the surrounding ecosystem
The platform includes:
● a standard library
● a centralized module repository, and the tooling needed to support that
● a documentation system (based on Markdown)
● a testing framework
● extensions/plug-ins for popular IDEs (notably Visual Studio Code).
All batteries included
Auth
Cache
Crypto
Log
io
time
Demo
Search for Books and Movie Data
Contributing to Ballerina
Ballerina has:
○ https://ballerina-platform.slack.com/
○ - - https://groups.google.com/g/ballerina-dev
○ https://github.com/ballerina-platform/
Thank You

More Related Content

Similar to [Women in Tech Global Conference - 2022]Cloud-Native Middleware as a Programming Language

Megha_Smriti_resume
Megha_Smriti_resumeMegha_Smriti_resume
Megha_Smriti_resume
megha smriti
 
4. CNCF kubernetes Comparison of-existing-cni-plugins-for-kubernetes
4. CNCF kubernetes Comparison of-existing-cni-plugins-for-kubernetes4. CNCF kubernetes Comparison of-existing-cni-plugins-for-kubernetes
4. CNCF kubernetes Comparison of-existing-cni-plugins-for-kubernetes
Juraj Hantak
 

Similar to [Women in Tech Global Conference - 2022]Cloud-Native Middleware as a Programming Language (20)

Netflix Architecture and Open Source
Netflix Architecture and Open SourceNetflix Architecture and Open Source
Netflix Architecture and Open Source
 
Megha_Smriti_resume
Megha_Smriti_resumeMegha_Smriti_resume
Megha_Smriti_resume
 
Cloud Native Application Integration With APIs
Cloud Native Application Integration With APIsCloud Native Application Integration With APIs
Cloud Native Application Integration With APIs
 
Cloud Native Applications on Kubernetes: a DevOps Approach
Cloud Native Applications on Kubernetes: a DevOps ApproachCloud Native Applications on Kubernetes: a DevOps Approach
Cloud Native Applications on Kubernetes: a DevOps Approach
 
Docker microservices and the service mesh
Docker microservices and the service meshDocker microservices and the service mesh
Docker microservices and the service mesh
 
The Role of Integration in Microservice Architecture (MSA)
The Role of Integration in Microservice Architecture (MSA)The Role of Integration in Microservice Architecture (MSA)
The Role of Integration in Microservice Architecture (MSA)
 
Triangle Devops Meetup 10/2015
Triangle Devops Meetup 10/2015Triangle Devops Meetup 10/2015
Triangle Devops Meetup 10/2015
 
AirBNB's ML platform - BigHead
AirBNB's ML platform - BigHeadAirBNB's ML platform - BigHead
AirBNB's ML platform - BigHead
 
Bighead: Airbnb’s End-to-End Machine Learning Platform with Krishna Puttaswa...
 Bighead: Airbnb’s End-to-End Machine Learning Platform with Krishna Puttaswa... Bighead: Airbnb’s End-to-End Machine Learning Platform with Krishna Puttaswa...
Bighead: Airbnb’s End-to-End Machine Learning Platform with Krishna Puttaswa...
 
LINE's Private Cloud - Meet Cloud Native World
LINE's Private Cloud - Meet Cloud Native WorldLINE's Private Cloud - Meet Cloud Native World
LINE's Private Cloud - Meet Cloud Native World
 
CN_Simplifiedv1.pptx
CN_Simplifiedv1.pptxCN_Simplifiedv1.pptx
CN_Simplifiedv1.pptx
 
What's new in ASP.NET vNext
What's new in ASP.NET vNextWhat's new in ASP.NET vNext
What's new in ASP.NET vNext
 
Portable batch and streaming pipelines with Apache Beam (Big Data Application...
Portable batch and streaming pipelines with Apache Beam (Big Data Application...Portable batch and streaming pipelines with Apache Beam (Big Data Application...
Portable batch and streaming pipelines with Apache Beam (Big Data Application...
 
Go at uber
Go at uberGo at uber
Go at uber
 
4. CNCF kubernetes Comparison of-existing-cni-plugins-for-kubernetes
4. CNCF kubernetes Comparison of-existing-cni-plugins-for-kubernetes4. CNCF kubernetes Comparison of-existing-cni-plugins-for-kubernetes
4. CNCF kubernetes Comparison of-existing-cni-plugins-for-kubernetes
 
Kubernetes Networking - Sreenivas Makam - Google - CC18
Kubernetes Networking - Sreenivas Makam - Google - CC18Kubernetes Networking - Sreenivas Makam - Google - CC18
Kubernetes Networking - Sreenivas Makam - Google - CC18
 
Deep dive into Kubernetes Networking
Deep dive into Kubernetes NetworkingDeep dive into Kubernetes Networking
Deep dive into Kubernetes Networking
 
Docker, Microservices, and the Service Mesh
Docker, Microservices, and the Service MeshDocker, Microservices, and the Service Mesh
Docker, Microservices, and the Service Mesh
 
stackconf 2020 | The path to a Serverless-native era with Kubernetes by Paolo...
stackconf 2020 | The path to a Serverless-native era with Kubernetes by Paolo...stackconf 2020 | The path to a Serverless-native era with Kubernetes by Paolo...
stackconf 2020 | The path to a Serverless-native era with Kubernetes by Paolo...
 
Comparison of existing cni plugins for kubernetes
Comparison of existing cni plugins for kubernetesComparison of existing cni plugins for kubernetes
Comparison of existing cni plugins for kubernetes
 

Recently uploaded

Call Girls In Bangalore ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Bangalore ☎ 7737669865 🥵 Book Your One night StandCall Girls In Bangalore ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Bangalore ☎ 7737669865 🥵 Book Your One night Stand
amitlee9823
 
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
Christo Ananth
 
AKTU Computer Networks notes --- Unit 3.pdf
AKTU Computer Networks notes ---  Unit 3.pdfAKTU Computer Networks notes ---  Unit 3.pdf
AKTU Computer Networks notes --- Unit 3.pdf
ankushspencer015
 
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
ssuser89054b
 
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
dharasingh5698
 

Recently uploaded (20)

Double rodded leveling 1 pdf activity 01
Double rodded leveling 1 pdf activity 01Double rodded leveling 1 pdf activity 01
Double rodded leveling 1 pdf activity 01
 
Call Girls In Bangalore ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Bangalore ☎ 7737669865 🥵 Book Your One night StandCall Girls In Bangalore ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Bangalore ☎ 7737669865 🥵 Book Your One night Stand
 
Thermal Engineering Unit - I & II . ppt
Thermal Engineering  Unit - I & II . pptThermal Engineering  Unit - I & II . ppt
Thermal Engineering Unit - I & II . ppt
 
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
 
Bhosari ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready For ...
Bhosari ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready For ...Bhosari ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready For ...
Bhosari ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready For ...
 
(INDIRA) Call Girl Meerut Call Now 8617697112 Meerut Escorts 24x7
(INDIRA) Call Girl Meerut Call Now 8617697112 Meerut Escorts 24x7(INDIRA) Call Girl Meerut Call Now 8617697112 Meerut Escorts 24x7
(INDIRA) Call Girl Meerut Call Now 8617697112 Meerut Escorts 24x7
 
Unleashing the Power of the SORA AI lastest leap
Unleashing the Power of the SORA AI lastest leapUnleashing the Power of the SORA AI lastest leap
Unleashing the Power of the SORA AI lastest leap
 
AKTU Computer Networks notes --- Unit 3.pdf
AKTU Computer Networks notes ---  Unit 3.pdfAKTU Computer Networks notes ---  Unit 3.pdf
AKTU Computer Networks notes --- Unit 3.pdf
 
PVC VS. FIBERGLASS (FRP) GRAVITY SEWER - UNI BELL
PVC VS. FIBERGLASS (FRP) GRAVITY SEWER - UNI BELLPVC VS. FIBERGLASS (FRP) GRAVITY SEWER - UNI BELL
PVC VS. FIBERGLASS (FRP) GRAVITY SEWER - UNI BELL
 
Unit 1 - Soil Classification and Compaction.pdf
Unit 1 - Soil Classification and Compaction.pdfUnit 1 - Soil Classification and Compaction.pdf
Unit 1 - Soil Classification and Compaction.pdf
 
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
 
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
 
VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...
VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...
VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...
 
(INDIRA) Call Girl Aurangabad Call Now 8617697112 Aurangabad Escorts 24x7
(INDIRA) Call Girl Aurangabad Call Now 8617697112 Aurangabad Escorts 24x7(INDIRA) Call Girl Aurangabad Call Now 8617697112 Aurangabad Escorts 24x7
(INDIRA) Call Girl Aurangabad Call Now 8617697112 Aurangabad Escorts 24x7
 
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
 
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
 
Call Girls Wakad Call Me 7737669865 Budget Friendly No Advance Booking
Call Girls Wakad Call Me 7737669865 Budget Friendly No Advance BookingCall Girls Wakad Call Me 7737669865 Budget Friendly No Advance Booking
Call Girls Wakad Call Me 7737669865 Budget Friendly No Advance Booking
 
data_management_and _data_science_cheat_sheet.pdf
data_management_and _data_science_cheat_sheet.pdfdata_management_and _data_science_cheat_sheet.pdf
data_management_and _data_science_cheat_sheet.pdf
 
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete RecordCCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
 
Booking open Available Pune Call Girls Pargaon 6297143586 Call Hot Indian Gi...
Booking open Available Pune Call Girls Pargaon  6297143586 Call Hot Indian Gi...Booking open Available Pune Call Girls Pargaon  6297143586 Call Hot Indian Gi...
Booking open Available Pune Call Girls Pargaon 6297143586 Call Hot Indian Gi...
 

[Women in Tech Global Conference - 2022]Cloud-Native Middleware as a Programming Language

  • 1. Cloud-Native Middleware as a Programming Language Anupama Pathirage June 2022
  • 3. Source : IBM cloud native development report
  • 4. In this session Why we need a new programming language? What is Ballerina? Key features of Ballerina Demo - Develop a REST service using Ballerina Open source contributions to Ballerina
  • 5. Application development process ● Write code to integrate many systems ● Test and document the code ● Build and package into Docker ● Write deployment descriptors ● API management and security ● Scaling and performance ● Observe the usages and analytics ● Adjust and redeploy
  • 6. Why we need a new programming language? ○ Better network abstractions ○ Better support for data representation ○ Network aware type system ○ 1st Class support for a wide spectrum of network protocols ○ Ability to handle concurrency easily ○ Cloud friendliness ○ Visual representations for the full picture ○ Should be a complete platform, not just a language
  • 7. What is Ballerina? ○ Started in 2016 by WSO2. ○ A general-purpose programming language. ○ Specializes in solving integration & cloud-based problems by providing the right level of language abstractions and tools. ○ Open-source project and driven by the community.
  • 8. What is Ballerina? ○ Data-Oriented ○ Language has objects, the development methods are not completely OOP-based. ○ Both objects and functions are first class concepts, giving developers the ability to choose the best option based on their requirements. ○ Primary focus is on represent, describe, communicate pure data. ○ Compiled ○ Flexibly typed ○ Concurrent ○ Ballerina is NOT a JVM language. It has two implementations. ○ jBallerina - written in java to run on top of JVM. This is the first implementation to prove the language. ○ nBallerina - Compiled using LLVM, directly to the platform architecture.
  • 9. Ballerina Provides Network Abstractions ○ Provides abstractions for both network services and network clients. ○ For clients - Client objects with remote methods to represent outbound network messages ○ For services - Service objects ○ A remote method on a service object represents a network-callable method. ○ A resource method, which enables a more data-oriented view of services. ○ Incoming network messages are dispatched to service objects by using objects implementing the language-defined Listener type.
  • 10. Ballerina has Network-Aware Data & Type System ● Ballerina’s type system is specifically focused on aiding the development of networked and distributed applications. ● Plain Data ○ Messages exchanged by network protocols are represented by plain data ○ This is called anydata in Ballerina ○ Can be directly serialized to and from JSON in a simple, natural way. ● Ballerina has a structural type system ○ Type compatibility is identified by considering the structure of the value rather than just relying on the name of the type.
  • 11. Code to Cloud with Ballerina ● Ballerina provides a unique developer experience to move from code to cloud. ● The Ballerina compiler can be extended to read the source code and generate artifacts to deploy your code into different clouds. ● These artifacts can be Dockerfiles, Docker images, Kubernetes YAML files, or serverless functions. ● Building the source with ○ bal build --cloud=k8s Generate the Kubernetes YAML files and Docker image ○ bal build --cloud=docker Generate the Docker image and Dockerfile
  • 12. Ballerina is Concurrent, Reliable & Maintainable ● With more and more applications needing to support network interaction, concurrency becomes important for handling scale. ○ Asynchronous function calls - calls a function asynchronously and the function runs on a separate logical thread ○ Workers - Represents a single strand of a function invocation. ○ A strand is a logical thread of control assigned to every worker, which is multitasked cooperatively instead of preemptively. ● Ballerina runtime has built-in support for interacting with a transaction manager. ○ language provides syntax for delimiting transactions.
  • 14. Ballerina is a Platform Ballerina has: - "The language" - This is the core and it's the part that's defined in the language specification. - "Platform" - The language has been designed in conjunction with key components of the surrounding ecosystem The platform includes: ● a standard library ● a centralized module repository, and the tooling needed to support that ● a documentation system (based on Markdown) ● a testing framework ● extensions/plug-ins for popular IDEs (notably Visual Studio Code).
  • 16. Demo
  • 17. Search for Books and Movie Data
  • 18. Contributing to Ballerina Ballerina has: ○ https://ballerina-platform.slack.com/ ○ - - https://groups.google.com/g/ballerina-dev ○ https://github.com/ballerina-platform/