Upload
docker-inc
View
360
Download
0
Embed Size (px)
Citation preview
ServerlessCultureDon’t build, when you can buy. Build as little as necessary.
Build with the minimum operational complexity.
Maybe all you need are some circles
@ewindisch @IOpipes
The 12 Factor AppI. Codebase One codebase tracked in revision control, many deploys II. Dependencies Explicitly declare and isolate dependencies III. Config Store config in the environment IV. Backing services Treat backing services as attached resources V. Build, release, run Strictly separate build and run stages VI. Processes Execute the app as one or more stateless processes
VII. Port binding Export services via port binding VIII. Concurrency Scale out via the process model IX. Disposability Maximize robustness with fast startup and graceful shutdown X. Dev/prod parity Keep development, staging, and production as similar as possible XI. Logs Treat logs as event streams XII. Admin processes Run admin/management tasks as one-off processes
@ewindisch @IOpipes
Amazon’s “Serverless (functions) Manifesto”✤ Function are the unit of deployment and scaling. ✤ No machines, VMs, or containers visible in the programming model. ✤ Permanent storage lives elsewhere. ✤ Scales per request; Users cannot over- or under-provision capacity. ✤ Never pay for idle (no cold servers/containers or their costs). ✤ Implicitly fault-tolerant because functions can run anywhere. ✤ BYOC - Bring Your Own Code. ✤ Metrics and logging are a universal right.
@ewindisch @IOpipes
Platforms- AWS Lambda - Azure Functions - Google Cloud
Functions - Oracle’s fn() - IBM Bluemix
Functions - OpenWhisk - Spring Functions
- Galactic Fog - Stdlib - Now.sh - Auth0 Webtasks &
Extend - AppEngine Classic - Heroku - Parse - Firebase
- Google PubSub - Google BigQuery - AWS S3 - AWS SNS - AWS Athena - AWS Kinesis - AWS DynamoDB & more
@ewindisch @IOpipes
Platforms - FaaS providers- AWS Lambda - Azure Functions - Google Cloud
Functions - Oracle’s fn() - IBM Bluemix
Functions - OpenWhisk - Spring Functions
- Galactic Fog - Stdlib - Now.sh - Auth0 Webtasks &
Extend - AppEngine Classic - Heroku - Parse - Firebase
- Google PubSub - Google BigQuery - AWS S3 - AWS SNS - AWS Athena - AWS Kinesis - AWS DynamoDB & more
@ewindisch @IOpipes
Platforms - Event sources- AWS Lambda - Azure Functions - Google Cloud
Functions - Oracle’s fn() - IBM Bluemix
Functions - OpenWhisk - Spring Functions
- Galactic Fog - Stdlib - Now.sh - Auth0 Webtasks &
Extend - AppEngine Classic - Heroku - Parse - Firebase
- Google PubSub - Google BigQuery - AWS S3 - AWS SNS - AWS Athena - AWS Kinesis - AWS DynamoDB & more
@ewindisch @IOpipes
Containers + processes long-lived, automatically scaled and garbage-collected.
4.5 minutes to 4.5 hours
@ewindisch @IOpipes
Amazon’s “Serverless (functions) Manifesto”✤ Function are the unit of deployment and scaling. ✤ No machines, VMs, or containers visible in the programming model. ✤ Permanent storage lives elsewhere. ✤ Scales per request; Users cannot over- or under-provision capacity. ✤ Never pay for idle (no cold servers/containers or their costs). ✤ Implicitly fault-tolerant because functions can run anywhere. ✤ BYOC - Bring Your Own Code. ✤ Metrics and logging are a universal right.
@ewindisch @IOpipes
WarmingAmazon automatically scales VMs & allocates to users. They do not warm processes/containers
@ewindisch @IOpipes
Triggers & Events- Invoke functions via API
- Configure event source to function mappings
@ewindisch @IOpipes
ScheduleEvents are mapped to running containers first,
Or new containers are spawned to process events.
@ewindisch @IOpipes
InvokeSynchronous HTTP API Container is spawned, if not existing.
Existing container is unpaused, fed event, then paused.
@ewindisch @IOpipes
Garbage Collection- Reap containers when they're no longer active
- Reap VMs when they’re no longer active
@ewindisch @IOpipes
Putting it back togetherhttps://prezi.com/view/K5Xz8xT6BoTYbx2EgGk1/
@ewindisch @IOpipes
Don’t build when you can buy(you probably shouldn’t build anything I just showed you!)