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

Introduction to Serverless PHP

Introduction to Serverless PHP

APIs and microservices are how we build modern web applications and serverless technologies make this easy. This session will show you how serverless applications are built and how you can leverage your PHP skills to build APIs of all shapes and sizes. We will cover how to use your current knowledge to build applications in PHP within Apache OpenWhisk, leveraging the API Gateway to build robust APIs quickly and easily. By the end of the session, you'll be well placed to design and build your own microservices that take full advantage of the power of serverless technologies.

Presented at PHP South Wales, Cardiff, UK in July 2018 and at BrumPHP, Birmingham, UK in August 2018

Rob Allen

July 31, 2018

More Decks by Rob Allen

Other Decks in Technology


  1. Container deployments 1. Platform (e.g. Kubernetes) 2. Application (e.g. Cloud

    Foundry) 3. Serverless (e.g. OpenWhisk) Rob Allen ~ @akrabat
  2. Serverless? The first thing to know about serverless computing is

    that "serverless" is a pretty bad name to call it. - Brandon Butler, Network World Rob Allen ~ @akrabat
  3. AKA: Functions as a Service • A runtime to execute

    your functions • No capacity planning or load balancing; just tasks being executed. • Pay for execution, not when idle Rob Allen ~ @akrabat
  4. Use-cases Synchronous Service is invoked and provides immediate response (HTTP

    requests: APIs, chat bots) Asynchronous Push a message which drives an action later (web hooks, timed events, database changes) Streaming Continuous data flow to be processed Rob Allen ~ @akrabat
  5. Benefits • No need to think about servers • Concentrate

    on application code • Pay only for what you use, when you use it • Language agnostic: NodeJS, Swift, Python, Java, C#, etc Rob Allen ~ @akrabat
  6. Challenges • Start up latency • Time limit • State

    is external • DevOps is still a thing Rob Allen ~ @akrabat
  7. When should you use serverless? • Occasional server needs on

    a static site • Variable traffic levels • Additional compute without extending current platform • Responding to web hooks Rob Allen ~ @akrabat
  8. OpenWhisk OpenSource; multiple providers: IBM RedHat Adobe (for Adobe Cloud

    Platform APIs) &, of course, self-hosted Rob Allen ~ @akrabat
  9. Running your action $ wsk action update hello hello.php ok:

    updated action hello $ wsk action invoke hello --result { "msg": "Hello World" } Rob Allen ~ @akrabat
  10. Dependencies Zip them up $ zip -r hello.zip hello.php vendor

    $ wsk action update hello hello.zip --kind php:7.1 Rob Allen ~ @akrabat
  11. Web access Add the --web flag: $ wsk action update

    hello hello.php --web true $ curl https://openwhisk.ng.bluemix.net/api/v1/web/ \ 19FT_demo/default/hello.json Rob Allen ~ @akrabat
  12. What to do in your action • Compute! • Store

    to database • Make API calls to other services • Store to cloud storage (S3) • Trigger other actions Rob Allen ~ @akrabat