Need for Speed: Removing speed bumps in API Projects

Łukasz Chruściel
Łukasz ChruścielAPI Designer at Commerce Weavers
Need for Speed
Removing speed bumps in API Projects
Introduction
Weavers, Sylius, API Platform
Why do we need to thinks
about performance?
~ Amazon
“100ms Faster
=
1% More Revenue.”
Need for Speed: Removing speed bumps in API Projects
How?
Let’s start!
The most common performance bottlenecks
0
15
30
45
60
Amount of queries to DB Cost of object serialization Latency Framework
5
4
28
56
Votes
Base
Algorithmic complexity
O(M) vs O(MN) vs O(M^2)
Need for Speed: Removing speed bumps in API Projects
That’s why we usually forget
about it :/
Measure!
Understanding of tools
Tools are generally performant
But Your case is different
Project structure
Need for Speed: Removing speed bumps in API Projects
Database turn
N+1
Product list
Let’s start small
{
"@context":"/api/contexts/Product",
"@id":"/api/products",
"@type":"hydra:Collection",
"hydra:totalItems":6,
"hydra:member":[
{
"@id":"/api/products/1",
"@type":"Product",
"id":1,
"name":"T-Shirt",
"price":1000
},
{
"@id":"/api/products/2",
"@type":"Product",
"id":2,
"name":"Trousers",
"price":5000
},
{
"“…“":"“…“"
}
]
}
Amount of products: 6
No associations between objects
Sample query on the left
Need for Speed: Removing speed bumps in API Projects
O(1)
Order list
How many queries are executed here?
{
"@context": "/api/contexts/Order",
"@id": "/api/orders",
"@type": "hydra:Collection",
"hydra:totalItems": 3,
"hydra:member": [
{
"@id": "/api/orders/1",
"@type": "Order",
"id": 1,
"orderItems": [
"/api/order_items/1",
"/api/order_items/2"
]
},
{
“…”: “…“
}
]
}
Amount of orders: 3
Every order associated with 2 items
Sample query on the left
No total
fi
eld
Need for Speed: Removing speed bumps in API Projects
Need for Speed: Removing speed bumps in API Projects
O(M)
Order list with additional
fi
eld
How many queries are executed here?
{
"@context": "/api/contexts/Order",
"@id": "/api/orders",
"@type": "hydra:Collection",
"hydra:totalItems": 3,
"hydra:member": [
{
"@id": "/api/orders/1",
"@type": "Order",
"id": 1,
"orderItems": [
"/api/order_items/1",
"/api/order_items/2"
],
"total": 7000
},
{
“…”: “…“
}
]
}
Amount of orders: 3
Every order associated with 2 items
Sample query on the left
Added “total()” as a function of product
price and quantity of item
Need for Speed: Removing speed bumps in API Projects
O(M*N) or O(M^2) 🚀
Need for Speed: Removing speed bumps in API Projects
How to spot it?
Need for Speed: Removing speed bumps in API Projects
How to
fi
x it?
Solution 1
#[ORMOneToMany(fetch: ‘LAZY')]
#[ORMOneToMany(fetch: ‘EXTRA_LAZY')]
#[ORMOneToMany(fetch: ‘EAGER')]
What is the difference between them?
#[ORMOneToMany(fetch: ‘LAZY')] => 11
#[ORMOneToMany(fetch: ‘EXTRA_LAZY')] => ???
#[ORMOneToMany(fetch: ‘EAGER')] => ???
#[ORMOneToMany(fetch: ‘LAZY')] => 11
#[ORMOneToMany(fetch: ‘EXTRA_LAZY')] => 11
#[ORMOneToMany(fetch: ‘EAGER')] => ???
#[ORMOneToMany(fetch: ‘LAZY')] => 11
#[ORMOneToMany(fetch: ‘EXTRA_LAZY')] => 11
#[ORMOneToMany(fetch: ‘EAGER')] => 9
Need for Speed: Removing speed bumps in API Projects
#[ORMOneToMany(fetch: ‘LAZY')] => 11
#[ORMOneToMany(fetch: ‘EXTRA_LAZY')] => 11
#[ORMOneToMany(fetch: ‘EAGER')] => 9
#[ORMOneToMany(fetch: ‘EAGER')] => 5 (OrderItem and Product)
Need for Speed: Removing speed bumps in API Projects
#[ORMOneToMany(fetch: ‘LAZY')] => 11
#[ORMOneToMany(fetch: ‘EXTRA_LAZY')] => 11
#[ORMOneToMany(fetch: ‘EAGER')] => 5
#[ORMOneToMany(fetch: ‘EAGER')] (OrderItem and Product) + Serialisation groups => 4
Need for Speed: Removing speed bumps in API Projects
Solution 2
final class LoadItemsAndProductsExtension implements QueryCollectionExtensionInterface,
QueryItemExtensionInterface
{
private function apply(QueryBuilder $queryBuilder): void
{
$queryBuilder
->addSelect('oi', 'p')
->join(OrderItem::class, 'oi', Join::WITH, 'oi.originOrder = o')
->join(Product::class, 'p', Join::WITH, 'oi.product = p')
;
}
}
Need for Speed: Removing speed bumps in API Projects
But….
{
"@context": "/api/contexts/Order",
"@id": "/api/orders",
"@type": "hydra:Collection",
"hydra:totalItems": 3,
"hydra:member": [
{
"@id": "/api/orders/1",
"@type": "Order",
"id": 1,
"orderItems": [
"/api/order_items/1",
"/api/order_items/2"
],
"total": 7000
},
{
"@id": "/api/order_items/1",
"@type": "OrderItem",
"id": 1,
"product": "/api/products/1",
"quantity": 2,
"originOrder": "/api/orders/1",
"price": 2000
},
{
"@id": "/api/products/1",
"@type": "Product",
"id": 1,
"name": "T-Shirt",
"price": 1000
},
{
"@id": "/api/order_items/2",
"@type": "OrderItem",
"id": 2,
"product": "/api/products/2",
"quantity": 1,
"originOrder": "/api/orders/1",
"price": 5000
},
{
“…”: “…”
}
]
}
Solution 3
class OrderCollectionProvider implements ProviderInterface
{
public function __construct(private readonly OrderRepository $orderRepository)
{
}
public function provide(
Operation $operation,
array $uriVariables = [],
array $context = []
): object|array|null {
return $this->orderRepository->findWithItemsAndProducts();
}
}
public function findWithItemsAndProducts()
{
return $this->createQueryBuilder('o')
->addSelect('oi', 'p')
->leftJoin('o.orderItems', 'oi')
->leftJoin('oi.product', 'p')
->getQuery()
->getResult();
}
Need for Speed: Removing speed bumps in API Projects
But….
So is single query an ultimate
solution?
⚠ Not so fast ⚠
Joins are expensive 💰
Hydration 🧙
Fetch
[
'id' => 1,
'name' => 'T-Shirt',
'price' => '1000'
]
Hydration 🧙
new Product()
Database Application
More data you fetch
||
/
More you hydrate
Perfect size of micro service?
Perfect amount of queries?
Fetch as much as you have to
But not more
Proper de
fi
nition of
fi
elds
Float vs double
Decimal ->
fi
xed-point precision
Float ->
fl
oating-point precision
How many updates are executed?
Product has a
fl
oat price
fi
eld de
fi
ned as
fl
oat
Order item quantity has been changed by 1
During which we will read data from Product
How many updates are executed?
How many updates are executed?
Product has a
fl
oat price
fi
eld de
fi
ned as decimal
Order item quantity has been changed by 1
During which we will read data from Product
How many updates are executed?
How many updates are executed?
Know your tool!
Custom cars APIs are the
fastest
Serialisation twists
We are reducing network
connections on expanse of object
size/db connections 🤨
Atomic objects (Edge Side API)
{
"@context": "/api/contexts/Order",
"@id": "/api/orders/1",
"@type": "Order",
"id": 1,
"orderItems": [
{
"@id": "/api/order_items/1",
"@type": "OrderItem",
"product": "/api/products/1",
"quantity": 4
},
{
"@id": "/api/order_items/2",
"@type": "OrderItem",
"product": "/api/products/2",
"quantity": 1
}
],
"total": 9000
}
{
"@context": "/api/contexts/Order",
"@id": "/api/orders/1",
"@type": "Order",
"id": 1,
"orderItems": [
{
"@id": "/api/order_items/1",
"@type": "OrderItem",
"product": {
"@id": "/api/products/1",
"@type": "Product",
"name": "test2",
"price": 1000
},
"quantity": 4
},
{
"@id": "/api/order_items/2",
"@type": "OrderItem",
"product": {
"@id": "/api/products/2",
"@type": "Product",
"name": "Trousers",
"price": 5000
},
"quantity": 1
}
],
"total": 9000
}
Atomic objects (Edge Side API)
Partial serialisation
{
"@context": "/api/contexts/Order",
"@id": "/api/orders/1",
"@type": "Order",
"id": 1,
"orderItems": [
{
"@id": "/api/order_items/1",
"@type": "OrderItem",
"product": "/api/products/1",
"quantity": 4
},
{
"@id": "/api/order_items/2",
"@type": "OrderItem",
"product": "/api/products/2",
"quantity": 1
}
],
"total": 9000
}
{
"@context": "/api/contexts/Order",
"@id": "/api/orders/1",
"@type": "Order",
"id": 1,
"orderItems": [
{
"@id": "/api/order_items/1",
"@type": "OrderItem",
"product": {
"@id": "/api/products/1",
"@type": "Product",
"name": "test2",
"price": 1000
},
"quantity": 4
},
{
"@id": "/api/order_items/2",
"@type": "OrderItem",
"product": {
"@id": "/api/products/2",
"@type": "Product",
"name": "Trousers",
"price": 5000
},
"quantity": 1
}
],
"total": 9000
}
Atomic objects (Edge Side API)
Partial serialisation
Spare
fi
elds
Straight of good
design
Huge objects are problem
Different representations
Minimising unnecessary
operations
Read model
shortcut
Saving data to different models
PUT REQUEST
Pre-computing
Need for Speed: Removing speed bumps in API Projects
Need for Speed: Removing speed bumps in API Projects
Sylius order
Sylius order
Need for Speed: Removing speed bumps in API Projects
Saving serialised objects
Read models doesn’t have to
be models 🤯
1. Store read models in key-value storage
2. Restore it by indexed key
Summary
Need for Speed: Removing speed bumps in API Projects
Remember about algorithmic complexity of your queries
Do not hydrate too much data
Think about the box of your “entities”
Thank you!
1 of 104

