SlideShare a Scribd company logo
1 of 30
Download to read offline
HTTP Services in Rust*
1Think 2018 / DOC ID / Month XX, 2018 / © 2018 IBM Corporation
@dhigit9
Anton Whalley – Cloud Technical Professional
*Focusing on Containers
2
Running Order
• Benefits of Rust for HTTP Services
• Select a Rust HTTP Framework
• Align software development process
@dhigit9
A standard way to package an application and
all its dependencies so that it can be moved
between environments and run without
changes.
Containers work by isolating the differences
between applications inside the container so
that everything outside the container can be
standardized.
The “Goldilocks of Virtualization”
Containers
IBM Cloud Kubernetes Service | ©2018 IBM Corporation
What are containers? VMs vs Containers
Containers are isolated, but share OS and, where
appropriate, bins/libraries …faster, less overhead
Host OS
Server
Guest
OS
Bins/
Libs
VM
Hypervisor (Type 2)
App
A
AppA’
Host OS
Server
Bins/Libs
AppA
Bins/Libs
AppA’
AppB’
AppB’
Container
App
A`
Guest
OS
Bins/
Libs
App
A`
Guest
OS
Bins/
Libs
App
B
Guest
OS
Bins/
Libs
App
B`
Guest
OS
Bins/
Libs
What industries do you work in using Rust Full time?
https://blog.rust-lang.org/2020/04/17/Rust-survey-2019.html
Rust Largest Use Case - Backend Web Applications
@dhigit9
6© 2020 IBM Corporation
Container Adoption Continues to Grow
@dhigit9
The Hidden Truth - Runtimes in Containers
@dhigit9
8
Runtime Mem CPU Processes/CPU
Java Spring Boot ~87Mb ~20m 50
Node.JS Express ~47Mb ~10m 100
Rust Tide ~1Mb ~1m 1000
Cold Service Resource Utilisation
https://venshare.com/blog/runtime-overhead-on-openshift/ @dhigit9
9
Deployment Density Solutions For Runtimes
isolated-vm Piscina
Java Node.js
@dhigit9
10
The Trade Off for New Runtimes
New Software Development LifeCycle
• Code Refactoring
• New Tools
New Operational Constraints
• Runtime Characteristics
• Debugging
Security Implications
Still uses GCed Runtime (Java/Node.js/Go)
@dhigit9
The Truth about GC
https://blog.discord.com/why-discord-is-switching-from-go-to-rust-a190bbca2b1f
@dhigit9
Rust Compared to GCed Runtime (Go)
https://blog.discord.com/why-discord-is-switching-from-go-to-rust-a190bbca2b1f
@dhigit9
13
• Benefits of Rust for HTTP Services ✅
• Select a HTTP Framework
• Align software development process
@dhigit9
14Think 2018 / DOC ID / Month XX, 2018 / © 2018 IBM Corporation
Select a HTTP
Framework?
Rocket
WARP
Tide
15Think 2018 / DOC ID / Month XX, 2018 / © 2018 IBM Corporation
https://www.lpalmieri.com/posts/2020-07-04-choosing-a-rust-web-framework-2020-edition/
Framework Total Downloads Daily Download
Acitx-web ~1250k ~3000
Rocket ~525k ~1000
Warp ~435k ~3000
Tide ~47k ~300
Adoption
16Think 2018 / DOC ID / Month XX, 2018 / © 2018 IBM Corporation
https://www.lpalmieri.com/posts/2020-07-04-choosing-a-rust-web-framework-2020-edition/
Runtime Total Downloads Daily Download
tokio ~9600k ~30k
async-std ~600k ~4k
Async Support
Framework Runtime
actix-web tokio
rocket (0.5.x) tokio
tide async-std
warp tokio
17Think 2018 / DOC ID / Month XX, 2018 / © 2018 IBM Corporation
https://www.lpalmieri.com/posts/2020-07-04-choosing-a-rust-web-framework-2020-edition/
Community Crates
Framework # results
rocket 178
actix-web 113
warp 57
tide 20
Actix-web Rocket
Tide Warp
Contributor Ratio
Contributor Ratio – Github commit log
19
Picking a Framework Conclusion
Align your values with the framework!
Tide
Fast and friendly HTTP server framework
Collaboration focus
Active Discord
Architecture similar to Node.js middleware
@dhigit9
20
• Benefits of Rust for HTTP Services ✅
• Select a HTTP Framework ✅
• Align software development process
@dhigit9
Problems with Kubernetes
21© 2020 IBM Corporation
I want to deploy my container-based
workloads easily, quickly and securely
to a platform that:
… dynamically scales my containers
according to load.
... has monitoring, logging and a service
mesh “built in”.
… gives me the a seemless developer
experience.
… does not “lock me in” and is built on
open-source projects.
@dhigit9https://www.youtube.com/watch?v=oNa3xK2GFKY
22Source: https://thenewstack.io/ux-is-kubernetes-biggest-short-term-challenge/
Knative addresses 4 of the top 5 pain points of Kubernetes
*Top areas the Core Kubernetes Project Needs to Address in 2020, Thenewstack
@dhigit9
Introducing Knative
Knative is a serverless 2.0 environment that extends Kubernetes
Middleware components
Modern, source-centric, and container-based applications
Can run anywhere:
on premises, in the cloud, or even in a third-party data center.
@dhigit9
• Knative vs Serverless Platforms
User defined resource management with sensible defaults
Container approach gives wider language support
No Execution Timeout
More portability options
@dhigit9
Knative overview
25
Knative overview (cont.)
26
© 2019 IBM Corporation
Appsody – Knative Software Development
Jane: Lead
Enterprise
Developer
Champ: Solution
Architect
Champ provides pre-configured application stacks
Jane selects a stack she and her team want to work with and get to work right away
Kubernetes native
CI/CD pipeline
Knative in any hybrid multicloud environment
twitter: @dhigit9
Appsody – Serverless Workflow twitter: @dhigit9
Demo
29
● Rust with Appsody Tutorial
https://appsody.dev/tutorials/ServerlessRust/
https://www.youtube.com/watch?v=asywye-eDfg
● Appsody
https://appsody.dev/
● Create your own Appsody stack tutorial
https://developer.ibm.com/technologies/containers/tutorials/create-appsody-stack/
● CNCF Serverless
https://github.com/cncf/wg-serverless/blob/master/whitepapers/serverless-
overview/cncf_serverless_whitepaper_v1.0.pdf
● IBM Cloud OpenShift
https://cloud.ibm.com/docs/openshift?topic=openshift-openshift_tutorial
● Install Knative on OpenShift
https://docs.openshift.com/container-platform/4.3/serverless/installing_serverless/installing-
knative-serving.html
Follow Up Links
30
twitter: @dhigit9

More Related Content

What's hot

Comparing Microsoft SQL Server 2019 Performance Across Various Kubernetes Pla...
Comparing Microsoft SQL Server 2019 Performance Across Various Kubernetes Pla...Comparing Microsoft SQL Server 2019 Performance Across Various Kubernetes Pla...
Comparing Microsoft SQL Server 2019 Performance Across Various Kubernetes Pla...
DevOps.com
 

What's hot (20)

KubeCon + CloudNativeCon Barcelona and Shanghai 2019 - Highlights
KubeCon + CloudNativeCon Barcelona and Shanghai 2019 - HighlightsKubeCon + CloudNativeCon Barcelona and Shanghai 2019 - Highlights
KubeCon + CloudNativeCon Barcelona and Shanghai 2019 - Highlights
 
Curated "Cloud Design Patterns" for Call Center Platforms
Curated "Cloud Design Patterns" for Call Center PlatformsCurated "Cloud Design Patterns" for Call Center Platforms
Curated "Cloud Design Patterns" for Call Center Platforms
 
Deploying NGINX in Cloud Native Kubernetes
Deploying NGINX in Cloud Native KubernetesDeploying NGINX in Cloud Native Kubernetes
Deploying NGINX in Cloud Native Kubernetes
 
Workshop: Develop Serverless Applications with IBM Cloud Functions
Workshop: Develop Serverless Applications with IBM Cloud FunctionsWorkshop: Develop Serverless Applications with IBM Cloud Functions
Workshop: Develop Serverless Applications with IBM Cloud Functions
 
Serverless Architectures in Banking: OpenWhisk on IBM Bluemix at Santander
Serverless Architectures in Banking: OpenWhisk on IBM Bluemix at SantanderServerless Architectures in Banking: OpenWhisk on IBM Bluemix at Santander
Serverless Architectures in Banking: OpenWhisk on IBM Bluemix at Santander
 
Kubestr browse2021.pptx
Kubestr browse2021.pptxKubestr browse2021.pptx
Kubestr browse2021.pptx
 
Loadbalancers: The fabric for your micro services
Loadbalancers: The fabric for your micro servicesLoadbalancers: The fabric for your micro services
Loadbalancers: The fabric for your micro services
 
MesosCon 2016 - minimesos, the experimentation and testing tool for Apache Mesos
MesosCon 2016 - minimesos, the experimentation and testing tool for Apache MesosMesosCon 2016 - minimesos, the experimentation and testing tool for Apache Mesos
MesosCon 2016 - minimesos, the experimentation and testing tool for Apache Mesos
 
Load Balancing for Containers and Cloud Native Architecture
Load Balancing for Containers and Cloud Native ArchitectureLoad Balancing for Containers and Cloud Native Architecture
Load Balancing for Containers and Cloud Native Architecture
 
Comparing Microsoft SQL Server 2019 Performance Across Various Kubernetes Pla...
Comparing Microsoft SQL Server 2019 Performance Across Various Kubernetes Pla...Comparing Microsoft SQL Server 2019 Performance Across Various Kubernetes Pla...
Comparing Microsoft SQL Server 2019 Performance Across Various Kubernetes Pla...
 
Event specifications, state of the serverless landscape, and other news from ...
Event specifications, state of the serverless landscape, and other news from ...Event specifications, state of the serverless landscape, and other news from ...
Event specifications, state of the serverless landscape, and other news from ...
 
Getting Started with Kafka on k8s
Getting Started with Kafka on k8sGetting Started with Kafka on k8s
Getting Started with Kafka on k8s
 
App Mod 02: A developer intro to open shift
App Mod 02: A developer intro to open shiftApp Mod 02: A developer intro to open shift
App Mod 02: A developer intro to open shift
 
Pulling Back the Curtain – CloudStack in Private and Community Clouds
Pulling Back the Curtain –CloudStack in Private and Community CloudsPulling Back the Curtain –CloudStack in Private and Community Clouds
Pulling Back the Curtain – CloudStack in Private and Community Clouds
 
The CNCF on Serverless
The CNCF on ServerlessThe CNCF on Serverless
The CNCF on Serverless
 
Get the Exact Identity Solution You Need - In the Cloud - AWS and Beyond
Get the Exact Identity Solution You Need - In the Cloud - AWS and BeyondGet the Exact Identity Solution You Need - In the Cloud - AWS and Beyond
Get the Exact Identity Solution You Need - In the Cloud - AWS and Beyond
 
Offline-First Mobile Web Apps with PouchDB, IBM Cloudant, and IBM Bluemix
Offline-First Mobile Web Apps with PouchDB, IBM Cloudant, and IBM BluemixOffline-First Mobile Web Apps with PouchDB, IBM Cloudant, and IBM Bluemix
Offline-First Mobile Web Apps with PouchDB, IBM Cloudant, and IBM Bluemix
 
Putting The 'M' In MBaaS—Red Hat Mobile Client Development Platform (Jay Balu...
Putting The 'M' In MBaaS—Red Hat Mobile Client Development Platform (Jay Balu...Putting The 'M' In MBaaS—Red Hat Mobile Client Development Platform (Jay Balu...
Putting The 'M' In MBaaS—Red Hat Mobile Client Development Platform (Jay Balu...
 
"Kubernetes as Driver of Generic IT Automation"
"Kubernetes as Driver of Generic IT Automation""Kubernetes as Driver of Generic IT Automation"
"Kubernetes as Driver of Generic IT Automation"
 
Get the Exact Identity Solution you Need in the Cloud - Deep Dive
Get the Exact Identity Solution you Need in the Cloud - Deep DiveGet the Exact Identity Solution you Need in the Cloud - Deep Dive
Get the Exact Identity Solution you Need in the Cloud - Deep Dive
 

Similar to Http Services in Rust on Containers

Similar to Http Services in Rust on Containers (20)

Get the Exact Identity Solution You Need - In the Cloud - Overview
Get the Exact Identity Solution You Need - In the Cloud - OverviewGet the Exact Identity Solution You Need - In the Cloud - Overview
Get the Exact Identity Solution You Need - In the Cloud - Overview
 
The rise of microservices
The rise of microservicesThe rise of microservices
The rise of microservices
 
IBM Think 2020 Openshift on IBM Z and LinuxONE
IBM Think 2020 Openshift on IBM Z and LinuxONEIBM Think 2020 Openshift on IBM Z and LinuxONE
IBM Think 2020 Openshift on IBM Z and LinuxONE
 
IBM MQ in Containers - Think 2018
IBM MQ in Containers - Think 2018IBM MQ in Containers - Think 2018
IBM MQ in Containers - Think 2018
 
Serverless: Market Overview and Investment Opportunities
Serverless: Market Overview and Investment OpportunitiesServerless: Market Overview and Investment Opportunities
Serverless: Market Overview and Investment Opportunities
 
Service Mesh and Serverless Chatbots with Linkerd, K8s and OpenFaaS
Service Mesh and Serverless Chatbots with Linkerd, K8s and OpenFaaSService Mesh and Serverless Chatbots with Linkerd, K8s and OpenFaaS
Service Mesh and Serverless Chatbots with Linkerd, K8s and OpenFaaS
 
Docker - A high level introduction to dockers and containers
Docker - A high level introduction to dockers and containersDocker - A high level introduction to dockers and containers
Docker - A high level introduction to dockers and containers
 
The NRB Group mainframe day 2021 - Containerisation on Z - Paul Pilotto - Seb...
The NRB Group mainframe day 2021 - Containerisation on Z - Paul Pilotto - Seb...The NRB Group mainframe day 2021 - Containerisation on Z - Paul Pilotto - Seb...
The NRB Group mainframe day 2021 - Containerisation on Z - Paul Pilotto - Seb...
 
AWS Study Group - Chapter 04 - Hybrid Cloud Architectures [Solution Architect...
AWS Study Group - Chapter 04 - Hybrid Cloud Architectures [Solution Architect...AWS Study Group - Chapter 04 - Hybrid Cloud Architectures [Solution Architect...
AWS Study Group - Chapter 04 - Hybrid Cloud Architectures [Solution Architect...
 
IBM RedHat OCP Vs xKS.pptx
IBM RedHat OCP Vs xKS.pptxIBM RedHat OCP Vs xKS.pptx
IBM RedHat OCP Vs xKS.pptx
 
Application Modernization with PKS / Kubernetes
Application Modernization with PKS / KubernetesApplication Modernization with PKS / Kubernetes
Application Modernization with PKS / Kubernetes
 
Docker & aPaaS: Enterprise Innovation and Trends for 2015
Docker & aPaaS: Enterprise Innovation and Trends for 2015Docker & aPaaS: Enterprise Innovation and Trends for 2015
Docker & aPaaS: Enterprise Innovation and Trends for 2015
 
Discover the Linux on z Systems Effect
Discover the Linux on z Systems EffectDiscover the Linux on z Systems Effect
Discover the Linux on z Systems Effect
 
Red Hat and kubernetes: awesome stuff coming your way
Red Hat and kubernetes:  awesome stuff coming your wayRed Hat and kubernetes:  awesome stuff coming your way
Red Hat and kubernetes: awesome stuff coming your way
 
Deploying A Proof Of Stake App On IBM Cloud Using Tendermint
Deploying A Proof Of Stake App On IBM Cloud Using TendermintDeploying A Proof Of Stake App On IBM Cloud Using Tendermint
Deploying A Proof Of Stake App On IBM Cloud Using Tendermint
 
The Kubernetes WebLogic revival (part 1)
The Kubernetes WebLogic revival (part 1)The Kubernetes WebLogic revival (part 1)
The Kubernetes WebLogic revival (part 1)
 
Docker Application to Scientific Computing
Docker Application to Scientific ComputingDocker Application to Scientific Computing
Docker Application to Scientific Computing
 
Stay productive while slicing up the monolith
Stay productive while slicing up the monolithStay productive while slicing up the monolith
Stay productive while slicing up the monolith
 
InterConnect 2015: 3962 Docking DevOps
InterConnect 2015: 3962 Docking DevOpsInterConnect 2015: 3962 Docking DevOps
InterConnect 2015: 3962 Docking DevOps
 
wisecloud based open cloud implementation guide
wisecloud based open cloud implementation guidewisecloud based open cloud implementation guide
wisecloud based open cloud implementation guide
 

Recently uploaded

%+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 Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
masabamasaba
 
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
VictoriaMetrics
 
%+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
 
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...
Medical / Health Care (+971588192166) Mifepristone and Misoprostol tablets 200mg
 
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
chiefasafspells
 

Recently uploaded (20)

%+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...
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
 
%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 - API Management Usage at La Poste and Its Impact on Business an...
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
 
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
 
%+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...
 
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...
 
WSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - KeynoteWSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - Keynote
 
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...
 
WSO2Con2024 - From Blueprint to Brilliance: WSO2's Guide to API-First Enginee...
WSO2Con2024 - From Blueprint to Brilliance: WSO2's Guide to API-First Enginee...WSO2Con2024 - From Blueprint to Brilliance: WSO2's Guide to API-First Enginee...
WSO2Con2024 - From Blueprint to Brilliance: WSO2's Guide to API-First Enginee...
 
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...
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
WSO2Con2024 - Hello Choreo Presentation - Kanchana
WSO2Con2024 - Hello Choreo Presentation - KanchanaWSO2Con2024 - Hello Choreo Presentation - Kanchana
WSO2Con2024 - Hello Choreo Presentation - Kanchana
 
WSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security ProgramWSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security Program
 
tonesoftg
tonesoftgtonesoftg
tonesoftg
 
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
 
%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
 
What Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the SituationWhat Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the Situation
 
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
 

Http Services in Rust on Containers

  • 1. HTTP Services in Rust* 1Think 2018 / DOC ID / Month XX, 2018 / © 2018 IBM Corporation @dhigit9 Anton Whalley – Cloud Technical Professional *Focusing on Containers
  • 2. 2 Running Order • Benefits of Rust for HTTP Services • Select a Rust HTTP Framework • Align software development process @dhigit9
  • 3. A standard way to package an application and all its dependencies so that it can be moved between environments and run without changes. Containers work by isolating the differences between applications inside the container so that everything outside the container can be standardized. The “Goldilocks of Virtualization” Containers IBM Cloud Kubernetes Service | ©2018 IBM Corporation
  • 4. What are containers? VMs vs Containers Containers are isolated, but share OS and, where appropriate, bins/libraries …faster, less overhead Host OS Server Guest OS Bins/ Libs VM Hypervisor (Type 2) App A AppA’ Host OS Server Bins/Libs AppA Bins/Libs AppA’ AppB’ AppB’ Container App A` Guest OS Bins/ Libs App A` Guest OS Bins/ Libs App B Guest OS Bins/ Libs App B` Guest OS Bins/ Libs
  • 5. What industries do you work in using Rust Full time? https://blog.rust-lang.org/2020/04/17/Rust-survey-2019.html Rust Largest Use Case - Backend Web Applications @dhigit9
  • 6. 6© 2020 IBM Corporation Container Adoption Continues to Grow @dhigit9
  • 7. The Hidden Truth - Runtimes in Containers @dhigit9
  • 8. 8 Runtime Mem CPU Processes/CPU Java Spring Boot ~87Mb ~20m 50 Node.JS Express ~47Mb ~10m 100 Rust Tide ~1Mb ~1m 1000 Cold Service Resource Utilisation https://venshare.com/blog/runtime-overhead-on-openshift/ @dhigit9
  • 9. 9 Deployment Density Solutions For Runtimes isolated-vm Piscina Java Node.js @dhigit9
  • 10. 10 The Trade Off for New Runtimes New Software Development LifeCycle • Code Refactoring • New Tools New Operational Constraints • Runtime Characteristics • Debugging Security Implications Still uses GCed Runtime (Java/Node.js/Go) @dhigit9
  • 11. The Truth about GC https://blog.discord.com/why-discord-is-switching-from-go-to-rust-a190bbca2b1f @dhigit9
  • 12. Rust Compared to GCed Runtime (Go) https://blog.discord.com/why-discord-is-switching-from-go-to-rust-a190bbca2b1f @dhigit9
  • 13. 13 • Benefits of Rust for HTTP Services ✅ • Select a HTTP Framework • Align software development process @dhigit9
  • 14. 14Think 2018 / DOC ID / Month XX, 2018 / © 2018 IBM Corporation Select a HTTP Framework? Rocket WARP Tide
  • 15. 15Think 2018 / DOC ID / Month XX, 2018 / © 2018 IBM Corporation https://www.lpalmieri.com/posts/2020-07-04-choosing-a-rust-web-framework-2020-edition/ Framework Total Downloads Daily Download Acitx-web ~1250k ~3000 Rocket ~525k ~1000 Warp ~435k ~3000 Tide ~47k ~300 Adoption
  • 16. 16Think 2018 / DOC ID / Month XX, 2018 / © 2018 IBM Corporation https://www.lpalmieri.com/posts/2020-07-04-choosing-a-rust-web-framework-2020-edition/ Runtime Total Downloads Daily Download tokio ~9600k ~30k async-std ~600k ~4k Async Support Framework Runtime actix-web tokio rocket (0.5.x) tokio tide async-std warp tokio
  • 17. 17Think 2018 / DOC ID / Month XX, 2018 / © 2018 IBM Corporation https://www.lpalmieri.com/posts/2020-07-04-choosing-a-rust-web-framework-2020-edition/ Community Crates Framework # results rocket 178 actix-web 113 warp 57 tide 20
  • 18. Actix-web Rocket Tide Warp Contributor Ratio Contributor Ratio – Github commit log
  • 19. 19 Picking a Framework Conclusion Align your values with the framework! Tide Fast and friendly HTTP server framework Collaboration focus Active Discord Architecture similar to Node.js middleware @dhigit9
  • 20. 20 • Benefits of Rust for HTTP Services ✅ • Select a HTTP Framework ✅ • Align software development process @dhigit9
  • 21. Problems with Kubernetes 21© 2020 IBM Corporation I want to deploy my container-based workloads easily, quickly and securely to a platform that: … dynamically scales my containers according to load. ... has monitoring, logging and a service mesh “built in”. … gives me the a seemless developer experience. … does not “lock me in” and is built on open-source projects. @dhigit9https://www.youtube.com/watch?v=oNa3xK2GFKY
  • 22. 22Source: https://thenewstack.io/ux-is-kubernetes-biggest-short-term-challenge/ Knative addresses 4 of the top 5 pain points of Kubernetes *Top areas the Core Kubernetes Project Needs to Address in 2020, Thenewstack @dhigit9
  • 23. Introducing Knative Knative is a serverless 2.0 environment that extends Kubernetes Middleware components Modern, source-centric, and container-based applications Can run anywhere: on premises, in the cloud, or even in a third-party data center. @dhigit9
  • 24. • Knative vs Serverless Platforms User defined resource management with sensible defaults Container approach gives wider language support No Execution Timeout More portability options @dhigit9
  • 27. © 2019 IBM Corporation Appsody – Knative Software Development Jane: Lead Enterprise Developer Champ: Solution Architect Champ provides pre-configured application stacks Jane selects a stack she and her team want to work with and get to work right away Kubernetes native CI/CD pipeline Knative in any hybrid multicloud environment twitter: @dhigit9
  • 28. Appsody – Serverless Workflow twitter: @dhigit9
  • 30. ● Rust with Appsody Tutorial https://appsody.dev/tutorials/ServerlessRust/ https://www.youtube.com/watch?v=asywye-eDfg ● Appsody https://appsody.dev/ ● Create your own Appsody stack tutorial https://developer.ibm.com/technologies/containers/tutorials/create-appsody-stack/ ● CNCF Serverless https://github.com/cncf/wg-serverless/blob/master/whitepapers/serverless- overview/cncf_serverless_whitepaper_v1.0.pdf ● IBM Cloud OpenShift https://cloud.ibm.com/docs/openshift?topic=openshift-openshift_tutorial ● Install Knative on OpenShift https://docs.openshift.com/container-platform/4.3/serverless/installing_serverless/installing- knative-serving.html Follow Up Links 30 twitter: @dhigit9