Serverless technology is trending, but in-depth details are missing. How does it fit with non-serverless components? What are the practical use cases? Should you fight vendor lock-in? And what about limits and pitfalls with Azure? I will answer those questions, share a few tricks and short demo.
I'll cover serverless usage scenarios with Azure, what problems can be solved, and what is a viable adoption strategy. Then I'm going to talk about technology shortcomings, when to omit it and how to rip all benefits. There are circumstances when a cloud-agnostic approach is beneficial, so I discuss serverless frameworks too and why vendor lock is not that bad. Finally, we'll look at a short demo that illustrates why you have to use specific serverless patterns.
22. Best practices
01 | Keep function small and stateless.
02 | Control connection limits.
03 | Design for failure and use throttling.
04 | Avoid long runs and direct chaining.
05 | Use HttpClient via static.
06 | Use scalable storages.
07 | Build communications via queues and hubs.
23. Pitfalls
01 | Consumption compute slow
02 | Scale-out have limits.
03 | Bad fit with legacy.
04 | Cold start.
06 | Cloud vendor lock-in.
07 | Failure at scale.
24. Know your limits
01 | Functions connections limits.
02 | Processing time limit.
03 | External rate limits.
04 | Scale-out limit.
05 | ACU per instance limit.
06 | Storage limit.
25. SECURITY ● Function code auth.
● 5 App Service options.
● No custom OIDC option.
● CSP, CORS settings.
● Azure Managed Identity.
● VNet only in Premium
plan.
28. ● Consumption plan is cheap
● Billing estimation is
complicated.
● Cheapest possible ETL.
● Long running functions
with poor design will result
in excessive cost.
● Vulnerable for Denial-of-
wallet attacks.
30. Any platform, any cloud?
01 | Vendor lock-in problem.
02 | Multicloud is a tech debt.
03 | Consider local run option.
04 | Storage is the real problem.
05 | Think in terms of code.
06 | Estimate multi cloud.
Azure compute units
https://docs.microsoft.com/en-us/azure/azure-functions/functions-scale
Why we
https://github.com/Azure/azure-functions-durable-extension/issues/593
table.CreateIfNotExists() actually works (Azure Storage SDK), (it asks the Storage API for the table and makes the POST request to create it if 404).