Recommended

Crossing the Bridge: Connecting Rails and your Front-end Framework by
Crossing the Bridge: Connecting Rails and your Front-end FrameworkCrossing the Bridge: Connecting Rails and your Front-end Framework
Crossing the Bridge: Connecting Rails and your Front-end FrameworkDaniel Spector
1.3K views65 slides
Api's and ember js by
Api's and ember jsApi's and ember js
Api's and ember jsEdwin Cruz
5.7K views115 slides
Altitude NY 2018: Leveraging Log Streaming to Build the Best Dashboards, Ever by
Altitude NY 2018: Leveraging Log Streaming to Build the Best Dashboards, EverAltitude NY 2018: Leveraging Log Streaming to Build the Best Dashboards, Ever
Altitude NY 2018: Leveraging Log Streaming to Build the Best Dashboards, EverFastly
152 views36 slides
Building Cloud Castles by
Building Cloud CastlesBuilding Cloud Castles
Building Cloud CastlesBen Scofield
851 views60 slides
REST API for your WP7 App by
REST API for your WP7 AppREST API for your WP7 App
REST API for your WP7 AppAgnius Paradnikas
1.7K views25 slides
Rack Middleware by
Rack MiddlewareRack Middleware
Rack MiddlewareLittleBIGRuby
2.4K views175 slides

