One of the advantages of cloud computing is that it provides a flexible framework for just about any business need. Companies often create web applications that are highly complex and used by both internal employees, external partners, and customers. And, these applications have complex interactions, file repository needs, and transactional requirements.
Think of the typical web application that processes an expense report for employees. There are calls out to a database to pull the employee data, but there is also a financial component where employees might enter dollar amounts. The app might be designed to process these transactions, recording them and storing them. Depending on the company size, these transactions might occur within milliseconds for every amount the employee enters.
Of course, the web application needs to be available at all times, accurately record the data, and run quickly. Businesses that run efficiently and smoothly, without interruptions in service, tend to be the ones that grow, evolve quickly, and trump the competition.
AWS Lambda is a platform designed to run these application calls. It’s one piece in the Amazon Web Services portfolio of products but it is an important piece for the modern workplace. We expect any web application (or other internal applications and mobile applications) to “just run” without having to worry about whether there is enough computing power or storage.
Introduced in 2014, AWS Lambda executes code in the cloud. It is designed to do this as efficiently as possible. As such, it’s a Platform-as-a-Service (or PaaS) in that the code resides in the cloud and is designed to respond to application events. This can include the aforementioned application call to record a dollar amount in an expense report. The idea is to process these application events within milliseconds. In fact, as part of AWS, the main advantage of using Lambda is that it will reliably execute the application events in milliseconds. Application developers don’t have to manage the computing environment. They rely on AWS Lambda to execute back-end code within an application, knowing that part of the application won’t falter or fail (since Amazon provides service level agreements for nearly perfect up-time).
Here’s a few more examples of how this might work for a web application. For a company that runs a web application for recording sales transactions, an application call that runs on Lambda might be to trigger a daily back-up of the sales cloud database. For the expense reporting application mentioned earlier, they might use Lambda to process file transactions. This is all “serverless” in that there are no servers on-premise to manage; Lambda always runs in the cloud.
A few more examples might be to read and record a sensor used in an application that monitors the temperature in a building or to process an image upload in an application that maintains a database of all employees in a company. The possibilities for how an application uses the platform to execute code are nearly endless — and always available.
Web application developers have quite a few options in how they upload, execute, store, and process transactions as part of their code. They can run the application on their own servers in a data center, or run the application as part of an entire cloud computing environment. In that same application, another transaction might have to do with changing a customer name and address within the sales database. With Lambda, developers can trust those transactions that will occur in near-real-time, with high reliability, and without any processing issues.
An important part of Lambda is that there can be a heavy load of application calls but the platform will expand and increase capacity without the developer having to make any changes. That is the real power of Lambda in that it does not require intervention on the part of the web development team or from the Information Technology service management team.
To understand how to make the most of Lambda, it is helpful to compare this PaaS to other AWS offerings. For starters, Lambda is not a computing environment, so IT never has to login to the compute environment as they might with AWS EC2 (Elastic Compute Cloud).
Instead, developers upload their code to the platform, and it must be in a supported computer language, such as Java, Python or C#. (With EC2, since it is a cloud computing environment, developers can execute any application framework they want.) Also, Lambda is strictly “pay as you go” and also “pay what you use” in that companies only pay for the actual code execution. In fact, there’s a threshold where Lambda services are not charged if there are only a minimal number of application calls. Of course, this provides extreme flexibility in every application you want to run and allows companies to adjust their application needs as they wish.