$30 off During Our Annual Pro Sale. View Details »

Getting Started with Serverless PHP

Getting Started with Serverless PHP

These are the slides from a talk given at LonghornPHP 2022.

Some of us love to manage servers. But for a lot of PHP developers, servers are something we'd rather avoid. We're happy to pay hosting providers so we don't have to worry about it.

PHP hosting doesn't remove all your hosting headaches. You still have to worry about scaling. You're often overpaying for hosting because you have to worry about the worst-case scenario.

Well, that's what serverless PHP tries to solve. With serverless PHP, you only pay for what you use. Meanwhile, you get an infrastructure that can scale from handling zero traffic to thousands in seconds.

This talk will go over serverless PHP and how it works. We'll then look at the state of serverless in the PHP ecosystem. We'll finish by going over tools and projects you can use to deploy your PHP application on AWS Lambda.

You can read the companion article at: https://blog.ymirapp.com/getting-started-serverless-php

Carl Alexander

November 05, 2022
Tweet

More Decks by Carl Alexander

Other Decks in Technology

Transcript

  1. Getting


    Started with
    Serverless PHP

    View Slide

  2. 2
    Heya!
    2
    I’m Carl Alexander
    @twigpress


    carlalexander.ca

    View Slide

  3. “Servers. Can’t live with them.
    Can’t live without them.”
    - PHP developer (when a server blows up)

    View Slide

  4. Server management

    View Slide

  5. Still responsible

    View Slide

  6. Platform as a service

    View Slide

  7. Still need to
    over provision

    View Slide

  8. Serverless addresses
    these problems

    View Slide

  9. 1 What Is
    Serverless?

    View Slide

  10. “Are there really no servers
    with serverless!?”
    - Literally everyone I mention serverless to

    View Slide

  11. View Slide

  12. Marketing term

    View Slide

  13. Functions as a Service

    View Slide

  14. On-demand
    computing

    View Slide

  15. Upload code to a
    cloud provider

    View Slide

  16. Code gets executed in
    response to an event

    View Slide

  17. No mention of servers

    View Slide

  18. Outside your sphere
    of concerns

    View Slide

  19. 2How Serverless
    PHP Works

    View Slide

  20. PHP with a web server

    View Slide

  21. View Slide

  22. How does serverless
    PHP compare?

    View Slide

  23. Both run code in
    response to an event

    View Slide

  24. So what’s different?

    View Slide

  25. Not just PHP that runs
    without a server

    View Slide

  26. Everything is
    serverless

    View Slide

  27. Service based
    architecture

    View Slide

  28. View Slide

  29. PHP runtime?

    View Slide

  30. Unique element of
    serverless PHP

    View Slide

  31. What does it do?

    View Slide

  32. Processes


    lambda event

    View Slide

  33. Figures out


    what the event wants

    View Slide

  34. Sends a result back


    (HTTP response)

    View Slide

  35. Mimics a web server

    View Slide

  36. Request a file,


    returns a file

    View Slide

  37. Creates FastCGI request,
    sends it to PHP-FPM

    View Slide

  38. Also manages


    the PHP-FPM process

    View Slide

  39. Stops the Lambda
    function after X requests

    View Slide

  40. Only one


    PHP-FPM worker

    View Slide

  41. Lambda only handles
    one event at a time

    View Slide

  42. Why PHP-FPM?

    View Slide

  43. Faster to have a
    running PHP process

    View Slide

  44. ?Questions

    View Slide

  45. 3Advantages of
    serverless PHP

    View Slide

  46. View Slide

  47. No servers to
    manage

    View Slide

  48. Not everyone is
    comfortable with servers

    View Slide

  49. Still responsible

    View Slide

  50. PaaS solves this issue

    View Slide

  51. New problem.
    Scaling.

    View Slide

  52. Slow or


    not automated

    View Slide

  53. Each Lambda function
    is a PHP worker

    View Slide

  54. View Slide

  55. Scaling in seconds
    not minutes

    View Slide

  56. View Slide

  57. Need to plan for the
    worst with servers

    View Slide

  58. How much would
    that cost?

    View Slide

  59. None of that


    with serverless

    View Slide

  60. Usage based pricing

    View Slide

  61. Pay when your
    workers run

    View Slide

  62. Charged by


    the millisecond

    View Slide

  63. externals.io

    View Slide

  64. $50/m -> $~17/m
    ($16/m is RDS)

    View Slide

  65. 4Drawbacks of
    Serverless PHP

    View Slide

  66. View Slide

  67. Less predictable cost

    View Slide

  68. Paying for a server
    feels safe

    View Slide

  69. $X/month

    View Slide

  70. Need more
    performance? Pay more!

    View Slide

  71. View Slide

  72. How many requests?


    Average duration?

    View Slide

  73. Stressful and harder
    to budget for

    View Slide

  74. Costs less

    View Slide

  75. What happens with
    constant load?

    View Slide

  76. Serverless


    not as attractive

    View Slide

  77. Possible to maximize
    server usage

    View Slide

  78. Optimal server


    might cost less

    View Slide

  79. AWS lock-in

    View Slide

  80. View Slide

  81. Why not Azure or GCP?

    View Slide

  82. Not interchangeable

    View Slide

  83. Not just Lambda

    View Slide

  84. Need other services

    View Slide

  85. Equivalent ≠ Same

    View Slide

  86. Energy with AWS

    View Slide

  87. Final note

    View Slide

  88. Tempting to only
    compare cost

    View Slide

  89. “Serverless is expensive. I
    could just get a $5/month
    droplet from DigitalOcean.”
    - Someone comfortable with servers

    View Slide

  90. Dishonest

    View Slide

  91. Intangible costs

    View Slide

  92. Mental health

    View Slide

  93. Your time

    View Slide

  94. Be honest when you
    evaluate both options

    View Slide

  95. ?Questions

    View Slide

  96. 5Tools and


    Projects

    View Slide

  97. Where do you start?

    View Slide

  98. 98
    Bref
    7
    https://bref.sh

    View Slide

  99. Open source project

    View Slide

  100. Mathieu Napoli

    View Slide

  101. PHP runtime

    View Slide

  102. Integrates with
    Symfony & Laravel

    View Slide

  103. Deploy with
    Serverless framework

    View Slide

  104. Extensive
    documentation

    View Slide

  105. 105
    Laravel


    Vapor
    7
    https://vapor.laravel.com

    View Slide

  106. Builds off Bref

    View Slide

  107. Deploys serverless
    Laravel applications

    View Slide

  108. Manages your entire
    serverless infrastructure

    View Slide

  109. View Slide

  110. Good documentation

    View Slide

  111. serverlesslaravelcourse.com

    View Slide

  112. Paid product


    ($39/m + AWS bill)

    View Slide

  113. 113
    7
    Ymir
    https://ymirapp.com

    View Slide

  114. - Carl Alexander 👋
    “This is amazing! I need to
    build this for WordPress.”

    View Slide

  115. Vapor for WordPress

    View Slide

  116. Does WordPress
    specific things

    View Slide

  117. HTML caching at edge

    View Slide

  118. Image optimizing CDN

    View Slide

  119. Same cost as Vapor

    View Slide

  120. 120
    Sidecar
    7
    https://github.com/
    hammerstonedev/sidecar
    (Bonus!)

    View Slide

  121. 6Back to


    Simplicity

    View Slide

  122. PHP is so easy to use

    View Slide

  123. Hosting used


    to be simpler

    View Slide

  124. Serverless is


    deploy and forget

    View Slide

  125. Levels playing field

    View Slide

  126. ?Questions

    View Slide

  127. 127
    Thank you!
    2
    @twigpress


    carlalexander.ca


    joind.in/talk/f8b79

    View Slide