Lambda replaces the need to run a separate virtual machine to coordinate multiple AWS services.
Continuing to roll out new compute services at an impressive clip, Amazon Web Services has introduced a way for programmers to trigger operations in their AWS deployments without running a full virtual machine, potentially reducing maintenance work and cost.
The service, called AWS Lambda, will provide a virtual space for programmers to run scripts or business logic programs that can be activated when some event occurs, such as a user uploading a photo. The script can then trigger other services in the AWS arsenal, such as storing the photo on Amazon S3 (Simple Storage Service), or execute other operations, such as generating a series of thumbnails based on the photo. Lambda could be used to coordinate operations of complex event-driven back-end services, according to the company.
"You can write code without having to manage any infrastructure," said AWS chief technology officer Werner Vogels, who introduced the technology during his keynote Thursday at the company's Re:Invent user conference in Las Vegas. "Your code will only run when needed. You can run it once a month, or run thousands of these functions a second."
Al Hilwa, a software development analyst for IDC, said the Lambda service was born of the need to do small amounts of processing based on event triggers. "But the availability of such a simple service at an attractive price and pricing model is far reaching in its implications," he wrote in an e-mail. "I predict there will be significant applications that will be built incrementally using this functional programming approach."
For those running multiple AWS services as a single operation, coordinating these services usually involves running a program on a full Amazon virtual machine (VM). Lambda does away with the need to run a separate VM, as well as the chore of installing and maintaining the software needed to run the program. Instead, Lambda provides just a language runtime environment for running just the program itself.
"You are essentially just thinking about your code and what will trigger your code. We deal with all the rest," said Ariel Kelman, AWS head of worldwide marketing, in a follow-up interview.
A Lambda service can be triggered by an event that occurs in another AWS service. Initially, the service can recognize only events that occur in S3, the DynamoDB database service, or in the Amazon Kinesis real-time streaming service. Most all AWS services will eventually be supported, Kelman said.
Lambda seemed to excite the developer-heavy crowd at Re:Invent; the company held an explanatory technical session immediately after the keynote that packed a large meeting room.
Still, not all attendees were sold on the service immediately. Sean Du, a software architect for a financial services company that uses AWS, was concerned the service could potentially lock customers into AWS, because it incorporates higher-level business logic, rather than the generic infrastructure services that can be found elsewhere.
Lambda will also need debugging and testing tools, especially as the scripts people write may grow more complex, Du added.
AWS Lambda pricing will be based on the amount of compute time used to run the script, in increments of 100 milliseconds. The company is offering a preview of the service and expects to offer the full commercial version in 2015.
Lambda was one of a number of new services the company introduced at the Re:Invent conference. Vogels also detailed how AWS will start supporting Docker containers, a virtualization technology that provides a way to package applications so they can be easily deployed and moved around.
On Wednesday, the company introduced a new high-performance database service modeled on MySQL, called Aurora, and previewed a set of management tools for managing the development of new applications.