Modernizing application from VMs to container deployment-the realtime case study

By | Case Study, Cloud Assessment, Cloud Case Study, Migration | No Comments

Customer: One of the India’s largest online marketplace


Problem Statement

The customer decided to modernize its applications from running on a virtual machine (VMs) to a container-based deployment. Shifting from VMs to containers allows developers to deliver changes in a fraction of the time in a cost-effective way. And once an app is in a container, it’s portable. So the team can move it freely from AWS to Azure to Google Cloud, back to on-premise, optimizing the benefits of a hybrid environment. Customer anticipated that the demand for women fashion products would grow quickly and would spike during sales and other promotional events. As the team scaled, the deployment process became a bottleneck. The team was frequently troubleshooting deployment failures, which caused delays and missed target dates. The customer’s Azure-based platform was hosted on the Google Cloud Platform and comprised approximately 25 servers, the majority based in Central-India.

Proposed Solution

Powerup conducted detailed cloud compatibility assessments to chart out-migration of the existing platform to a scalable and highly available Google Kubernetes Engine (GKE) Cluster predominately hosted in Asia-South Region. GKE is a managed, production-ready environment for deploying containerized applications. The migration was conducted in multiple waves to ensure that customer production is not affected. At the end of the migration application, the customer was expected to bill around US$0.15 million annually.

The figure below illustrates the migration roadmap and the steps are explained further:

  • Separate Virtual Private Cloud (VPC) created for Production / Stage Environment
  • HA K8s Private cluster is provisioned through GKE
  • MySQL VM Provisioned and installed through Terraform modules
  • Kafka VM Provisioned and installed through Terraform modules
  • 4 Pool is created in Kubernetes
  • Each pool has the following stateful components
    – Elasticsearch
    – Redis
    – MongoDB
    – Neo4j

Stateless Application Microservices are deployed in each pool according to the priority of the microservices  Ingress Load balancer is deployed in the K8s for the routing the traffic to the microservices.


Going through the modernization process helped the team increase its velocity and optimize costs. Deployments were seamless and automated. This enables the team to deploy more frequently to lower environments and reduces the amount of time it takes to roll out a new version to production. Costs came down by 40% as the customer moved to a container platform. Moreover, now that the application is running in a container, it is portable between on-premise and public cloud environments.

Cloud platform


Technologies used

Managed Kubernetes, Java Spring boot, Redis, MySql, EKL, MongoDB, Kafka.

DR and Migration

By | Case Study, Cloud Case Study, Migration | No Comments


Problem Statement

Until recently, an online matrimony service provider implemented
traditional disaster recovery through a secondary data center in Mumbai. The
business needed a technology infrastructure that could both keep up with demand
and help drive further growth. Purchasing duplicate storage, compute and
connectivity resources for the secondary location as its business scaled, translated
to additional cost burden — all of which might never actually be used. Given the
“always-on” nature of the business it was of paramount importance that the
application availability remains high. Keeping all the above factors into
consideration, the business decided to leverage the benefits of the public cloud by
migrating their core matrimony applications to AWS.

Proposed Solution

After thorough evaluation, engaged Powerup and decided to use
AWS to build its business continuity and DR solution.

The approach – A pilot with DR

After thorough evaluation, it was decided to use AWS to build its business continuity
and DR solution with a ‘Pilot-light’ DR strategy was chosen and a minimal
environment of the entire DC setup to be run on AWS. All applications, database
and High Availability (HA) proxy instances were replicated to instances of minimal
size to optimize cost — a classic backup-and-restore scenario. AWS allows
maintenance of a pilot-light model by configuring and running only the most critical
core elements of a system. When required in case of a recovery, one can rapidly
provision a full-scale production environment around the critical core by upgrading
the instances.

Powerup built a replica of all required servers and launched it using AWS
CloudFormation (CF) templates. For, the legacy applications
required Powerup to use the same IP addresses in the new environment as well.
Powerup used Asymmetric routing mechanism to accommodate multiple IP
addresses and resolve connectivity issues on the secondary IP addresses. Load
balancers were required to have custom static private IPs to accommodate legacy
applications. However, Elastic Load balancer did not support this. To resolve this
issue, Powerup set up highly available HAProxy as an alternative to the internal load
balancer traffic with Keep-Alive. Keep-alive, when enabled, allows the load balancer
to reuse connections to the instance, which reduces the CPU utilization. In this case,
failover support was enabled between two HA Proxy servers by load balancing
between DC and DR for periodic application check. Code commit was used to update
the code to both DC and DR environments simultaneously.

Powerup complied with customer data centre security guidelines and the migration
was successful. Multiple VPCs were created for production, recovery and
management applications. All application servers were migrated using AWS Server
Migration Service(SMS) by replicating server VMs as cloud-hosted Amazon Machine
Images (AMIs) ready for deployment. Lambda was used to trigger the creation of
new AMIs. Database servers were deployed on EC2, replicated using native
replication techniques. The Configuration of the environment is automated by AWS
CF templates.

Cloud platform


Technologies used

EC2, CloudFormation, Lambda, S3, AWS SMS-Migration tool, DMS, ELB/ALB, VPC.

AWS to Azure migration & DevOps

By | AWS, Azure, Case Study, Cloud Case Study, DevOps, Migration | No Comments

Customer: A gaming & simulation software company

Problem Statement

The customer is a gaming and simulation software company that creates experiential
solutions that aim to transform an organization into a modern workforce. It’s Infra
was a multi-tenant SaaS application running on AWS and they wanted to move to
Azure and achieve the same level of DevOps processes they were used to on AWS.

Proposed Solution

Powerup has successfully moved customer’s infra from AWS to Azure and while doing chose relevant services to modernize their application. Entire Infrastructure provisioning was automated using Azure ARM templates including spinning servers,
installing necessary components and configuration management via Ansible, CI/CD
pipelines using Spinnaker and Jenkins. Implemented Blue/Green deployments and
Azure scale sets.

Cloud Platform

Microsoft Azure.

Technologies used

Azure ARM, Scale Sets, App Service, Blob storage, Spinnaker, Ansible, MYSQL,
PostgreSQL, Ruby on Rails, Nginx, Azure IaaS.