Serverless App Development with AWS Lambda
If you're building a web application, you know there is a need for a driving force behind the scenes to deal with interactions from your users - like clicking a link, altering some data on a database, or activating an account. No app is static, so you will need something to drive these interactions, which is usually the duty of a server.
If you're already using Amazon's AWS services, such as EC2 (Elastic Compute Cloud) for your development, you'll have realised a lot of the advantages of using a virtual cloud-based server solution. But you've heard of going "serverless" and are intrigued by the cost and logistical implications.
One such service is AWS Lambda.
Beyond the clouds - serverless functions.
The trouble with traditional servers is that they can be a major upfront investment and a drain on your budget. You have to buy equipment, pay for server engineers and administrators, and provide your own security, not to mention patch, maintain and upgrade as you go.
Cloud and virtual servers provide a workaround to the costs and hassle, but you still must think about capacity, redundancy, patching and administration. So what if there were a kind of "Server on demand" service, fully managed elsewhere? Enter Lambda.
Imagine Lambda as a facilitator. Without needing to go into the expense of purchasing and maintaining a server to handle the events that are actioned on your web apps you can instead call this service -- on demand -- to run them for you.
Instead of thinking about running servers, you can think functions. Third-party code libraries are allowed, and you can upload your programming or use the built-in IDE. Samples are built in for common tasks, saving you time.
AWS Lambda example scenarios.
Say a user uploads a picture to be stored in your S3 bucket, and you need this automatically resized for web and mobile devices, Lambda will activate as soon as the upload takes place and run this for you. Then it will stop running. So you've only paid for the time it has taken to execute your function, and not for it to sit and wait around 24/7. This saving on redundant runtime could be a huge bonus for businesses that have variability in how often they require this kind of computational power.
Another great example of how to leverage Lambda is when an entry in your Amazon DynamoDB database is changed. Lambda can be triggered to alert other services, and output metrics to your Amazon CloudWatch Dashboard, giving you instant visibility of the dynamics of your data and detailed logs.
When you upload your code for your functions, is securely stored in S3 under encryption. When your code is triggered, Lambda performs checks on its integrity.
Yes, Lambda only works with the other AWS services, but it is an interesting look into what may be the future of all servers - demand-based computational power.