The cloud is now pervasive, allowing enterprises to focus on their core offerings rather than on IT infrastructure. In a traditional cloud environment, resources such as compute and storage need to be always available (irrespective of usage), leading to inefficient resource usage and wasteful expenditure. In addition, it requires specialized skills to manage cloud infrastructure.
Serverless architecture, on the other hand, is an evolutionary approach to realize the full potential of the cloud. In a serverless environment, you pay only for the resources used, not idle capacity. Your applications continue to run on servers, but you do not own or manage them. This significantly reduces the cost and complexity of creating, scaling, and managing cloud infrastructure. In addition, developers can deploy applications faster, which accelerates time-to-market of new products and features.
IT pivots to serverless tech
Serverless technology has matured over the years, evolving from function-as-a-service to encompass the whole application stack, including computing, integration, and storage, without compromising security, reliability, or performance. Today, enterprises can choose from a wide range of serverless services.
For instance, Amazon Web Services (AWS) offers serverless databases such as: Amazon DynamoDB; compute such as AWS Lambda; Amazon API Gateway to create and manage APIs at scale; container options such as AWS Fargate; and storage services such as Amazon S3.
Enterprises are leveraging serverless architecture for a wide range of patterns:
- Real-time stream processing: for click-stream analysis, IoT sensor messages, order processing, data cleansing, and social media analytics, to scale up or down with low latency
- Microservices and Web applications: for complete cloud-native applications to avoid the heavy lifting of server and capacity management, or paying for unused resources
- Batch jobs and data pipelines: for high-compute resources in limited periods
- Event-driven media processing: for elastic, parallel computing based on media availability in real time
A cloud case study
A global engine manufacturer wanted to improve engine maintenance intervals and reduce equipment downtime by using data generated by IoT sensors in their engine filters.
Infosys developed a scalable platform using serverless architecture on AWS. The platform ingests sensor data and alerts users about potential issues in real time, and also performs advanced analysis on aggregated data for product enhancement.
Amazon Kinesis and AWS Lambda ingest, stream, and process millions of engine messages per second with seamless scaling and low latency. AWS Lambda and Amazon API Gateway power mobile and Web applications, as well as APIs for users to get a consolidated view of engine health. AWS Glue was used to transform and load data into a data lake due to the infrequent nature of batch jobs.
This serverless platform helped the engine manufacturer extend service interventions from biweekly to half-yearly intervals, lower maintenance costs by nearly half, and minimize engine downtime. Significantly, building and operating a similar solution using non-serverless technology would incur an additional cost of 15-20%.
Making sensible serverless choices
Before deciding to adopt serverless technology or even choosing the right combination of serverless services, a careful analysis of functional as well as non-functional requirements is required — without which cost, performance, and other key metrics can spiral out of control.
- Usage patterns: Evaluate variables such as the number of transactions per day and compute resource usage. Serverlessworks best for elastic, intermittent workloads, not for continuous usage or long-running transactions. Cloud service providers often offer more than one serverless service with similar high-level functionalities, but with important differences. It is imperative 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, retention period, etc.
- SLAs: Compare non-functional requirements — such as availability, latency, required memory or CPU, and scaling time — with SLAs of cloud service providers. While leading public cloud service providers commit to strong SLAs for a majority of serverless services, certain use cases need a custom, non-serverless model.
- Application execution times: Check the limit of the maximum duration for a single application ‘call’. For example, AWS Lambda is optimized for code that runs for up to fifteen minutes at a time.
- Compliance: Consider regulatory compliance standards for your business (e.g. SOC, PCI, FINMA, HIPAA). Some standards have stringent requirements that need named servers, environment audits, etc. While an increasing number of cloud serverless services are certified for leading standards, certain use cases need a non-serverless model.
Your enterprise needs to partner with a cloud integrator to navigate the complexities of an optimal serverless solution. You need to make the right architectural choices between serverless and non-serverless, and also select the right serverless services. An imprudent decision can result in significant cost and business impact.
You also need to get the solution design right, since it accounts for functional as well as non-functional requirements including security, performance, reliability, and ease of operations. End-to-end setup of the application deployment pipeline deployed in multiple accounts and regions for different environments can also be time consuming.
Our application modernization and cloud offerings — powered by the Infosys Modernization Suite, part of Infosys Cobalt — simplify and accelerate serverless technology adoption for global enterprises. The suite leverages hyper-automation across the lifecycle, from design and architecture to implementation, including:
- Tools and ready references for comparing and selecting the most appropriate serverless and other public cloud services
- Pre-built reference architectures for common serverless use cases
- Ready-to-use infrastructure-as-code templates for resource provisioning and establishing a cloud-native DevSecOps pipeline
Serverless technology is here to stay. Enterprises benefit from rationalized costs, seamless elasticity, simpler maintenance, and faster time-to-market, which makes it a compelling choice for enterprises of varying sizes and scale.
However, as with every technology adoption, enterprises that analyze their options and carefully consider all aspects of functional and non-functional requirements will succeed with serverless architecture. For the right workloads, serverless architecture can transform how IT teams develop, deploy, and maintain applications, ultimately increasing business agility and enhancing the user experience.
About the Authors
Naresh Duddu is the AVP, Head – Cloud & Open Source, Modernization Practice, Infosys
Ashutosh Pateriya is the AWS Partner Solutions Architect, EMEA