introduction to serverless php - akrabat.com · 2018-08-31 · introduction to serverless php rob...

25
Introduction to Serverless PHP Rob Allen

Upload: others

Post on 09-Aug-2020

15 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Introduction to Serverless PHP - akrabat.com · 2018-08-31 · Introduction to Serverless PHP Rob Allen. Deployment options 1. Physical servers 2. Virtual machines 3. Containers Rob

Introduction toServerless PHP

Rob Allen  

Page 2: Introduction to Serverless PHP - akrabat.com · 2018-08-31 · Introduction to Serverless PHP Rob Allen. Deployment options 1. Physical servers 2. Virtual machines 3. Containers Rob

Deployment options1. Physical servers2. Virtual machines3. Containers

Rob Allen ~ @akrabat

Page 3: Introduction to Serverless PHP - akrabat.com · 2018-08-31 · Introduction to Serverless PHP Rob Allen. Deployment options 1. Physical servers 2. Virtual machines 3. Containers Rob

Container deployments1. Platform (e.g. Kubernetes)2. Application (e.g. Cloud Foundry)3. Serverless (e.g. OpenWhisk)

Rob Allen ~ @akrabat

Page 4: Introduction to Serverless PHP - akrabat.com · 2018-08-31 · Introduction to Serverless PHP Rob Allen. Deployment options 1. Physical servers 2. Virtual machines 3. Containers Rob

Serverless? 

The first thing to know about serverlesscomputing is that "serverless" is a pretty badname to call it.

- Brandon Butler, Network World

Rob Allen ~ @akrabat

it's not that there's NoOps, it's just that someone else does it for you
Page 5: Introduction to Serverless PHP - akrabat.com · 2018-08-31 · Introduction to Serverless PHP Rob Allen. Deployment options 1. Physical servers 2. Virtual machines 3. Containers Rob

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

Page 6: Introduction to Serverless PHP - akrabat.com · 2018-08-31 · Introduction to Serverless PHP Rob Allen. Deployment options 1. Physical servers 2. Virtual machines 3. Containers Rob

Use-casesSynchronous

Service is invoked and provides immediate response(HTTP requests: APIs, chat bots)

AsynchronousPush a message which drives an action later(web hooks, timed events, database changes)

StreamingContinuous data flow to be processed

Rob Allen ~ @akrabat

Page 7: Introduction to Serverless PHP - akrabat.com · 2018-08-31 · Introduction to Serverless PHP Rob Allen. Deployment options 1. Physical servers 2. Virtual machines 3. Containers Rob

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

Page 8: Introduction to Serverless PHP - akrabat.com · 2018-08-31 · Introduction to Serverless PHP Rob Allen. Deployment options 1. Physical servers 2. Virtual machines 3. Containers Rob

Challenges• Start up latency• Time limit• State is external• DevOps is still a thing

Rob Allen ~ @akrabat

Page 9: Introduction to Serverless PHP - akrabat.com · 2018-08-31 · Introduction to Serverless PHP Rob Allen. Deployment options 1. Physical servers 2. Virtual machines 3. Containers Rob

It's about value

Rob Allen ~ @akrabat

Page 10: Introduction to Serverless PHP - akrabat.com · 2018-08-31 · Introduction to Serverless PHP Rob Allen. Deployment options 1. Physical servers 2. Virtual machines 3. Containers Rob

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

Page 11: Introduction to Serverless PHP - akrabat.com · 2018-08-31 · Introduction to Serverless PHP Rob Allen. Deployment options 1. Physical servers 2. Virtual machines 3. Containers Rob

Serverless providers

Rob Allen ~ @akrabat

Page 12: Introduction to Serverless PHP - akrabat.com · 2018-08-31 · Introduction to Serverless PHP Rob Allen. Deployment options 1. Physical servers 2. Virtual machines 3. Containers Rob

OpenWhisk

Rob Allen ~ @akrabat

