The client is providing plugins as a product to its customers across the globe based on one of the most famous CMS. The plugins developed by client can be purchased from their website. The client also provides support to its customers for the plugins purchased.
The client was facing issues in terms of optimizing the images on their website along with serving videos having the quality that is device specific and delivered to the user via CDN for both the media transfer. As a solution BigStep provided a loosely coupled environment using Lambda majorly and integrated with many other AWS services. After the implementation of Lambda and it’s various functions, the website can optimize images and deliver device specific videos automatically.
The client needed a solution to serve the content on their website with automation in media transfer along with the intelligence to detect the device and play videos with optimized device detection. Also the images are uploaded on the client website and application were very huge in size, therefore needed an automatic image optimization reliable solution implying serverless architecture and keeping the media and website browsing experience flawless. If the challenge was not met, the client had to opt for the higher server configurations which would affect the AWS billing.
BigStep suggested client to run their workload on AWS and use Lambda service to take benefits and advantages of a serverless environment and capabilities of Lambda service facilitating to run function consisting of code that is automatically triggered from the request on the application, as it not only automates the tasks or make it serverless, but also reduces the huge cost that could incur using the simple architecture and services running all the time.
As BigStep has expertise in providing and deploying serverless architecture and facilitating lower cost environment. We addressed client's concerns and suggested solutions that met client's requirements in all aspects.
This policy is assigned to roles attached to Lambda to call for DynamoDB related. It helps in error handling and processing, publishing workflow AWS Lambda functions, and Amazon CloudWatch Events are configured to invoke an error handler Lambda function that updates the Amazon DynamoDB table with error message details, and sends an Amazon Simple Notification Service (Amazon SNS) notification to a subscribed email address.
The S3 bucket is created and associated with Lambda trigger that submits a transcoding job using Amazon Elemental MediaConvert when a new file is ingested.
Lambda uses “Element media convert ” for transcoding job when a new file is ingested. The transcoding job specifies video packaging settings like HLS and DASH along with the bitrates that are expected from the transcoded output.
When the video processing is completed, it send publishing, encoding, and error notifications based on the execution results by Lambda functions.
AWS Step Functions, it creates ingest, processing, and publishing step functions. Lambda functions perform the work of each step, and process error messages.
To implement the serverless architecture and to resolve the client's issues and challenges, AWS Lambda service has been used extensively integrated with other AWS services like DynamoDB, S3 Bucket, SNS, Kinesis, AWS step functions
The serverless architecture comprising various Lambda functions, provided the “Video on Demand” functionality on the website. As a result of the serverless environment, all the videos stored or uploaded on the website are being delivered on demand to the website users, and the video size and quality is selected, varying of the device being used by the users on the application or website.
The load testing was also carried out and the output was 3000 RPS(requests per second). Not only the “VOD” functionality, using Lambda facilitated optimized images on the website having the Lambda function configured to derive the automatic image optimization on the website.
To use Lambda as a major service to set up the serverless architecture, various IAM roles and policies are being used that helps different AWS services to connect with each other and provides Lambda, the permission to call a service when the function is triggered. All the Micro- Service Functions are managed by cloud-watch logs to detect the error and a cloud-formation template is customized to keep the deployment practice quick and safe. We also monitor and log Lambda functions by cloud watch and logs.
To keep the Lambda Function Execution smooth and non-stop, the failed executions are being managed by monitoring the logs of the functions using AWS Cloud Watch.
And in case of AWS SQS if Lambda function fails that message goes in flight mode and it automatically re-execute Lambda function. The Concurrency is maintained using the cloud watch logs and threshold alarms if there are any spikes in traffic. Also, creating a custom VPC is better and secured and also recommended by AWS as we get to have more control over the network layer and the security can also be set to desired security rules.
BigStep Technologies is a full service software development company focused on creating remarkable digital products. It specializes in developing modern Web & Mobile Applications, Enterprise Applications & API Services, and in providing DevOps and Cloud Solutions.
BigStep is Select Consulting Partner of AWS and also qualified for AWS Service Delivery Program (Lambda) and AWS Public Sector Partner Program (Education).