When Covid was taking a toll on most business, few of the businesses were grappling with
another kind of problem. Growth!
One online grocery chain which was growing 30-40% every year before the pandemic started seeing the traffic spike, sometimes to 6 times the usual daily traffic. Ecommerce stores and other online marketplaces who run regular festive sales know all too well on what spike to expect and they prepare accordingly, sometimes months ahead of time. But not all businesses are able to forecast their future needs.
The grocery chain who was setup on AWS immediately consulted the experts within AWS. The company had already begun shifting to asynchronous work queues in 2018, isolating workloads into containers and breaking up its monolithic architecture. However, the onset of the 2020 lockdown shifted this process into high gear. By mid-2020, the company was fully containerized with 60 microservices running on Kubernetes.
Automated scaling features that come with a containerized approach has helped the company accommodate the extreme spikes in traffic the site now experiences. Daily order volume was averaging 250,000 in 2019 and had risen to 400,000 each day by late 2020. Even during its transition to containers, it maintained 99.9 percent uptime on its website, with response times under 350 milliseconds for its customer-facing APIs.
Furthermore, due to efficiencies gained with containers and automation, the company managed to bring the monthly AWS spending down to pre–COVID-19 levels, even though it was serving a much higher volume of traffic.
Addressing such challenges with ease is not uncommon on AWS platform. But what is of concern is that many organizations are not prepared to meet these opportunities and challenging arising out of growth. Point in case is the opportunities created by digital transformation.
Covid has accelerated the need for digital transformation and the need for agility, resilience, flexibility, and adaptability. And organizations that ride on rigid, monolithic legacy systems and applications are finding themselves unable to adapt to unforeseen market conditions.
Though the market has seen mostly laggards when it comes to modernization, one recent study by Gartner predicts that by 2025, 60% of global enterprises would have modernized applications. Irrespective of the cloud vendor, application modernization is generally expected to provide the below mentioned benefits
While all cloud vendors provide a plethora of tools and resources for facilitating app modernization – including microservices architectures, containerization, managed databases, serverless computing and much more, AWS cloud services make it extremely easy to modernize applications. Let’s take a quick look at these services.
The most common pattern of app modernization involves refactoring and breaking down a monolithic app into small, loosely coupled microservices. AWS offers all the necessary building blocks for doing this, including compute, data storage, networking and messaging services, logging and monitoring and DevOps.
Given below is a simple comparison of a Monolithic vs Microservice based Architecture for an application.
Containers aid us in app modernization because they remove access to resources, such as storage, from the original application. This accelerates the refactoring of a legacy app since the containers handle much of the access to native cloud resources.
AWS container services offer the broadest choice of services for running containers, which may explain why 80% of all containers in the cloud run on AWS. There’s AWS Fargate for serverless compute and Amazon EC2 if control is needed over the installation, configuration, and management of the compute environment.
There’s also a choice of the container orchestrator to use: Amazon Elastic Container Service (ECS) or fully managed Amazon Elastic Kubernetes Service (EKS). In addition, Amazon Elastic Container Registry (ECR) is a fully managed docker container registry that makes it simpler and faster for developers to store, manage, and deploy container images.
Database is a critical part of an App development phase and cannot be ignored, during app modernization.
Amazon Aurora serves as a highly available, secure, and cost-effective database foundation for developing and delivering cloud-ready apps. Amazon DynamoDB can handle the massive data volume and accommodate quick lookups for personalized searches. For session state, in-memory store for sub-millisecond site rendering, there’s Amazon ElastiCache.
AWS Managed Databases for different use cases – all of them compatible for a Serverless architecture
For serverless computing capabilities, AWS provides a set of fully managed services. For example, AWS Lambda lets users run code without provisioning or managing servers and pay only for the compute time consumed.
AWS CodePipeline can be used with the AWS Serverless Application Model to automate building, testing, and deploying serverless applications. AWS CodeBuild integrates with it to provide automated builds. AWS CodeDeploy can be used to roll out and test new Lambda function versions.
Amazon Aurora Serverless is an on-demand, auto-scaling configuration for Amazon Aurora (MySQL-compatible edition). The database automatically starts up, shuts down, and scales up or down based on an app’s needs.
Amazon RDS Proxy, a highly available database proxy, manages thousands of concurrent connections to relational databases. This makes it easy to build highly scalable, secure serverless applications that connect to relational databases.
Reference Architecture for a simple serverless Mobile application is below
When organizations strive to shape interactions across the entire customer journey through digital-first business models, a comprehensive cloud transformation strategy and choice of cloud platform aligned to its business are key factors for success. AWS, with its complete set of pre-fabricated toolsets helps break down innovation barriers, turns the organization more agile, collaborative and customer focused.
What organizations need is an AWS consulting partner with a track record of aligning business strategic imperatives with cloud platform capabilities. A full-spectrum integrator like Indium can not only help accelerate digital transformation on AWS but also transform ideas to business value faster.
Regardless of where you are in your digital journey, Indium helps you to migrate/modernize your applications and data on the cloud, make sense of the data and leverage automation to scale and innovate in a secured, reliable and compliant fashion.
By Uma Raj
By Uma Raj
By Abishek Balakumar
Sangeetha Govardhan is AVP- Cloud Services at Indium Software.