Page 13: Introduction to Serverless PHP - akrabat.com · 2018-08-31 · Introduction to Serverless PHP Rob Allen. Deployment options 1. Physical servers 2. Virtual machines 3. Containers Rob

OpenWhiskOpenSource; multiple providers:

IBMRedHatAdobe (for Adobe Cloud Platform APIs)

&, of course, self-hosted

Rob Allen ~ @akrabat

Page 14: Introduction to Serverless PHP - akrabat.com · 2018-08-31 · Introduction to Serverless PHP Rob Allen. Deployment options 1. Physical servers 2. Virtual machines 3. Containers Rob

Invoking an action

Rob Allen ~ @akrabat

Page 15: Introduction to Serverless PHP - akrabat.com · 2018-08-31 · Introduction to Serverless PHP Rob Allen. Deployment options 1. Physical servers 2. Virtual machines 3. Containers Rob

Serverless PHP

Rob Allen ~ @akrabat

Page 16: Introduction to Serverless PHP - akrabat.com · 2018-08-31 · Introduction to Serverless PHP Rob Allen. Deployment options 1. Physical servers 2. Virtual machines 3. Containers Rob

Hello world in PHP

Rob Allen ~ @akrabat

Page 17: Introduction to Serverless PHP - akrabat.com · 2018-08-31 · Introduction to Serverless PHP Rob Allen. Deployment options 1. Physical servers 2. Virtual machines 3. Containers Rob

Hello world in PHP

Rob Allen ~ @akrabat

Page 18: Introduction to Serverless PHP - akrabat.com · 2018-08-31 · Introduction to Serverless PHP Rob Allen. Deployment options 1. Physical servers 2. Virtual machines 3. Containers Rob

Running your action$ wsk action update hello hello.phpok: updated action hello

$ wsk action invoke hello --result{ "msg": "Hello World"}

Rob Allen ~ @akrabat

Page 19: Introduction to Serverless PHP - akrabat.com · 2018-08-31 · Introduction to Serverless PHP Rob Allen. Deployment options 1. Physical servers 2. Virtual machines 3. Containers Rob

DependenciesZip them up$ zip -r hello.zip hello.php vendor$ wsk action update hello hello.zip --kind php:7.1

Rob Allen ~ @akrabat

Page 20: Introduction to Serverless PHP - akrabat.com · 2018-08-31 · Introduction to Serverless PHP Rob Allen. Deployment options 1. Physical servers 2. Virtual machines 3. Containers Rob

Web accessAdd 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

Page 21: Introduction to Serverless PHP - akrabat.com · 2018-08-31 · Introduction to Serverless PHP Rob Allen. Deployment options 1. Physical servers 2. Virtual machines 3. Containers Rob

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

Page 22: Introduction to Serverless PHP - akrabat.com · 2018-08-31 · Introduction to Serverless PHP Rob Allen. Deployment options 1. Physical servers 2. Virtual machines 3. Containers Rob

Demo time!

Rob Allen ~ @akrabat

Page 23: Introduction to Serverless PHP - akrabat.com · 2018-08-31 · Introduction to Serverless PHP Rob Allen. Deployment options 1. Physical servers 2. Virtual machines 3. Containers Rob

To sum up

Rob Allen ~ @akrabat

Page 24: Introduction to Serverless PHP - akrabat.com · 2018-08-31 · Introduction to Serverless PHP Rob Allen. Deployment options 1. Physical servers 2. Virtual machines 3. Containers Rob

Resources• http://www.openwhisk.org• https://medium.com/openwhisk• https://github.com/akrabat/ow-php-ftime• https://www.martinfowler.com/articles/serverless.html

Rob Allen ~ @akrabat

Page 25: Introduction to Serverless PHP - akrabat.com · 2018-08-31 · Introduction to Serverless PHP Rob Allen. Deployment options 1. Physical servers 2. Virtual machines 3. Containers Rob

Thank you!

Rob Allen ~ @akrabat