More Related Content

Similar to Need for Speed: Removing speed bumps in API Projects

(MBL312) NEW! AWS IoT: Programming a Physical World w/ Shadows & Rules by
(MBL312) NEW! AWS IoT: Programming a Physical World w/ Shadows & Rules(MBL312) NEW! AWS IoT: Programming a Physical World w/ Shadows & Rules
(MBL312) NEW! AWS IoT: Programming a Physical World w/ Shadows & RulesAmazon Web Services
10.4K views38 slides
SymfonyCon Berlin 2016 - Symfony Plugin for PhpStorm - 3 years later by
SymfonyCon Berlin 2016 - Symfony Plugin for PhpStorm - 3 years laterSymfonyCon Berlin 2016 - Symfony Plugin for PhpStorm - 3 years later
SymfonyCon Berlin 2016 - Symfony Plugin for PhpStorm - 3 years laterHaehnchen
1.7K views56 slides
Using Task Queues and D3.js to build an analytics product on App Engine by
Using Task Queues and D3.js to build an analytics product on App EngineUsing Task Queues and D3.js to build an analytics product on App Engine
Using Task Queues and D3.js to build an analytics product on App EngineRiver of Talent
3.1K views28 slides
JAX-RS 2.0 New Features by
JAX-RS 2.0 New FeaturesJAX-RS 2.0 New Features
JAX-RS 2.0 New FeaturesJan Algermissen
4.8K views181 slides
Intro to-rails-webperf by
Intro to-rails-webperfIntro to-rails-webperf
Intro to-rails-webperfNew Relic
459 views39 slides
Socket applications by
Socket applicationsSocket applications
Socket applicationsJoão Moura
601 views121 slides

