Serverless computing basically adds another layer of abstraction on top of cloud infrastructure so that the developer doesn’t need to worry about servers, including virtual ones.
“Serverless doesn’t actually mean that there are no servers. It just means that you don’t have to deal with them anymore.”
This is the first educational conference I’ve attended for many years. I am happy to share some notes and insights from the last two days of great keynotes and technical sessions. I would start with a warm feedback to the organizers. The A Cloud Guru team, well done. Great conference, you guys did an amazing job.
Here are some TL; DRs, I hope it’ll give you a good overview of the eco-system, and overall messaging from the conference.
1. People are Choosing to Use Serverless Mainly Because of the Following Reasons
This message has repeated itself dozens of times during the conference, every talk started with a slide that presents these 3 simple reasons.
People that are heavily using Serverless today (Like iRobot, Adobe, Accenture etc..) say it very loud and clear:
- Less maintenance
- Less costs
- Time to market
Organizations (and mainly Enterprises) realize that developers are the main driver of their business and want to help them to deliver software, faster, to production. Serverless gives the developer an unprecedented capability.
2. Serverless use cases
This message also repeated itself many times. It is helpful to know what people are choosing to start from. Many of the speakers mentioned that the mentality has changed. It’s “Serverless first”, if it can’t run on Serverless they’ll look for other technologies.
- Web Tiers and Web Services
- Mobile Backends
- Form Processing
- DevOps Automation
- Stream Processing
- Image resizing
- Cron jobs
We really liked the session presented by Jared Short from Trek10 about building an app E2E including HTML rendering with Lambda and CDN. It was fantastic. Some inspiration from https://dekki.com, which completely runs its UI & Backend without servers.
Tim Wagner, General Manager of AWS Lambda has mentioned that he is very intrigued by
Big Data Serverless use cases, this is where he sees the natural fit for Serverless workloads.
Some Real Life Examples
- Thomson Reuters processes 4,000 requests per second with Serverless.
- FINRA (Financial Industry Regulatory Authority) processes half a trillion validations of stock trades, every day.
- Expedia triggers 1.2 billion serverless requests each month
Source: Amazon Web Services
3. Serverless Adoption
As presented by Jason McGee, VP & CTO, IBM Cloud, IBM analysts say that the Function as a Service (FaaS) market size will grow exponentially (7-10x) by 2021.
Serverless adoption is moving 10x faster than Container adoption.
Tim Wagner, General Manager of AWS Lambda has mentioned that AWS sees an impressive trend of Enterprise adoption among AWS Lambda.
4. Local Debugging & Serverless Functions
One of the ‘hottest’ topics was “Local Debugging”, how can developers test their Functions and see how the CI/CD process will look like.
In the 1st day Keynote, the Azure folks have given a demo of debugging Azure Functions on their local machines via MS Visual Studio in a NodeJS based web service example. The demo was great.
While touring the exhibition hall (tent) we had a conversation with one of the AWS Lambda Engineers:
Me: “what is the most frequent question that you’ve been asked today?”
AWS Lambda Engineer: “How do you test Lambda function locally”
Me: “What was your answer?”
AWS Lambda Engineer: “When you develop a Lambda function that uses SQS, SNS, Dynamo and other stuff in the cloud.. you can’t really debug it on your local. People just need to change their mindset”
5. Azure Functions and LogicApp Service
It seems that Microsoft Azure is very much advanced with their Serverless offering called “Azure Functions“. Their achievements are phenomenal, their roadmap is even more fascinating.
Logic App – is a new Azure Service that connects very well with Azure Functions and lets you integrate apps, data, and devices with a large ecosystem of software as a service and cloud-based connectors that include Salesforce, Office 365, Twitter, Dropbox and Google services.
Logic App can be very useful for creating PoCs very quickly and efficiently.
As an example, The Azure folks have shown a demo of how to create a Functions Flow in less than 10 minutes
- Function that monitors Twitter every 1 second and fetches Tweets with the word “Serverless”
- Another Function identifies the actual meaning of the language of the Tweet
- According to #2 exports the words and saves it to a database
- They created a real-time dashboard that shows the Tweets per minute
The demo worked flawlessly. It was a great demonstration of how you can mix and match, build a lego in few hours and have a live PoC running.
6. Adobe’s Use Case
Adobe has discussed during the 1st-day Keynote about how they are using IBM OpenWhisk on multiple Cloud providers (underlying EC2 / Azure Compute and their own data centers)
Adobe’s statement is: “Servers are dead”
They have a few open source projects that worth a look, one of them is:
7. Other Serverless Partners and Sponsors
- FuanaDB – cloud based – multi-region and fully transactional DB. Looks very promising.
- IOpipe – application Performance monitoring for AWS Lambda. They give you a piece of a code to inject in your Lambda codebase that responsible to send our events and data to their SaaS.
- stdlib – a Git-hub style platform specifically for Functions. Stdlib helps developers to share their services with others for free.
- OpenWhisk – is a serverless, open source cloud platform that executes functions in response to events at any scale.
- Serverless framework – open-source, application framework to easily build serverless architectures on AWS Lambda & more. I personally think that there is a huge potential in the market for the Serverless Framework, eager to see how this is going to evolve vs Amazon SAM and other public Cloud offerings.
- Google Firebase – Cloud Functions for Firebase lets you create functions that are triggered by Firebase products, such as changes to data in the Realtime Database, uploads to Cloud Storage, new user sign ups via Authentication, and conversion events in Analytics.
8. The Best Session.
From my point of view, the best session was given by Jason McGee, VP and CTO, IBM Cloud Platform.
Jason has introduced OpenWhisk, IBM Function as a service platform which can be deployed on any cloud (open source) while you can use the enterprise version under “IBM Bluemix”.
It was super interesting to hear about IBM’s initiatives around serverless, how fast they evolve, create community and deliver fully functional and useful product. Great UI, great connection between the API gateway product and the actual Blumix Functions.
The IBM folks are very proud to talk about the “under the hood” which gives a spectacular view into the actual mechanism that drives serverless and Function as a service, the magic behind. As a developer and DevOps, it is very important to understand how it works, in order for us to build our software better and more suitable for Serverless architecture.
9. Serverless and Security
“Even though we won’t have to manage servers in the future, hackers will still find ways to attack our software“
Guy Podjarny, CEO at Snyk has given a nice talk about security in the Serverless era.
The main discussion points of security @ Serveless were around:
- Code dependencies and 3rd parties
- More dependencies – more vulnerability.
- DDOS might cause you to pay a s*** load of money and reach your maximum rate limit of concurrent invocations.
- User Permissions and Authentication management are still there and we need to take care
- Cross Site scripting etc..- should be handled separately as well. If we have a bad piece of a code, it will remain a bad piece of a code even if it runs on a Serverless platform.
10. Serverless and Monitoring
The current monitoring features that the Public Cloud offer are considerably sufficient. You can monitor the number of invocations, application latencies, and to drill down to a specific function and find problems.
Companies like iRobot have discussed the way they handle DLQ (Dead Letter Queue – a queue which gathers the failed Lambda invocations). They have a separate process of monitoring and fixing their failed functions.
Google Cloud Functions catches expectations, console.log() events and sends it to Stack Driver.
The other alternatives are 3rd party monitoring tools that ‘wrap’ your code with some dependency that basically sends monitoring events with response to your application events.
11. Final words
The guys from the Serverless framework asked me “What does Serverless mean to you?”
It took me less than 5 seconds to answer:
Time to market.
Less maintenance and fewer costs.
A democratization of the Cloud, run everything, everywhere.
Imagine, if you could run functions at spot pricing, on any cloud.