Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Serverless + APIM

Serverless + APIM

This is the presentation I used at Microsoft Startup Bootcamp to cover a Serverless app development approach on Azure including various tools but primarily focusing on Azure Functions and Azure API Management.

Daron Yondem

February 12, 2022
Tweet

More Decks by Daron Yondem

Other Decks in Programming

Transcript

  1. Serverless + APIM
    Daron Yöndem
    Azure Application Development Lead for MEA
    Microsoft
    http://daron.me
    @daronyondem

    View Slide

  2. Serverless != Microservices
    • You can have a fleet of EC2 instances, running containers,
    orchestrating and still worry about infrastructure.
    • You can have dozens of functions tightly coupled and
    delivered as a behemoth.

    View Slide

  3. Talking Serverless on Azure
    Serverless Functions – Azure Functions
    Serverless Containers – Azure Container Instances
    Serverless NoSQL – Cosmos DB
    Serverless SQL – Azure SQL Database Serverless Tier
    Serverless Eventing – Event Grid + Hub
    Serverless API Management – Consumption Tier APIM

    View Slide

  4. Azure Functions 101
    • Javascript (Node.js 14)
    • C# / F# (.NET 6)
    • Java 11 & 7
    • Powershell 7
    • Pyhton 3.9, 3.8
    • Go / Rust (Custom Handlers / Unofficial)

    View Slide

  5. What for?
    • Timer-based processing
    • SaaS Event Processing
    • Full Serverless Architecture
    • Real-Time Stream Processing
    • Real-Time Bot Messaging
    • Serverless API Backends

    View Slide

  6. Where?
    • Azure Public Cloud
    • Azure Arc everywhere (AWS, GCP, On-Prem)
    • Wherever you have Kubernetes through KEDA
    • Self scale with custom containers.
    • On my machine!

    View Slide

  7. Billing Model?
    • Consumption Plan
    • Execution Time GB-s
    • Execution Count
    • Premium Plan
    • VNet Access
    • vCPU / Second (Min 1)
    • Memory Allocated (Second)
    • Functions on Kubernetes – Kind of Free
    • Functions in App Service Plan – Kind of Free

    View Slide

  8. Authentication
    • Anoymous
    • Function Key
    • Host Key
    • Federated Identity through App Service
    • Azure AD, Facebook, Google, Twitter, OpenID
    • Managed Identity
    • Certificate Authentication

    View Slide

  9. Hello world!
    DEMO

    View Slide

  10. Function Triggers and Bindings
    • A trigger defines how a function is invoked.
    • Triggers have associated data, which is usually the payload
    that triggered the function.
    • Input and output bindings provide a declarative way to
    connect to data from within your code.

    View Slide

  11. Creating our first “timer trigger” function!
    DEMO

    View Slide

  12. What you can do with timer triggers?
    • Run at explicitly specified intervals, like every day at 2:00 am
    using CRON expressions, like “0 */5 * * * *“ (every 5 minutes)
    • Can send information to other systems, but typically don’t
    “return” information, only write to logs
    • Great for redundant cleanup and data management
    • Great for checking state of services
    • Can be combined with other functions

    View Slide

  13. Creating our first output binding.
    DEMO

    View Slide

  14. Creating an image resizer function
    DEMO

    View Slide

  15. Stateful Functions and Workflows!
    • Stateful functions
    • Managed state, checkpoints, and restarts when needed.
    • Define stateful workflows in orchestrator functions.
    .

    View Slide

  16. Problem 1 : Function Chaining
    • No visualization to show relationship between functions and queues.
    • Middle queues are an implementation detail – conceptual overhead.
    • Error handling adds a lot more complexity.

    View Slide

  17. Function chaining
    DEMO

    View Slide

  18. Problem 2 : Fan-out/Fan-in
    • Fanning-out is easy, but fanning-in is more complicated.
    • Functions offers no help with this scenario today
    • All the same problems of the previous pattern

    View Slide

  19. Fan-Out
    DEMO

    View Slide

  20. Eventing!
    Event Hub
    • Receiver polls
    • Retention up to 7 days
    • Ability to playback
    • Big data guy.
    • Low latency
    • At least once delivery
    Event Grid
    • Sends HTTP to receiver
    • Distributes (dead-lettering
    optional, 1 day retry)
    • No delivery order guarantee
    • Deeply integrated into Azure.
    • At least once delivery
    • Low cost
    • Serverless

    View Slide

  21. Messaging
    • Service Bus on stage!
    • Reliable asynchronous message delivery
    • Requires polling
    • FIFO, transactions, routing, duplicate detection and so on.

    View Slide

  22. When to use what?

    View Slide

  23. Why Azure API Management?
    • Rate limiting
    • Access Policies
    • Caching
    • Subscriptions
    • Licensing
    • Analytics
    • Developer Portal
    • and so on…

    View Slide

  24. Throttling functions with API Management
    DEMO

    View Slide

  25. View Slide

  26. View Slide

  27. View Slide

  28. View Slide

  29. View Slide

  30. Further learning…
    Create serverless applications
    • https://drn.fyi/3HKvZho
    Architect message brokering and serverless applications in Azure
    • https://drn.fyi/3HJz8OB
    Build serverless, full-stack applications in Azure
    • https://drn.fyi/3Bis1u6

    View Slide

  31. Thanks
    http://daron.me | @daronyondem
    Download slides here;
    http://decks.daron.me

    View Slide