Similar to Need for Speed: Removing speed bumps in API Projects(20)

(MBL312) NEW! AWS IoT: Programming a Physical World w/ Shadows & Rules by Amazon Web Services
(MBL312) NEW! AWS IoT: Programming a Physical World w/ Shadows & Rules(MBL312) NEW! AWS IoT: Programming a Physical World w/ Shadows & Rules
(MBL312) NEW! AWS IoT: Programming a Physical World w/ Shadows & Rules
Amazon Web Services10.4K views
SymfonyCon Berlin 2016 - Symfony Plugin for PhpStorm - 3 years later by Haehnchen
SymfonyCon Berlin 2016 - Symfony Plugin for PhpStorm - 3 years laterSymfonyCon Berlin 2016 - Symfony Plugin for PhpStorm - 3 years later
SymfonyCon Berlin 2016 - Symfony Plugin for PhpStorm - 3 years later
Haehnchen1.7K views
Using Task Queues and D3.js to build an analytics product on App Engine by River of Talent
Using Task Queues and D3.js to build an analytics product on App EngineUsing Task Queues and D3.js to build an analytics product on App Engine
Using Task Queues and D3.js to build an analytics product on App Engine
River of Talent3.1K views
Intro to-rails-webperf by New Relic
Intro to-rails-webperfIntro to-rails-webperf
Intro to-rails-webperf
New Relic459 views
Socket applications by João Moura
Socket applicationsSocket applications
Socket applications
João Moura601 views
Serverless in production, an experience report (London DevOps) by Yan Cui
Serverless in production, an experience report (London DevOps)Serverless in production, an experience report (London DevOps)
Serverless in production, an experience report (London DevOps)
Yan Cui293 views
WebNet Conference 2012 - Designing complex applications using html5 and knock... by Fabio Franzini
WebNet Conference 2012 - Designing complex applications using html5 and knock...WebNet Conference 2012 - Designing complex applications using html5 and knock...
WebNet Conference 2012 - Designing complex applications using html5 and knock...
Fabio Franzini1.6K views
Angularjs by Ynon Perek
AngularjsAngularjs
Angularjs
Ynon Perek3.2K views
Using the Tooling API to Generate Apex SOAP Web Service Clients by Salesforce Developers
Using the Tooling API to Generate Apex SOAP Web Service ClientsUsing the Tooling API to Generate Apex SOAP Web Service Clients
Using the Tooling API to Generate Apex SOAP Web Service Clients
6 tips for improving ruby performance by Engine Yard
6 tips for improving ruby performance6 tips for improving ruby performance
6 tips for improving ruby performance
Engine Yard6.6K views
Amazon Web Services for PHP Developers by Jeremy Lindblom
Amazon Web Services for PHP DevelopersAmazon Web Services for PHP Developers
Amazon Web Services for PHP Developers
Jeremy Lindblom3K views
Crafting Quality PHP Applications (PHP Benelux 2018) by James Titcumb
Crafting Quality PHP Applications (PHP Benelux 2018)Crafting Quality PHP Applications (PHP Benelux 2018)
Crafting Quality PHP Applications (PHP Benelux 2018)
James Titcumb707 views
Rhebok, High Performance Rack Handler / Rubykaigi 2015 by Masahiro Nagano
Rhebok, High Performance Rack Handler / Rubykaigi 2015Rhebok, High Performance Rack Handler / Rubykaigi 2015
Rhebok, High Performance Rack Handler / Rubykaigi 2015
Masahiro Nagano76.1K views
Petr Dvořák: Mobilní webové služby pohledem iPhone developera by WebExpo
Petr Dvořák: Mobilní webové služby pohledem iPhone developeraPetr Dvořák: Mobilní webové služby pohledem iPhone developera
Petr Dvořák: Mobilní webové služby pohledem iPhone developera
WebExpo398 views
12 core technologies you should learn, love, and hate to be a 'real' technocrat by Jonathan Linowes
12 core technologies you should learn, love, and hate to be a 'real' technocrat12 core technologies you should learn, love, and hate to be a 'real' technocrat
12 core technologies you should learn, love, and hate to be a 'real' technocrat
Jonathan Linowes911 views
Maciej Treder "Server-side rendering with Angular—be faster and more SEO, CDN... by Fwdays
Maciej Treder "Server-side rendering with Angular—be faster and more SEO, CDN...Maciej Treder "Server-side rendering with Angular—be faster and more SEO, CDN...
Maciej Treder "Server-side rendering with Angular—be faster and more SEO, CDN...
Fwdays946 views

