Serverless business cases with AWS Lambda
Impacting facts: Serverless is the cloud service segment that is growing faster than other emerging (and hyped) services –like machine learning and IoT– and it is expected to reach the $7.7B by 2021. CB Insights points out that Serverless is the highest growth public cloud service in the market; here some stats of each growth.
Tell me, is there any startup or Unicorn startup working out the cloud? I bet that 90-95% of all startups are in the cloud, either with Azure, AWS or GCP. This is not the case of the remaining percentage of startups due to compliance constraints. In a few years, the same trend will happen to the serverless paradigm, every startup and enterprise will adopt it.
The Serverless ecosystem will replace the full cloud development stack, in the future, enterprises will look for Serverless developers, instead of DevOps, Cloud, or web developers” – Alfonso Valdés
One of the key aspects of cloud-native development is the incorporation of Serverless principles for digital products, and Amazon Lambda is an essential AWS service that can help with the adoption of serverless. As an IT Leader, Software Engineer Director or CTO, you require to adopt disruptive technologies. Furthermore, you need to identify the benefits of these technologies, how to employ them in your business, and the value that can bring into your enterprise – clearly to reduce web development costs, and increase revenue. These key aspects will help you incorporate eloquent and wise decisions within your organization.
Before diving into AWS Lambda, I’d like to describe serverless computing.
What is serverless computing?
Serverless computing is the abstraction of computing resources (IT layers),– no servers, no load balancers, no firewall, no networking, and no microservices – just your code and you, nothing else to develop. Additionally, Serverless is an approach to run applications without servers! It’s a totally new ecosystem that helps you to run applications, code, and function without servers or microservices to configure. Meaning: You don’t have to worry about scalability, and protect your servers, just merely focused on developing your business logic, and algorithms. All this is commonly called “No-Ops.”
No-Ops is coming” –Alfonso Valdés
Fundamentally, to fully utilize Serverless computing, you will need Backend services; Backend As a Service (BaaS) including AWS Cognito, AWS IoT hub, or API Gateway. As well, you will need a serverless platform to run your serverless applications which, in this case, acts as a Function As a Service (FaaS) and is triggered by events. So, overall to Operate a serverless ecosystem, you need two key elements: BaaS, and a FaaS.
- Focus on true development. Every new disruptive technology declares a reduction on your secondary tasks, and a focus on your business logic, well… Serverless enables you to truly focus on your algorithms, code, and nothing more.
- There’s no infrastructure to manage (Zero-administration).
- Engineering efficiency. It is obtained by reducing your development, and operation costs.
- Compatible with microservices.
The solution: AWS Lambda
AWS Lambda is an AWS platform that helps you create serverless applications. Just bring your code, and execute it in Lambda functions! As the rest of the cloud computing paradigms, you get charged by the pay-per-execution model, but this time with milliseconds (100 ms) up to 15 min as threshold limit. Additionally, there is no charge when your code is not running, therefore it ‘ll bring cost reductions in your hosting costs.
Lambda allows you to run your code without provisioning servers and zero administration, also is SOC, HIPAA, and PCI compliant. Lastly, it employs the same AWS shared responsibility model as any other AWS service. Hence, Financial services and Healthcare companies are allowed to utilize AWS Lambda with their API applications and keep compliant.
What are some of the Lambda characteristics?
- Lambda enables applications to create event-driven architectures and optimized compute-usage.
- The classic AWS is Autoscalable, and fault-tolerant – like the rest of the AWS services.
- Acts as a Function as a Service (FaaS).
- This Serverless service is a true on-demand service from an hourly rate to milliseconds rate, hence it optimizes the infrastructure costs.
- It supports Node.js, Python, Ruby, Go, Java, and .Net.
What are some good Lambda uses cases for your cloud-native applications?
- Create a Serverless website. Alongside with Amazon S3, CloudFront, and AWS Lambda, you can create a static website similar to any landing page, Front-end application leveraging React, Vue.js or Angular.
- Create a back-end application fully serverless utilizing AWS Lambda functions. This case is very common in Mobile back-end workloads. Usually, this scenario is implemented with Dynamodb, Amazon Cognito, AWS API Gateway, AWS Lambda, and Amazon S3.
- Create an HTTP REST API application. This is a classic use case. Whenever you require to create an API, and collaborate with different third party API providers; or even to expose your data across your customers, the opt-in is to create a fully API serverless.
- Serverless is perfect for Jobs, workers, and scheduled transaction tasks. Another must-have scenario: Let’s assume, once in a month you process a report, and it requires a lot of processing and queries. Would you provide a cluster of servers/EC2 instances to process your report? or Would you leverage AWS Lambda functions? What would you do?… Well, AWS Lambda would be the optimal option.
- To create Event-driven applications to minimize costs, and compute efficiency. Although many of the scenarios mentioned here are event-driven, it is crucial to consider that AWS Lambda works better based on events, actions, and Lambda triggers.
- Introduce AWS Lambda + Amazon Cognito to authenticate your web applications or any digital product. Could you mention any web application without authentication? With these couple of services, you could experience an authentication method without servers, containers, and minimal development! AWSome!
- Data transformations. Transform a video file to multiple formats, transcoding, and thumbnails on the fly. Another good example is to upload a file where is required to travel across different storages and services. Also, for IoT processing along AWS Kinesis + Redshift. And lastly, to process any Big Data ETL workflow.
- DevOps and automation tasks. Turn off machines with no usage, Monitor X resource, volume deletion, AMI’s, and automated backups. As well, as an alerting system from any log event or anomaly.
- Send Massive emails through Amazon Lambda, and SNS. Similar to Sendgrid, Hubspot and Mailchimp, you could set up an email campaign for your leads, clients, and send any massive emailing like a newsletter or breaking news to your universe of contacts!
To sum up!
Serverless and Amazon Lambda are paramount components to the digital transformation, find opportunity areas in your web application, and start adopting this transformation, before it is too late. Focus on your business logic and code functions, and AWS will perform the rest without worrying about managing any IT layer. Pay attention to each use case that I previously described, this may be your own case, or let me know if you are experiencing a different situation. This is a key driver for your enterprise to gain more granularity, more abstraction, and more cost savings!