Is Lambda finally ready to takeoff in the enterprise?
8 years since it was launched, will Lambda finally see the tipping point with recent re:Invent 2022 announcements?
AWS Lambda was introduced in AWS re: Invent 2014, about 8 years ago. Since then, a lot has been spoken about serverless architectures and how they can change the way we build applications. Since then, the word "serverless" has become a marketing term, and all the managed service that doesn't expose the underlying servers is now termed under "serverless" monicker.
That said, AWS Lambda is the closest to the true potential of what serverless can do. It has practically democratized event-driven architectures and really made “functions” the first-class citizens of modern application architecture.
Since 2014, Lambda has added many innovative features such as Step functions, multiple-language runtimes, Serverless Application Model (SAM), Local functions, Function URLs, Lambda @ Edge, and many more. While the promise of Lambda is great, When it comes to real enterprise use, it falls short in many areas. Beyond the typical event-triggered maintenance task use cases, there are too many limitations and challenges.
State management is a thorn in the flesh
The state management and managing workflows among the Lambda functions continue to be challenging, with no easy solution in sight even now.
Cold starts are a non-starter for Java
Another major issue is the boot-up times when there is a cold start. While Java as the runtime is added to Lambda in 2015, the cold starts are a major issue. According to RedMonk, Java was the second most popular programming language in the enterprise in 2021, with a market share of 17.3%. Lambda cold-starts with Java makes it practically impossible to use for any time-sensitive tasks. Imagine a 5-10s start-up time for a function, and how it would affect your users.
DevX sucks
Developer eXperience continues to suck with Lambda. While Serverless framework and SAM have helped a bit, I see they fall short, when it comes to IDE-based development, which is the most common way developers work.
re: Invent 2022 - Focus back on Lamdba
Despite Lambda’s success, its adoption for Java applications is very limited. One of the primary reasons is "cold starts." Firecracker, a lightweight virtual machine (Micro VM), and VM caching have improved the boot-up times. However, the problem of cold starts is a bigger issue for Java applications. JVM initialization and startup can take many seconds, cold starts are a big problem. While GraalVM is an option for some, it cannot fit in most scenarios.
Here is the micro-benchmark of Cold start times of Lambd using different language run-times
Source: Benchmarking AWS Lambda runtimes in 2021: cold start
With SnapStart, Lambda initializes the function when a new version is published and then takes a snapshot of the memory and disk state of the initialized environment using Firecracker microVMs. When the function is invoked, Lambda resumes new execution environments from the cached snapshot instead of initializing them from scratch, reducing startup latency. SnapStart for Java, can improve the startup performance of latency-sensitive applications by up to 10x, with no extra cost and typically no changes to the function code. We might finally see Lambda Serverless applications in Java taking off.
re: Invent 2022 - Application Composer Improves the DevX
Building serverless applications based on Lambda is not easy. Especially given Lambda is a smaller subset of a larger application, and it requires working with multiple other services. Application composer is a visual designer to build Serverless applications including Lambda. It allows visual plumb various serverless services within AWS including Lambda, API Gateway, DynamoDB, SQS etc., While it doesn’t necessarily help with Lamdb functions development directly, it is a small step towards developing serverless application architecture easy.
The battlegrounds for Next Cloud Wars
In this year alone, AWS has made over 1800 announcements, with 360 of them coming during the week while the re:Invent conference is going on at Las Vegas. I am sure it is not news now that AWS is no longer a cloud infrastructure provider. Instead, the company has expanded its offering to include a wider range of products and services. I have looked at all the announcements this year. In fact, only 20% of their announcements in 2022 were related to Compute, Storage, and Networking, while more than 35% focused on databases, analytics, and AI. This shows that AWS is a software juggernaut, continuing to diversify and evolve beyond just providing cloud infrastructure.
Here is a graphical view of the announcements that were done in 2022.
Many of the announcements in re: Invent 2022 are enhancements or feature upgrades to existing services and will be noise for most of us unless you are working in the trenches of the respective services.
Battle Ground #1 - Data & Analytics
The focus on Databases, AI, and Analytics clearly seems the battleground for Cloud wars now. My observations of many enterprise clients do indicate that Data & analytics is an area Google Cloud continues to gain. AWS is relentless in making new offerings in this space. Some of the major announcements:
Glue 4.0 - The Serverless ETL service brings some interesting upgrades
Tons of updates on Quicksight
Direct Integration of Aurora into RedShift with Zero-ETL
Battle Ground #2 - Developer Tools
Developers continue to play a major role in Cloud adoption. AWS while has all the developer love, when it comes to developer tools, the developers look the other way. Despite AWS ticking all the boxes with respect to developer tools, the response from developers is lukewarm. Microsoft with its open approach, and with the acquisition of GitHub has the right momentum. But one cannot fault AWS for not trying. Re:Invent saw quite a few announcements in the developer tooling space.
AWS Code Catalyst is the new integrated offering competing head on with GitHub and GitLab. It is clearly a developer offering that has been thought through from developer's point of view, I say that because you wouldn’t even need an AWS account to use it.
I’ve already mentioned Application Composer earlier.
AWS Amplify made a flurry of enhancements and vying to be the developer platform/framework of choice when it comes to developing web and mobile applications.
Battle Ground #3 - Industry Applications
Industry application is unchartered territory for cloud providers. That said, it is also the most attractive from a growth potential perspective. For now, workplace productivity, and contact center are easy targets for most cloud providers, but delivering real industry applications in the areas such as Supply Chain, Order Management, and Commerce is complex.
I am sure this is one area where Cloud Providers continue to actively pursue and strategize. On one hand, they need to work seamlessly with existing partners like SAP, SalesForce, and Oracle, and on the other hand, they need to compete with them at some point. Competing with them head-on by using the playbook used by typical enterprise application vendors does not necessarily work.
Omics offering that has been announced at re:Invent, is a good indication of the Cloud Vendor’s future strategy for Industry applications. Omics builds on AWS’s scale and the existing platform capabilities to handle large volumes of data and associated processing for genomics. AWS Supply Chain is another offering, that builds on the analytics chops of AWS while working with SAP and other existing industry software products. We could expect that the Cloud providers will offer more such Industry applications, building on their unique abilities of scale, on-demand nature, and their existing platform services.