current state of "serverless"
TRANSCRIPT
Current state of “Serverless” Serverless provider ecosystem, use cases and points of interest
March 14th 2017 – Disruptors in Tech
Twitter: @dkcwd
Before we get started…
Reminder about this session The slides will be made available after the session and you are more than welcome to share them. Any relevant links will be posted in the description on the SlideShare page.
We have people attending with different backgrounds with different levels of experience.
You’re more than welcome to ask questions and share knowledge both during and after the session.
Let’s get started….
Some announcements…
AWS Summit (Sydney) – next month
5th and 6th April 2017Hordern Pavilion & Royal Hall of Industries,Sydney
- Excellent sessions planned- Make sure you register!
Free serverless workshop – next month
4th April 2017Cliftons Sydney, 60 Margaret Street,Sydney, 2000
Interested in a hands on workshop?- Make sure you register!
Upon arriving you will meet your instructor, and receive a Serverless workbook with step-by-step instructions on how to build a video streaming app.
Quick overview of “Serverless” ecosystem
YAAaaS – Yet Another Acronym as a…
You may have been seeing more “as a Service” acronyms including:
- FaaS (Function as a Service)- BaaS (Backend as a Service)- MBaaS (Mobile Backend as a Service)
BaaS solutions Backend as a Service BaaS solutions include offerings such as AWS Cognito
AWS Cognito is a user management and data synchronization service designed to provide user related backend functionality for an application without the need to reinvent the wheel and/or maintain any servers directly.
FaaS solutions Function as a Service FaaS solutions facilitate the “on demand” execution of custom code in response to specific events.
While most Platform as a Service (PaaS) solutions are designed to be “always on” and ready to handle requests, FaaS solutions are initialized and shut down on every single request.
Tonight, we’re focused on FaaS FaaS provider platforms enable you to deploy the smallest units of functionality, functions...
There’s a good chance that most people here tonight will have heard of AWS Lambda but there are others which we’ll discuss shortly
Who thinks “Serverless” is the right term?
Serverless: There are still servers everywhere
Please DO NOT sack your ops team…
\8-D
And repeat: “Serverless Architecture” is not the answer to every question...
Servers
Servers
Serverless: There are still servers everywhere
People often feel the need to mention, “there are still servers involved”:
- Developers write functions- Functions are packaged for deployment - Platform provider executes functions
- Limited control over the execution…
No servers and configuration to manage?
You may not need to directly maintain servers or containers but there is definitely still work to do in terms of configuration
That’s one of the reasons for growth in the number of frameworks which are emerging to assist with deployment to FaaS platforms
Why would my team “go Serverless”?
There is potential to reduce your infrastructure spend by avoiding charges for idle servers (including container hosts) and increase the rate at which your team can develop/deploy new features
Subject to the usage policy of a given “Function as a Service” provider, there may be significant benefits for you in terms of scalability in addition to the points mentioned above
Common Serverless use cases Some common use cases: - Collecting and processing analytics - Export, Transform, Load (ETL) operations - Image/video processing (e.g. resize/transcode) - Interactive backends (e.g. chatbots and webhooks) - Scheduled function execution (e.g. “Cron as a Service”)
About the FaaS platform providers
Introducing the FaaS platform providers
The main providers are:
- AWS Lambda
- Microsoft Azure Functions
- Google Cloud Functions
- IBM OpenWhisk
All providers have different offerings
Make sure you understand the programming model for the vendor solution you are considering so you can work out your development strategy accordingly
For example, thinking about provider interoperability, separating business logic and provider logic
Lambda at the Sydney AWS Summit (2016)
At the AWS Summit in Sydney during April of last year, there was a lot of excitement surrounding Serverless programming paradigms using AWS Lambda
There was significant focus on examples of image processing and customer enablement
AWS Serverless Computing Manifesto:
- Functions 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
Various concerns about adopting Lambda
The examples shown at the AWS Summit were compelling however:
- adding functions via AWS interface seemed cumbersome - lack of understanding how to deploy functions via CLI - many concerned about “vendor lock-in”
Enter the frameworks…
Tonight, we’re focused on…
Introducing Serverless framework
The project exists at: https://github.com/serverless/serverless The first commits to the project were made on April 21st, 2015 Working toward supporting major vendors reducing lock-in fear
Are there example projects?
Yes! You can find out more here https://github.com/serverless
Note: Elliott Spira created an excellent tutorial on creating a HipChat Connector
Check it out here: https://bitbucket.org/gorillastack/serverless-hipchat-connect
Can you show me a reference diagram?
Yes! For those building web apps, I’ll show you one for a simple website on the next slide.
The “serverless backend” is based on our website
https://www.clarkyoungman.com
What is the workflow like? Vendor configuration before anything else Initial project setup via CLI Development Local testing Deployment of endpoints and functions via CLI Rinse & Repeat
Demo time
We’ll go through some deployments...
Quick mentions…
“Serverless” things to keep an eye on… New tools and services are being marketed/released (StdLib)
“Serverless” things to keep an eye on… New tools and services are being marketed/released (FaunaDB)
Global meetup network Learn and share with members of the community If there isn’t one near you, you can find support to start one…
https://www.meetup.com/pro/serverless
Enjoy and share what you do…
I’m on Twitter: @dkcwdLinkedIn: https://au.linkedin.com/in/daveclarkprofile