AWS Lambda Functions as a Service
Scalable API on demand with API gateway and Lambda.
Lambda is a “serverless” system, meaning organisations need not maintain dedicated, always-on infrastructure, such as EC2 instances, to handle traffic spikes.
Single-task, “serverless” Lambda functions deal with incoming requests and scale to cope with demand. API Gateway (or another trigger) enables these to run in response to various conditions and requests.
The benefit to using this is there is only an operating cost when work is done. A complex API structure can be built with API Gateway, but until data comes in and is processed, there is no fee. This makes it ideal for applications which start small and grow. Costs scale with traffic.
Load Balancing and Autoscaling give the potential for fault tolerance, but the underlying architecture (and application) needs to be designed to take advantage of this. We can help with workshopping different failure modes, to ensure that
the application infrastructure is designed to be resilient to multiple types of failure.
For customers serving applications and web endpoints to a global audience, CloudFront allows data to be cached at edge locations globally. Newer technologies such as Lambda@Edge, enable more complex application logic to be
pushed closer to end users, decreasing latency.
At the database level, we can use technologies such as Aurora to implement clusters of database servers across availability zones, and then to roll out read replica databases across multiple regions, if required.
On AWS Lambda solutions, we work primarily with Python and NodeJS languages.
We build our API Gateway solutions using CloudFormation stacks (often defined using the Swagger API definition language), which means easily creatable test environments. It also allows us to define the Lambda functions centrally. We have our own deployment system for quickly updating the complete stack of Lambda functions behind a given application. We can track the application as one entity, deploying individual updates when required. Systems such as AWS Step Functions can come into play here too. AWS X-Ray is used to debug the application as a whole, tracing requests as they pass through different lambda functions and API methods.
Using Cloudformation, we can quickly pull in many other parts of AWS. For example, SQS can be used to manage data flow between lambda functions or EC2 servers. Our custom connectors allow SQS messages to trigger Lambda functions, using scheduled events and a secondary lambda function.
DynamoDB is often used as a scalable NoSQL solution for data storage. The combination of DyanmoDB, API Gateway and Lambda means that there are no underlying servers to configure, and responsibility for the underlying infrastructure is shifted to AWS, freeing up resources to concentrate.
Web frameworks such as AngularJS served via Amazon S3, can deliver a whole web application at scale, with very little cost. S3 provides huge capacity and bandwidth for serving the underlying web app, and API gateway, with Lambda, can provide the underlying server-side mechanics — all without underlying Apache or Nginx servers to manage.
Companies beginning new projects could consider a serverless infrastructure at the prototyping stage, as an alternative to spinning up server instances.
There can also be cost advantages in moving some traditional services over to Lambda functions. We can provide consultancy around the advantages and disadvantages, mapping out potential performance bottlenecks and cost implications.
Pricing available on request