Application Modernization on AWS with Infosys Accelerators for Serverless
By Nirmal Singh Tomar, Principal Consultant, Modernization Practice – Infosys
By Mandar Shete, Sr. Principal, Modernization Practice – Infosys
By Abhijit Vaidya, Sr. Partner Solutions Architect – AWS
Cloud adoption has become the new normal across industries, enabling enterprises to focus on their core business rather than maintaining IT infrastructure.
However, if not planned correctly, cloud infrastructure can lead to inefficient usage and increased cost, in addition to the effort to provision and manage resources.
With serverless and cloud managed service provisioning, you only pay for the resources used, without having to worry about idle capacity or managing infrastructure. This reduces the time, cost, and complexity associated with creating, scaling, and managing the infrastructure. Developers can deploy applications faster, improving the time to market for new products and features.
In this post, you will learn how serverless architecture on Amazon Web Services (AWS) can help enterprises modernize their application landscape, along with common use cases and some reference architectures.
Serverless on AWS
Serverless technologies have matured a lot over the years, and it’s easier than ever to deploy the entire stack of applications using serverless and AWS managed services.
Whether it’s serverless compute like AWS Lambda, databases like Amazon DynamoDB and Amazon Aurora Serverless, data analytics like Amazon Redshift Serverless and Amazon EMR Serverless, container options like AWS Fargate, integration like Amazon Kinesis and Amazon MSK Serverless, or storage services like Amazon Simple Storage Service (Amazon S3), there is a serverless option for most commonly-used services on AWS.
Infosys is seeing enterprises across industries take advantage of the power of serverless architecture for a variety of use cases. Figure 1 below shows some common applications:
Figure 1 – Common serverless use cases.
- Microservice and web applications: Serverless stacks can be used to deploy complete cloud-native applications built using microservices and modern user interfaces, without having to worry about sizing or predicting capacity.
- Stream processing: Real-time streaming data for click-stream analysis, Internet of Things (IoT) sensor messages, order processing, data cleansing, social media analysis, and event-driven media processing needs two-way scalability. Low-latency serverless architecture is used to build stream processes that automatically scales to handle peaks and troughs in volume.
- Analytics: Data lake architecture enables self-service data onboarding and analytics across enterprises. Using cloud-native serverless services as building blocks, enterprises can rapidly and interactively build data lakes and data processing pipelines to ingest, store, transform, and analyze petabytes of unstructured data.
- Batch jobs and workflows: Batch jobs that demand powerful parallel computing for limited periods can be a great fit for serverless. Enterprises are modernizing batch jobs on the cloud to use the compute they require in an elastic manner for the time they run, and not incur resource charges for the duration when they are not used.
- Chatbots: Chatbots can drive operational efficiencies across the enterprise through a variety of use cases for education, information retrieval, business, e-commerce, and automated help desks. Serverless architecture can be used to autonomously scale chatbots in response to sudden or peak demand in a cost-effective way.
- Voice enabled applications: Serverless architecture can be used to create voice-enabled applications, such as serverless integration with Alexa Skills that enable rapid and easy development and autonomous scaling in response to unexpected or high demand in a cost-effective manner.
Let’s explore typical architectures using AWS serverless services for a variety of enterprise use cases.
Microservices and Web
- Each microservice is independently deployed to AWS Lambda, connecting to databases such as Amazon Aurora, Amazon DynamoDB, or Amazon ElastiCache, depending on requirements.
- Static web applications can be hosted on Amazon S3, are accessible using Amazon Route 53, and are connected to microservices through Amazon API Gateway.
- Amazon CloudFront is used to cache static content near a user’s location for low latency.
- Amazon Cognito takes care of authentication, AWS WAF acts as the web application firewall to protect microservices against common web exploits, and Amazon Route 53 is used for domain name translation.
- Several other AWS services are used for security, logging, monitoring, and auditing.
This architecture is especially useful in cases where usage patterns are not known, as it can seamlessly scale up or scale down based on load.
Figure 2 – Microservices and web reference architecture.
Stream Processing and Analytics
- In this architecture, data is ingested into Amazon Kinesis Data Streams and Amazon Kinesis Data Firehose for real-time and near-time patterns, respectively.
- Amazon Kinesis Data Analytics is used to gain actionable insights from streaming data, and AWS Lambda and Amazon Simple Notification Service (Amazon SNS) are used for real-time alerts.
- Lambda functions are used in each flow to consume and transform data and save it to S3 buckets.
- Other AWS services such as Amazon Redshift, Amazon EMR, AWS Glue, Amazon Athena, and Amazon QuickSight process, store, and analyze data.
This architecture helps users set up their data pipelines quickly without having to set up and integrate all the components from scratch, and also brings the elasticity needed to handle unpredictable data inflow.
Figure 3 – Data ingestion and processing reference architecture.
Choosing the Right Serverless
While serverless architecture brings great benefits for the right use case, the decision to go with serverless or more traditional cloud computing models, or even which serverless services to use, needs careful consideration.
A thorough analysis of functional as well as non-functional requirements needs to be done, addressing cost, performance, and other key metrics.
Evaluate variables such as the number of transactions per day and compute resource usage. Serverless works best for elastic, intermittent workloads, not for continuous usage or long-running transactions.
It’s important to understand differences and features of each service. For instance, AWS has services such as Amazon Kinesis, Amazon Managed Streaming for Apache Kafka (Amazon MSK), and Amazon Simple Queue Service (Amazon SQS) for data streaming. The right choice for a use case depends on requirements such as the number of consumers, message size, and retention period.
Variables like the number of transactions per day, execution time per transaction, and compute resource usage need to be evaluated carefully.
During design, various factors such as synchronous/asynchronous patterns, optimization for memory/execution time, log retention, and code initialization need to be considered to manage application cost.
Application Execution Times
Some serverless services have a limit on the maximum duration for a single “call.” For example, AWS Lambda can only be used for code that runs for a maximum of 15 minutes at a time.
Non-functional requirements such as availability, latency, maximum available memory or CPU, scaling time, and maximum message retention need to be compared with service-level agreements (SLAs) available on AWS. While AWS commits strong SLAs for most serverless services, certain requirements might necessitate different architectural decisions.
Service and Feature Availability
New services and features roll out to AWS regions gradually. Some regions may not get all services or features in time for enterprises to handle their workloads.
Consider regulatory compliance standards for your business (such as SOC, PCI, FINMA, and HIPAA). Some standards have stringent requirements that need named servers and environment audits. While an increasing number of AWS serverless services are certified for leading standards, certain use cases may need a non-serverless model.
Infosys Accelerators for Serverless
It can be challenging for enterprises to navigate all the complexities and arrive at an optimal solution. Infosys helps customers tackle these challenges and adopt serverless technologies through its automation-driven offerings powered by the Infosys Modernization Suite, part of Infosys Cobalt.
The Infosys Modernization Suite simplifies and accelerates application modernization and cloud adoption through hyper-automation across the application lifecycle including design, architecture, and implementation.
The suite provides a standardized and industrialized way to modernize applications to serverless architecture, including suitability analysis, reference architectures, best practices, and one-click infrastructure as code (IaC) and deployment.
Figure 4 – Infosys accelerators for serverless adoption.
Serverless architecture has become an attractive option for enterprises due to its ability to deliver lower cost, seamless elasticity, simpler maintenance, and faster time to market.
But as with any other technology adoption, enterprises that succeed with serverless are ones that analyze the options in detail and carefully consider all aspects of functional and non-functional requirements before choosing a serverless architecture.
For the right workloads, serverless can transform how IT teams develop, deploy, and maintain applications—ultimately transforming business agility and user experience.
Infosys, in collaboration with AWS, can help enterprises navigate complexities, make the right decisions, and accelerate transformation using serverless technologies.
To learn more, we recommend you review these additional resources:
- Case Study: Dairy Farm Transforms Merchandising by Integrating Multi-Format Store Data on the Cloud
- Case Study: Big Data Platform Implementation on Amazon Web Services for Norway’s Largest Bank
- Accelerate Application Modernization with AWS Serverless
- Infosys Modernization Suite – Accelerating Enterprise Transformation
Infosys – AWS Partner Spotlight
Infosys is an AWS Premier Tier Services Partner and MSP that enables clients to outperform competition and stay ahead of the innovation curve.
*Already worked with Infosys? Rate the Partner
*To review an AWS Partner, you must be a customer that has worked with them directly on a project.