Slides from the Disruptors in Tech meetup at Sydney University Business School on 14th March 2017.
The session provided an overview of the Serverless ecosystem along with an introduction to the Serverless Framework.
The session was geared toward aligning attendees on the subject matter prior to live demonstrations of deployment to FaaS platforms providing context for the session provided by Elliott Spira from GorillaStack on best practice when developing Serverless functionality. A few quick mentions were made of new tools and services including StdLib (https://stdlib.com/) and FaunaDB (https://fauna.com/).
Relevant links from the slides:
AWS Summit (Sydney):
https://aws.amazon.com/summits/sydney
A Cloud Guru (Free workshop in Sydney on 4th April 2017):
https://www.eventbrite.co.uk/e/sydney-serverless-workshop-tickets-32610469793
Global Serverless meetup network:
https://www.meetup.com/pro/serverless
Serverless Framework:
https://serverless.com
Clark Youngman website:
https://www.clarkyoungman.com
FaunaDB:
https://fauna.com
StdLib:
https://stdlib.com
GorillaStack:
https://www.gorillastack.com
Dave Clark on Twitter (@dkcwd):
https://twitter.com/dkcwd
Link to the video feed from the session (periscope.tv):
https://www.periscope.tv/strutdigital/1mrGmegBnLLGy?autoplay&t=45
Elliott Spira's talk on best practices when creating Serverless functions:
http://slid.es/em0ney/sls#
Elliott Spira's memebot project:
https://github.com/GorillaStack/serverless-slack-memebot
3. 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….
5. AWS Summit (Sydney) – next month
5th and 6th April 2017
Hordern Pavilion & Royal Hall of Industries,
Sydney
- Excellent sessions planned
- Make sure you register!
6. Free serverless workshop – next month
4th April 2017
Cliftons 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.
8. 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)
9. 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.
10. 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.
11. 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
13. 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...
14. 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…
15. 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
16. 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
17. 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”)
19. Introducing the FaaS platform providers
The main providers are:
- AWS Lambda
- Microsoft Azure Functions
- Google Cloud Functions
- IBM OpenWhisk
20. 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
21. 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
22. 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
23. 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”
26. 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
27. 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
28. 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
29.
30. 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
33. “Serverless” things to keep an eye on…
New tools and services are being marketed/released (StdLib)
34. “Serverless” things to keep an eye on…
New tools and services are being marketed/released (FaunaDB)
35. 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
36. Enjoy and share what you do…
I’m on Twitter: @dkcwd
LinkedIn: https://au.linkedin.com/in/daveclarkprofile