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

Running a Static Web Site and APIs for the Cheap

Running a Static Web Site and APIs for the Cheap

This is the presentation I used for my session at DotNetConf 2020 Turkey.

Source Code for the demo is hosted here: https://drn.fyi/3mggyCF

Daron Yondem

November 28, 2020
Tweet

More Decks by Daron Yondem

Other Decks in Technology

Transcript

  1. Running a Static Web Site
    and APIs for the Cheap
    Daron Yöndem
    http://daron.me
    @daronyondem

    View Slide

  2. Hosting something in Azure?
    • Virtual Machine
    • Kubernetes (AKS)
    • Docker / Containers (ACI)
    • App Service Plans
    • Cloud Services
    • Anything else left out there?

    View Slide

  3. What you really need for a SPA?
    • Static file hosting
    • Some APIs?

    View Slide

  4. What you really need for a SPA?
    • Static file hosting > Azure Storage
    • Maybe some APIs? > Serverless Sauce (Azure Functions)
    • Combination of the two > Azure Static Web Apps

    View Slide

  5. Let’s get some storage!
    DEMO

    View Slide

  6. View Slide

  7. View Slide

  8. View Slide

  9. View Slide

  10. Storage Account Limits

    View Slide

  11. What about getting some CDN Magic?
    DEMO

    View Slide

  12. What
    about
    adding
    a CDN?

    View Slide

  13. View Slide

  14. Getting a custom domain

    View Slide

  15. View Slide

  16. After the domain name is validated,
    it can take up to 6-8 hours for the custom
    domain HTTPS feature to be activated.

    View Slide

  17. Premium for more!
    • HTTP to HTTPS redirection
    • Analytics
    • URL Rewrite
    • And some more goodies

    View Slide

  18. So far….
    • Hosting for our static files
    • CDN in front of it
    • HTTPS Enabled

    View Slide

  19. API for the Contact Form
    • Will use SendGrid to send e-mail.
    • Need an endpoint to pass contact form content.
    • Need it to be protected against abuse.

    View Slide

  20. Setting up the Contact Form
    DEMO

    View Slide

  21. View Slide

  22. View Slide

  23. View Slide

  24. View Slide

  25. View Slide

  26. View Slide

  27. View Slide

  28. View Slide

  29. A round of cost estimation
    • 7.5MB Site Storage ≈ Free = 0.000006328125 cents
    • 50KB/Page > 500.000 Page Views > 24GB Bandwidth = $0.48
    • SendGrid 25.000 E-Mails / Month = Free
    • 25.000 E-Mail Function Execution for 1s each = Free

    View Slide

  30. Homework for you!
    • What if someone abused our mailing endpoint?
    • Use Azure API Management Consumption Plan for Request
    Throttling!

    View Slide

  31. Resources
    • Storage Account Limits: https://drn.fyi/2NbC7Um
    • Increasing Storage Account Limits: https://drn.fyi/2NdO8Zp
    • Custom Domain Mapping for CDN: https://drn.fyi/2GQ1D0c
    Advanced request throttling with Azure API Management:
    https://drn.fyi/2Xbphdr

    View Slide

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

    View Slide