WavebreakmediaMicro - Fotolia

AWS improves Lambda serverless platform for developers

Several touches to AWS Lambda aim to soothe developers' concerns over the serverless computing platform, including the ability to use their choice of tools.

LAS VEGAS -- A slew of updates to the AWS Lambda serverless computing platform make it easier for developers to build and deploy applications.

At the AWS re:Invent 2018 conference here this week, AWS added touches to satisfy even the most finicky programmers' reservations about Lambda and serverless computing. These include the ability to launch a new open source project; provide a serverless approach to rapidly deploy and secure application functions in a multi-tenant environment; and use preferred integrated development environments (IDEs), programming languages and programming models for Lambda serverless development.

Firecracker implements a VM manager, based on KVM, to enable developers to launch secure micro-VMs in under a second for serverless computing, said Holly Mesrobian, director of engineering for AWS Lambda at Amazon.

Firecracker also improves control, efficiency and security during implementations of new app development architectures, such as serverless computing, said Charlotte Dunlap, an analyst with GlobalData in San Francisco.

AWS open sourced the technology, a move that could foster strong community contribution and use from other companies, including competitors, said Rhett Dillingham, an analyst at Moor Insights & Strategy in Austin, Texas. AWS has been criticized for its spotty relationship with the open source community.

The push to open source part of its serverless framework is a strategic step to own the standard for a key piece of cloud infrastructure, said Holger Mueller, an analyst at Constellation Research in San Francisco.

"AWS is playing catch-up to Google here, which has positioned Kubernetes as a standard and is working for the same with Istio," he said. "However, AWS has a chance to create the serverless standard with Firecracker, given the volume, popularity and stability of its Lambda service."

Meanwhile, AWS added support for some of developers' most popular tools, so they can build Lambda serverless apps in the language of their choice.

Werner Vogels, CTO, Amazon
Werner Vogels, CTO, Amazon

Last year, AWS delivered the Cloud9 IDE, which it emphasized as ideal for serverless development. Here at re:Invent 2018, the company previewed toolkits to support JetBrains' PyCharm and IntelliJ Python and Java IDEs, respectively, as well as the Microsoft Visual Studio Code lightweight code editor. AWS also introduced the Lambda Runtime API, an interface to use any programming language or language version to develop serverless applications. In his keynote, Werner Vogels, CTO at Amazon, also unveiled runtimes for C++, Rust and Ruby, and partnerships to provide runtimes for Erlang, Elixir, COBOL, Node.js and PHP.

AWS has a chance to create the serverless standard with Firecracker, given the volume, popularity and stability of its Lambda service.
Holger Muelleranalyst, Constellation Research

The addition of the Runtime API enables developers to build custom runtimes that can support any programming language, not just those that AWS supports out of the box, said Johnny Boursiquot, a Baltimore-based cloud engineer and Go language trainer.

"The announced support for the Ruby programming language, for example, does just that," he said. "The net effect is that developers don't have to wait for AWS to add support for their favorite programming languages anymore and can simply deploy custom runtimes that do."

AWS also addressed other issues raised by developers, such as managing code shared across multiple Lambda functions and WebSocket support on the Amazon API Gateway.

The new Lambda Layers feature lets developers centrally manage code and data that is shared across multiple functions. And the WebSocket support lets clients maintain long-lived connections with servers to exchange messages, Boursiquot said.

"Previously, the client would have had to repeatedly poll the server to check for updates, which is very inefficient, especially for real-time use cases, such as chat apps," he said.

Dig Deeper on AWS cloud development

App Architecture
Cloud Computing
Software Quality