At AltoStack we spend most of our time managing the infrastructure of our clients ensuring smooth operation and high availability of their infrastructure and applications.
From inception, we knew our infrastructure will have to be based on the “NoOps” model. We didn’t need the overhead that comes with managing servers that will host our website and blog. The answer? Serverless.
Serverless refers to a cloud architectural design pattern that abstracts servers away to the point that developers have little to no direct interaction with them. Of course technically there are still servers behind the scenes, but you don’t have to worry about managing them.
AltoStack utilises Serverless, which is an amazing open source, application framework that have redefined Serverless developer workflows to build highly available systems.
The website and blog are Middleman generated static sites that are stored in and accessed from S3 buckets.
Visitors access them via Route 53 hosted DNS which forwards the request to a CloudFront distribution which then serves the files stored in S3.
CloudFront provides SSL acquired via Certificate Manager and also handles the distribution and caching of the website.
The website contains a Contact form which potential customers can use to get in touch with our AWS Certified Cloud Architects and DevOps Engineers.
The Contact form processing is handled by Cognito and 2 Lambda functions each with it’s own role.
An Amazon Cognito identity pool and an AWS Identity and Access Management (IAM) policy allow unauthenticated visitors to access AWS resources and submit the form.
AWS Lambda Function 1
Once submitted, a lambda function is invoked. This function gathers the data from the form and pushes it to an SQS queue ready for processing. The function then sends an SMS notification using SNS to the Sales team advising them that a form has been submitted. The function also uses the data to generate a “Thank You” email from a template and sends it to the visitor via email using SES.
AWS Lambda Function 2
An hourly scheduled lambda function polls the SQS queue and processes all the messages in the queue. It saves the contact details part of the form to a DynamoDB table and then emails the details of the form to the Sales team via SNS.
AltoStack has the expertise to architect, deploy and manage highly available Websites, Scalable Web Applications, Workflows & Processes and IoT Systems leveraging a Serverless infrastructure. Get in touch today to see how we can help your organisation adopt Serverless!