Anyone who has worked in a traditional development shop knows that in order to deploy a digital product to market, a multitude of resources and a wealth of multi-disciplinary knowledge is vital. Not only does the development team have to consider how to properly code the application, but they also have to be able to integrate it with a database backend, a presentation layer, and numerous configurations of routers, servers, firewalls, and the like.
As such, these development efforts tend to be large and take some time to get it right before the product is ready to be deployed to the market. For small- to medium-sized businesses, this approach can be costly; even if your organization decides not to maintain their own servers and environment and instead host it in the cloud, you need to employ individuals with server-side knowledge to help deploy your application.
Amazon Web Services offers a revolutionary solution to this situation — serverless infrastructure made possible through an AWS Gateway and AWS Lambda. The concept of “serverless” is a bit of a misnomer. There are servers involved just like every other infrastructure setup out there. The reason behind the term “serverless” is because Amazon has efficiently and effectively removed this as a concern to developers by pushing it behind the scenes and only requiring the developer to set up the APIs inside of the AWS Gateway that invokes AWS Lambda.
This approach has several advantages for those that decide to use it, including no operating system, no licensing costs, no server provisioning costs, and nothing to manage. With this unique solution, a client only pays for every 100 milliseconds of code execution, which greatly reduces the overall cost of operation. There is absolutely no charge when your code is not running.
“As an AWS Premier Consulting Partner, ClearScale is making a great use of the serverless infrastructure for the benefit of our clients. The scalability, automation, speed of deployment, and cost-effectiveness of the AWS Lambda is unprecedented. It’s like a Swiss army knife for your applications in the cloud; no other tools required.”
Pavel Pragin, CEO of ClearScale
Recently, a client came to us with a desire for us to re-build their mobile app and be able to manage it in a way that didn’t require a lot of overhead on their side going forward. We leveraged AWS Gateway, the Amazon solution that allows clients to create, publish, maintain, monitor, and secure APIs in a scalable way. Using the AWS Gateway administrative console, we were able to create APIs that would talk to the mobile app that we created and then the AWS Lambda service takes over and manages how the code is run in response to specified events, and then automatically manages the backend server resources.
AWS Lambda is the Premier Serverless Tool
AWS Lambda allows clients to effectively scale their application based on usage and run numerous events in parallel providing a low-latency, highly responsive service regardless of the application usage, where it is called from, or the number of events being executed.
AWS Lambda leverages other services behind the scenes that normally an organization has to staff for, including a fully managed AWS DynamoDB NoSQL service, S3 storage for static data, AWS CloudFront for content delivery, and AWS IAM for identity and access management. In addition, AWS CloudWatch is in place to capture usage metrics while AWS CloudTrail monitors API calls made to AWS Gateway and delivers the log files to a specified S3 bucket.
In addition, we leveraged Amazon Cognito, a Lambda-enabled service that we implemented on our client’s application. With this in place, it provided mobile users with signup and authentication services while integrating with social media providers like Facebook, Google, Twitter, or Amazon accounts. By enabling advanced security features, such as multi-factor authentication with a phone number or email address, we were able to provide a scalable authentication service to our client which would allow them to support hundreds of millions of users if they so needed and allowed us to use Lambda to create app-specific logic used to identify fraud and user verification. This also gave us the ability to control what users had access to use with our client’s app.
Based on user profile information, we could limit their access to a particular set of resources or S3 bucket if the client chose. This allowed us to build the application with security and flexibility in mind. Amazon Cognito also allowed us to store information about the user local to their device so that they could use the app offline should it be necessary. With all of this in place, creating a mobile application for our client was the larger effort; configuring the AWS Gateway was a simple step in the entire development process. By off-loading the creation and management of the servers and backend resources a typical development process would take on-site or in the cloud, we could instead focus on the mobile application itself and leave the rest to AWS.
From a development process standpoint, this is revolutionary. Using the AWS Lambda service by simply calling it without the need to determine how to properly process the request represents a huge advantage in application development. Invoking AWS Lambda using AWS SDK or AWS Mobile SDK using REST APIs is a simple process, not just for run-time events but also for scheduled events. This allows a developer complete control over how the application functions without the need to coordinate with other resources how the requests are handled or what they’re designed to accomplish using backend resources.
This is done by specifying a handler inside of the Lambda function you’re creating. When doing this, you need to invoke it with serializable input data that can then be input into the data type of the parameter you request. This effectively makes the Lambda service able to run the application code from different sources. More to the point, Lambda can be configured to use nearly all of the existing AWS services. As this service evolves, it creates many new and unique opportunities for clients to use them for a whole host of needs.
At ClearScale, we clearly see the value in Amazon’s serverless infrastructure offering, and in this case, we were easily able to leverage AWS Gateway and AWS Lambda service to meet our particular client’s needs. By focusing more of our development effort on creating a new and unique mobile application for our client, we were able to deliver a phenomenal user experience and functionality at a fraction of the time and cost it would have normally taken a traditional development path. With Amazon’s robust serverless architecture approach, ClearScale is able to deliver innovative solutions that are highly beneficial to our client’s business regardless of the market.