The client owns a Communication-Platform-as-a-Service product. A Community Messenger Builders that enable businesses to provide messaging to their own users, customers or partners, in self-branded manner, either as a stand-alone application, or integrated into their existing website & apps. Depending on the type of business (Healthcare, Education, E-commerce, On-Demand, FinTech, Online Communities, etc), this communication can serve different use cases, and open unexplored avenues for growth.
The client was facing challenge to have a loosely coupled environment to support multi-tenant Architecture with minimal management of services and focus on improving the code. BigStep as an expert provided a solution to design an environment that satisfies client’s product requirements. As a benefit very less manual monitoring is needed therefore client would be able to focus on adding the new features to the product.
Along with a loosely coupled environment, client also wanted to monitor every service and logs generated to troubleshoot any issues identified.
As client owns a real time chat application therefore, multiple servereless tasks also needs to be performed such as handling multiple API requests and also manage the server load at the same time. Therefore, they required a serverless architecture that can define the nature of the API request and decide what code of line to execute when needed without having the need of the server or container. So, we suggested client to go for AWS Lambda as a solution that can easily run code on demand and execute serverless tasks.
AWS leverages the wide range of integrations and facilitate a loosely coupled environment at a very affordable rate.
Client wanted a serverless solution keeping the cost lower and managing the tasks automatically. BigStep as Consulting Partner of AWS addressed client’s queries well and suggested the best services that met all the requirements mentioned by client.
BigStep has expertise in designing and implementing serverless architecture majorly using Lambda in integration with other AWS services.
With the efforts of expert team of Developers and DevOps Engineers, we were able to meet client expectations and challenges by creating secure and serverless environment.
AWS Lambda service is used majorly to design and implement the serverless architecture. Other services used in integration with Lambda are API gateway, SNS, S3 as a part of providing the serverless and funtional environment.
As a part of serverless architecture implementation, Failed Executions are managed using AWS Cloud Watch, for example if SQS Lambda function fails, the failed data goes into flight mode and it auto-matically re-executes the Lambda function.
Concurrency: The architecture is using AWS API Gateway with ALB and Lambda functions as well as Ngnix plus application server to maintain the concurrency.
The serverless architecture using Lambda as a major service helped the client to achieve the cost optimized environment where the Lambda functions are executing the code as per the defined functions. The load and performance testing showed 10,000 RPS (requests per second) handled by the serverless architecture.
Micro-Service Function Management:
- Versioning of lambda function, by using Lambda function Alias concept, we have managed DEV and PROD alias for staging and production environment.
- Monitor & log Lambda functions by cloud watch and logs.
- AWS Lambda Layer has been used to keep deployment package of Lamda function small.
The DevOps Engineers at BigStep designed the serverless architecture using Lambda as a major part of the architecture and implementing the serverless functions executing on requests made by users. The solution also includes ECS where containers are running to support the backend of the application and are being used in ancillary roles.
In order to integrate the serverless architecture IAM policies are used to call other services when Lambda function is triggered.
Some of the IAM policies are:
- AmazonSQS full access: enabling Lambda function to call for SQS for queuing the objects when required.
- AWS LambdaFullAccess: to allow function to take action on the request
- AWSLambdaENIManagement Access: provides minimum permissions for a Lambda function to manage ENIs (create, describe, delete) used by a VPC-enabled Lambda Function.
All these policies are attached to IAM roles to derive the purpose of the serverless architecture.
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).