More from Łukasz Chruściel

SyliusCon - Typical pitfalls of Sylius development.pdf by
SyliusCon - Typical pitfalls of Sylius development.pdfSyliusCon - Typical pitfalls of Sylius development.pdf
SyliusCon - Typical pitfalls of Sylius development.pdfŁukasz Chruściel
47 views80 slides
SymfonyLive Online 2023 - Is SOLID dead? .pdf by
SymfonyLive Online 2023 - Is SOLID dead? .pdfSymfonyLive Online 2023 - Is SOLID dead? .pdf
SymfonyLive Online 2023 - Is SOLID dead? .pdfŁukasz Chruściel
177 views74 slides
Worldwide Software Architecture Summit'23 - BDD and why most of us do it wron... by
Worldwide Software Architecture Summit'23 - BDD and why most of us do it wron...Worldwide Software Architecture Summit'23 - BDD and why most of us do it wron...
Worldwide Software Architecture Summit'23 - BDD and why most of us do it wron...Łukasz Chruściel
27 views69 slides
4Developers - Rozterki i decyzje.pdf by
4Developers - Rozterki i decyzje.pdf4Developers - Rozterki i decyzje.pdf
4Developers - Rozterki i decyzje.pdfŁukasz Chruściel
17 views88 slides
4Developers - Sylius CRUD generation revisited.pdf by
4Developers - Sylius CRUD generation revisited.pdf4Developers - Sylius CRUD generation revisited.pdf
4Developers - Sylius CRUD generation revisited.pdfŁukasz Chruściel
34 views99 slides
BoilingFrogs - Rozterki i decyzje. Czego się nauczyliśmy projektując API Syliusa by
BoilingFrogs - Rozterki i decyzje. Czego się nauczyliśmy projektując API SyliusaBoilingFrogs - Rozterki i decyzje. Czego się nauczyliśmy projektując API Syliusa
BoilingFrogs - Rozterki i decyzje. Czego się nauczyliśmy projektując API SyliusaŁukasz Chruściel
142 views99 slides

More from Łukasz Chruściel(18)

SyliusCon - Typical pitfalls of Sylius development.pdf by Łukasz Chruściel
SyliusCon - Typical pitfalls of Sylius development.pdfSyliusCon - Typical pitfalls of Sylius development.pdf
SyliusCon - Typical pitfalls of Sylius development.pdf
SymfonyLive Online 2023 - Is SOLID dead? .pdf by Łukasz Chruściel
SymfonyLive Online 2023 - Is SOLID dead? .pdfSymfonyLive Online 2023 - Is SOLID dead? .pdf
SymfonyLive Online 2023 - Is SOLID dead? .pdf
Łukasz Chruściel177 views
Worldwide Software Architecture Summit'23 - BDD and why most of us do it wron... by Łukasz Chruściel
Worldwide Software Architecture Summit'23 - BDD and why most of us do it wron...Worldwide Software Architecture Summit'23 - BDD and why most of us do it wron...
Worldwide Software Architecture Summit'23 - BDD and why most of us do it wron...
4Developers - Sylius CRUD generation revisited.pdf by Łukasz Chruściel
4Developers - Sylius CRUD generation revisited.pdf4Developers - Sylius CRUD generation revisited.pdf
4Developers - Sylius CRUD generation revisited.pdf
BoilingFrogs - Rozterki i decyzje. Czego się nauczyliśmy projektując API Syliusa by Łukasz Chruściel
BoilingFrogs - Rozterki i decyzje. Czego się nauczyliśmy projektując API SyliusaBoilingFrogs - Rozterki i decyzje. Czego się nauczyliśmy projektując API Syliusa
BoilingFrogs - Rozterki i decyzje. Czego się nauczyliśmy projektując API Syliusa
Łukasz Chruściel142 views
How to optimize background processes - when Sylius meets Blackfire by Łukasz Chruściel
How to optimize background processes - when Sylius meets BlackfireHow to optimize background processes - when Sylius meets Blackfire
How to optimize background processes - when Sylius meets Blackfire
Łukasz Chruściel136 views
Symfony World - Symfony components and design patterns by Łukasz Chruściel
Symfony World - Symfony components and design patternsSymfony World - Symfony components and design patterns
Symfony World - Symfony components and design patterns
Łukasz Chruściel281 views
Sylius and Api Platform The story of integration by Łukasz Chruściel
Sylius and Api Platform The story of integrationSylius and Api Platform The story of integration
Sylius and Api Platform The story of integration
Łukasz Chruściel1.4K views
BDD in practice based on an open source project by Łukasz Chruściel
BDD in practice based on an open source projectBDD in practice based on an open source project
BDD in practice based on an open source project
Łukasz Chruściel729 views
Diversified application testing based on a Sylius project by Łukasz Chruściel
Diversified application testing based on a Sylius projectDiversified application testing based on a Sylius project
Diversified application testing based on a Sylius project
Łukasz Chruściel828 views

