Likelihood to Recommend [AWS Lambda] is very well suited for the projects that doesn't have any infra but needs it where short running processes are required. But if your application need to run continuously than this might not be the very apt tool for you.
Read full review It's well suited if:
The organization has large number of applications that needs to be deployed frequently. The organization is tied to the DevOps mindset. The organization has programs in different languages. The applications does not need EJB's support that servers like web logic provide. It's less suited if:
The applications needs security configuration within the same CloudFoundry instance. The organization, for whatever reason does not want developers to manage the instances. Read full review Pros Lambda provides multiple methods for triggering functions, this includes AWS resources and services and external triggers like APIs and CLI calls. The compute provided my Lambda is largely hands off for operations teams. Once the function is deployed, the management overhead is minimal since there are no servers to maintain. Lambda's pricing can be very cost effective given that users are only charged for the time the function runs and associated costs like network or storage if those are used. A function that executes quickly and is not called often can cost next to nothing. Read full review Support for Orgs and Spaces that allow for managing users and deployables within a large organization. Easy deployment, deploying code is as simple as executing single line from CLI, thanks to build-packs. Solid and rich CLI, that allows for various operations on the instance. Isolated Virtual Machines called Droplets, that provide clean run time environment for the code. This used to be a problem with Weblogic and other application servers, where multiple applications are run on the same cluster and they share resources. SSH capability for the droplet (isolated VM's are called droplets), that allows for real time viewing of the App code while the application is running. Support for multiple languages, thanks to build-packs. Support for horizontal scaling, scaling an instance horizontally is a breeze. Support for configuring environment variable using the service bindings. Supports memory and disk space limit allocation for individual applications. Supports API's as well as workers (processes without endpoints) Supports blue-green deployment with minimal down time Read full review Cons Putting a significant portion of your codebase into AWS Lambda and taking advantage of the high level of integration with other AWS services comes with the risk of vendor lock-in. While the AWS Lambda environment is "not your problem," it's also not at your disposal to extend or modify, nor does it preserve state between function executions. AWS Lambda functions are subject to strict time limitations, and will be aborted if they exceed five minutes of execution time. This can be a problem for some longer-running tasks that are otherwise well-suited to serverless delivery. Read full review Does not support stateful containers and that would be a nice to have. Supports showing logs, but does not persist the logs anywhere. This makes relying on Cloud Foundry's logs very unreliable. The logs have to be persisted using other third party tools like Elk and Kibana. Read full review Usability I give it a seven is usability because it's AWS. Their UI's are always clunkier than the competition and their documentation is rather cumbersome. There's SO MUCH to dig through and it's a gamble if you actually end up finding the corresponding info if it will actually help. Like I said before, going to google with a specific problem is likely a better route because AWS is quite ubiquitous and chances are you're not the first to encounter the problem. That being said, using SAM (Serverless application model) and it's SAM Local environment makes running local instances of your Lambdas in dev environments painless and quite fun. Using Nodejs + Lambda + SAM Local + VS Code debugger = AWESOME.
Read full review Support Rating I have not needed support for AWS Lambda, since it is already using Python, which has resources all over the internet. AWS blog posts have information about how to install some libraries, which is necessary for some more complex operations, but this is available online and didn't require specific customer support for.
Read full review Alternatives Considered Azure Functions is another product that provides lambda functionality, but the documentation for some of Azure's products is quite hard to read. Additionally, AWS Lambda was one of the first cloud computing products on a large cloud service that implemented lambda functions, so they have had the most time to develop the product, increase the quality of service, and extend functionality to more languages. Amazon, by far, has the best service for Lambda that I know.
Read full review While Docker shines in providing support for volumes and stateful instances, Cloud foundry shines in providing support for deploying stateless services.
Heroku shines in integrating with Git and using commits to git as hooks to trigger deployments right from the command line. But it does not provide on-premise solution that Cloud foundry provides.
Read full review Return on Investment I was able to perform a lot of processing on data delivered from my website and little or no cost. This was a big plus to me. Programming AWS Lambda is quite easy once you understand the time limits to the functions. AWS Lambda has really good integration with the AWS S3 storage system. This a very good method of delivering data to be processed and a good place to pick it up after processing. Read full review Positive impact, since it simplifies the deployment time by a huge margin. Without cloud foundry, deploying a code needs coordination with infrastructure teams, while with cloud foundry, its a simple one line command. This reduces the deployment time from at least few hours to few minutes. Faster deployments promote faster dev cycle iterations. Code maintenance such as upgrading a Node or Java version is as simple as updating the build-pack. Without cloud foundry, using web logic, the specific version only supports a specific version of Java. So updating the version involves upgrading the version of web logic that needs to involve few teams. So without cloud foundry, it takes at least few days, with cloud foundry, its a matter of few mins. Overall, happier Developers and thats harder to quantify. Read full review ScreenShots