Amazon Web Services' new Lambda service has drawn praise from IT pros that have put the event-driven cloud orchestration...
tool through its paces since it became generally available in April.
Amazon Web Services (AWS) Lambda allows IT pros to programmatically orchestrate cloud infrastructure functions through node.js, and, as of this week, Java code, without the need to spin up or manage Elastic Compute Cloud (EC2) instances.
AWS officials cite the automatic resizing of photos when they are uploaded to the Simple Storage Service (S3) as an example use for Lambda.
"We actually have to do that," said Kevin Felichko, CTO of PropertyRoom.com, an online auction company based in Frederick, Md. "The integration with [the Simple Notification Service (SNS)] can open up a lot of different ways to kick off functions that don't require a full EC2 instance to run."
Another use Felichko is exploring is to have Lambda trigger an internal notification if a member of his staff deploys a high-priced service or instance in the AWS cloud.
Greg ArnetteCTO, Sonian, Inc.
Felichko is far from alone in drawing up examples of how AWS Lambda could be used – white boards are busy all over the AWS user base as engineers think of other ways to deploy the technology.
"It really is going to fundamentally change the way new projects will be brought into the cloud, in terms of the way we program to the cloud and think about architecting systems," said Greg Arnette, CTO of Sonian, Inc., an email archiving cloud service provider located in Dedham, Mass.
Sonian expects to use Lambda extensively in its internal work pipelines, Arnette said. Currently, the pipelines are configured to automatically launch EC2 instances in response to events, and spin down those instances when the processing is done. That means the company would have to pay for the full hour each EC2 instance is used. AWS Lambda, on the other hand, involves a much more finely grained pricing scheme.
AWS Lambda and the DevOps evolution
Cloud computing in general has focused on getting more efficiency out of physical infrastructures and abstracting away management complexities. Docker and other containers also provide a way to squeeze more out of the infrastructure.
"Lambda is a step ahead of all that," Arnette said.
As AWS users like Arnette get ready to invest time and resources in Lambda, IT operations folks could be forgiven for getting antsy at the prospect that executing infrastructure functions at the code level might phase them out.
"Every state of the art in the automation and deployment of code tends to reduce the previous human hands that were involved," Arnette said. "The toolsets like Chef and Puppet are less needed in a post-virtual-compute world … so the way we think about things like DevOps will change as things like Lambda get more popular."
At the same time, Lambda could create opportunities for the next version of a Chef-like orchestration system to manage, visualize and correlate Lambda functions, Arnette said.
Other kinks to be worked out with AWS Lambda include deeper integration with popular development environments.
"Right now you have to upload your code to S3 or to the console," Arnette said. "Linking it more intimately into the [integrated development environment] will be important, as will reporting and monitoring and more language runtime support."
The container question
As IT pros explore uses for AWS Lambda, an emerging debate concerns whether to overhaul systems to focus on more efficient code-based event triggers or whether to avoid lock-in and achieve greater cloud computing efficiency by deploying containers instead.
Applications based on microservices are a prime example of a scenario that could go either way.
"We've got one team that's really interested in microservices, but they're looking more at containers like Docker as the platform," said James Fogerson, senior solutions architect with Robert Half International, Inc., a staffing firm based in Menlo Park, Calif. "We'll need to have some discussion about ground rules as to when you use containers and when you use Lambda."
AWS Lambda also locks users in to Amazon's cloud ever more intimately, as opposed to the Docker approach where, theoretically, users could take applications cross-cloud.
"There's definitely a tradeoff," Arnette said.
Lambda functions still seem to Fogerson an easier approach than containers for internal applications, however.
"You don't have to worry about setting things up, building a new environment and managing it," he said.