Recently uploaded

GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N... by
GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N...GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N...
GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N...James Anderson
160 views32 slides
Enabling DPU Hardware Accelerators in XCP-ng Cloud Platform Environment - And... by
Enabling DPU Hardware Accelerators in XCP-ng Cloud Platform Environment - And...Enabling DPU Hardware Accelerators in XCP-ng Cloud Platform Environment - And...
Enabling DPU Hardware Accelerators in XCP-ng Cloud Platform Environment - And...ShapeBlue
106 views12 slides
CloudStack and GitOps at Enterprise Scale - Alex Dometrius, Rene Glover - AT&T by
CloudStack and GitOps at Enterprise Scale - Alex Dometrius, Rene Glover - AT&TCloudStack and GitOps at Enterprise Scale - Alex Dometrius, Rene Glover - AT&T
CloudStack and GitOps at Enterprise Scale - Alex Dometrius, Rene Glover - AT&TShapeBlue
152 views34 slides
Import Export Virtual Machine for KVM Hypervisor - Ayush Pandey - University ... by
Import Export Virtual Machine for KVM Hypervisor - Ayush Pandey - University ...Import Export Virtual Machine for KVM Hypervisor - Ayush Pandey - University ...
Import Export Virtual Machine for KVM Hypervisor - Ayush Pandey - University ...ShapeBlue
119 views17 slides
Business Analyst Series 2023 - Week 4 Session 7 by
Business Analyst Series 2023 -  Week 4 Session 7Business Analyst Series 2023 -  Week 4 Session 7
Business Analyst Series 2023 - Week 4 Session 7DianaGray10
139 views31 slides
DRBD Deep Dive - Philipp Reisner - LINBIT by
DRBD Deep Dive - Philipp Reisner - LINBITDRBD Deep Dive - Philipp Reisner - LINBIT
DRBD Deep Dive - Philipp Reisner - LINBITShapeBlue
180 views21 slides

Recently uploaded(20)

GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N... by James Anderson
GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N...GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N...
GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N...
James Anderson160 views
Enabling DPU Hardware Accelerators in XCP-ng Cloud Platform Environment - And... by ShapeBlue
Enabling DPU Hardware Accelerators in XCP-ng Cloud Platform Environment - And...Enabling DPU Hardware Accelerators in XCP-ng Cloud Platform Environment - And...
Enabling DPU Hardware Accelerators in XCP-ng Cloud Platform Environment - And...
ShapeBlue106 views
CloudStack and GitOps at Enterprise Scale - Alex Dometrius, Rene Glover - AT&T by ShapeBlue
CloudStack and GitOps at Enterprise Scale - Alex Dometrius, Rene Glover - AT&TCloudStack and GitOps at Enterprise Scale - Alex Dometrius, Rene Glover - AT&T
CloudStack and GitOps at Enterprise Scale - Alex Dometrius, Rene Glover - AT&T
ShapeBlue152 views
Import Export Virtual Machine for KVM Hypervisor - Ayush Pandey - University ... by ShapeBlue
Import Export Virtual Machine for KVM Hypervisor - Ayush Pandey - University ...Import Export Virtual Machine for KVM Hypervisor - Ayush Pandey - University ...
Import Export Virtual Machine for KVM Hypervisor - Ayush Pandey - University ...
ShapeBlue119 views
Business Analyst Series 2023 - Week 4 Session 7 by DianaGray10
Business Analyst Series 2023 -  Week 4 Session 7Business Analyst Series 2023 -  Week 4 Session 7
Business Analyst Series 2023 - Week 4 Session 7
DianaGray10139 views
DRBD Deep Dive - Philipp Reisner - LINBIT by ShapeBlue
DRBD Deep Dive - Philipp Reisner - LINBITDRBD Deep Dive - Philipp Reisner - LINBIT
DRBD Deep Dive - Philipp Reisner - LINBIT
ShapeBlue180 views
NTGapps NTG LowCode Platform by Mustafa Kuğu
NTGapps NTG LowCode Platform NTGapps NTG LowCode Platform
NTGapps NTG LowCode Platform
Mustafa Kuğu423 views
iSAQB Software Architecture Gathering 2023: How Process Orchestration Increas... by Bernd Ruecker
iSAQB Software Architecture Gathering 2023: How Process Orchestration Increas...iSAQB Software Architecture Gathering 2023: How Process Orchestration Increas...
iSAQB Software Architecture Gathering 2023: How Process Orchestration Increas...
Bernd Ruecker54 views
Digital Personal Data Protection (DPDP) Practical Approach For CISOs by Priyanka Aash
Digital Personal Data Protection (DPDP) Practical Approach For CISOsDigital Personal Data Protection (DPDP) Practical Approach For CISOs
Digital Personal Data Protection (DPDP) Practical Approach For CISOs
Priyanka Aash158 views
The Power of Heat Decarbonisation Plans in the Built Environment by IES VE
The Power of Heat Decarbonisation Plans in the Built EnvironmentThe Power of Heat Decarbonisation Plans in the Built Environment
The Power of Heat Decarbonisation Plans in the Built Environment
IES VE79 views
2FA and OAuth2 in CloudStack - Andrija Panić - ShapeBlue by ShapeBlue
2FA and OAuth2 in CloudStack - Andrija Panić - ShapeBlue2FA and OAuth2 in CloudStack - Andrija Panić - ShapeBlue
2FA and OAuth2 in CloudStack - Andrija Panić - ShapeBlue
ShapeBlue147 views
Setting Up Your First CloudStack Environment with Beginners Challenges - MD R... by ShapeBlue
Setting Up Your First CloudStack Environment with Beginners Challenges - MD R...Setting Up Your First CloudStack Environment with Beginners Challenges - MD R...
Setting Up Your First CloudStack Environment with Beginners Challenges - MD R...
ShapeBlue173 views
How to Re-use Old Hardware with CloudStack. Saving Money and the Environment ... by ShapeBlue
How to Re-use Old Hardware with CloudStack. Saving Money and the Environment ...How to Re-use Old Hardware with CloudStack. Saving Money and the Environment ...
How to Re-use Old Hardware with CloudStack. Saving Money and the Environment ...
ShapeBlue166 views
"Surviving highload with Node.js", Andrii Shumada by Fwdays
"Surviving highload with Node.js", Andrii Shumada "Surviving highload with Node.js", Andrii Shumada
"Surviving highload with Node.js", Andrii Shumada
Fwdays56 views
Elevating Privacy and Security in CloudStack - Boris Stoyanov - ShapeBlue by ShapeBlue
Elevating Privacy and Security in CloudStack - Boris Stoyanov - ShapeBlueElevating Privacy and Security in CloudStack - Boris Stoyanov - ShapeBlue
Elevating Privacy and Security in CloudStack - Boris Stoyanov - ShapeBlue
ShapeBlue222 views
Business Analyst Series 2023 - Week 4 Session 8 by DianaGray10
Business Analyst Series 2023 -  Week 4 Session 8Business Analyst Series 2023 -  Week 4 Session 8
Business Analyst Series 2023 - Week 4 Session 8
DianaGray10123 views
VNF Integration and Support in CloudStack - Wei Zhou - ShapeBlue by ShapeBlue
VNF Integration and Support in CloudStack - Wei Zhou - ShapeBlueVNF Integration and Support in CloudStack - Wei Zhou - ShapeBlue
VNF Integration and Support in CloudStack - Wei Zhou - ShapeBlue
ShapeBlue203 views

Need for Speed: Removing speed bumps in API Projects