Skip to content

Swift Media Entertainment Inc Migrates Legacy Applications From Heroku To AWS

Executive Summary

Swift Media Entertainment Inc. needed to migrate legacy applications and databases requiring formal containerization and documentation from Heroku to a single cloud platform. With none of the original code developers for the legacy applications still working for the company, Swift faced a bandwidth challenge in recoding and migrating the applications, and thus required a partner with software coding and cloud infrastructure expertise who could handle the migration on its own. By selecting Amazon Web Services (AWS) as the cloud platform provider and Mission as the migration partner, Swift enabled its legacy applications and database to run on new hardware in the cloud. Because of the migration to AWS, Swift was able to reduce its cloud infrastructure costs for its production environment by 15%. Additionally, the new infrastructure can auto-scale to process as much as three petabytes of data during sudden workload spikes. By working with Mission, Swift also eliminated the need to hire three DevOps resources to handle the migration and now has application and database documentation that streamlines software and infrastructure maintenance.

“For us, the migration was simple, we just told Mission what we needed, and they figured out 99 percent of it on their own—without any help from our internal resources. It was a big help to our team to limit the amount of time we had to spend on getting the applications and databases ready for the migration from Heroku to AWS.”

Allen LeVan
Senior DevOps Engineer

Highlights

  • Migrated legacy applications and databases from Heroku to AWS.
  • Designed AWS cloud infrastructure to support legacy applications and databases.
  • Automated code base and DevOps processes.
  • Applied infrastructure-as-code to formally containerize applications to run properly in AWS.
  • Documented software and refactored database repositories and resource libraries.
  • Created compute resource auto-scaling to handle rapid increases in user activity.

The Challenge

League of Legends is supported in part by legacy web applications that provide players with game stats, the history of match results, feedback, and the strategies of leading players. “These applications have been around a long time and have a loyal customer base,” points out Allen LeVan, Senior DevOps Engineer at Swift. “They also generate significant revenue that we funnel to fund the engineering product costs of our new applications.”  

Previously, Swift relied on the Heroku cloud platform to host the League of Legends applications, which were integrated with databases hosted at mLab and Redis Labs. As the cloud infrastructure became more difficult to maintain, Swift needed to find a way to reduce the cloud costs of the production environment.

That’s when Swift decided to migrate the applications and databases to a single cloud platform. “We also wanted to run the applications and the databases on new hardware, but we needed to be sure the legacy software code would not break,” says LeVan. “Another challenge we faced was that the developers of the code are no longer with our company.”

This situation meant Swift would need to refactor software code, software containers, and repositories to ensure a smooth migration. The organization also wanted to generate documentation on the software set-up to facilitate maintaining and changing applications after the migration.

To handle the project internally, Swift would have to take software engineers away from developing new products or hire new resources. The senior management team thus decided to find a partner who could provide three valuable skillsets: refactoring the software code, designing the cloud environment to host the applications and the databases, and migrating the apps and databases to AWS with minimal disruption to Swift customers.

Why AWS?

Swift focused on migrating the League of Legends applications and databases to two possible cloud platforms on which the company was already provisioning other gaming applications—Amazon Web Services (AWS) and Google Cloud Platform (GCP). With valuable input from Mission—the cloud partner Swift chose to collaborate with—Swift selected AWS. 

“We prefer to run our front-end and legacy applications in AWS, and we particularly value the DevOps services that AWS provides,” LeVan explains. “AWS also offers better finite controls over cloud services such as load balancing.” 

Another key benefit that the AWS-Mission combination brought to the table was the ability to tap into AWS and leverage its Startup Migrate program for funding. Mission arranged for AWS credits from the program to reduce the overall cost of the migration for Swift.

Why Mission?

Mission appealed to Swift as the partner to handle the project based on the broad and deep bench of experts that Mission provides. Swift can work with Mission specialists in each of the areas it needs help—such as project management, DevOps, and JavaScript coding.

“Mission has a variety of plug-and-play skillsets, and each resource has deep knowledge within their specialty. If there’s an issue to troubleshoot, we can talk to someone who knows about our environment and how to solve the specific issue.” 

Allen LeVan
Senior DevOps Engineer

The Solution

Mission designed the AWS cloud infrastructure environment featuring AWS Elastic Cloud Compute (EC2), Elastic Load Balancing (ELB), Fargate (for serverless computing), ElastiCache for Redis, and the use of MongoDB clusters on EC2. Mission also automated the code base and DevOps processes by leveraging AWS CodePipeline, CodeBuild, and CodeDeploy. 

In addition, AWS Secrets Manager helps control access to the legacy applications, and Mission used AWS Elastic Container Service (ECS) and Terraform to formally containerize the applications to run properly in AWS. Along the way, Mission also documented the software and the database repositories from which the applications pull and save data. This documentation includes the resource libraries used by the applications. 

Mission prepared the applications for the migration by refactoring the JavaScript code. The cutovers of the data layers, applications, and APIs (34 services in total) took place in four phases. Any user-facing applications were migrated during off-hours in which user activity is low.

“This was a little tricky given we have players from around the world, but the Mission team adjusted their schedules to be available during early-morning hours. They were willing to make sure the impact on our customers was minimal. And thanks to their efforts, it’s now a lot easier for us to maintain our applications and APIs.”

Allen LeVan
Senior DevOps Engineer

Results and Benefits

  • Enabled legacy applications and databases to run on AWS.
  • Reduced cloud infrastructure costs for production environment by 15%.
  • Scales to process as much as three petabytes of data during sudden workload spikes.
  • Eliminated need to hire three DevOps resources to refactor software and handle migration.
  • Provided documentation to streamline maintenance of applications and infrastructure.

With the legacy League of Legends applications along with the APIs and databases all running in AWS, the Swift team no longer has to scramble and read through logs when any issues occur. Instead, the team can immediately identify the root cause of pending problems. In most cases, Swift reacts and resolves issues before users are impacted. 

Swift has also reduced the cloud costs of its production environment by approximately 15 percent. The savings come in part because the AWS hardware is new. Since it’s more cost-efficient, fewer nodes are required to handle the application workloads. The compute resources also scale automatically when needed—Swift ingested three petabytes of traffic during a spike in activity shortly after the migration was completed without any users experiencing degraded performance. 

“Managing the environment is now really easy,” LeVan emphasizes. “Our entire engineering team around the globe knows where all the documentation is and can quickly find the logs pertaining to an issue. We typically resolve issues in less than a day whereas before, it sometimes took an extended time because we had to chase down what we needed to know about the documentation.” 

LeVan is glad Swift migrated to AWS because the Heroku environment would have continued to drain his team’s time. “Mission lightens the load with project management resources and skilled technology experts,” he says. “We now spend much less time dealing with issues managing the League of Legends legacy applications.” 

Looking back on the project, LeVan surmises he would have had to hire two or three resources to handle the migration internally: “Mission took care of applying all the “magic” to the code base so it would work on the new AWS hardware. And because of their efficiency in JavaScript, they completed the project in half the time it would have taken us—even if we hired more resources.”

Next Steps

Following Mission’s success on this project, Swift is now talking about support for other AWS environments. This includes architecture reviews, tagging, controlling accounts, security, and creating dashboards to monitor the health of cloud resources.  

LeVan underscores how Mission is a great partner to work with—bringing in the right people over the life of a project and for small bursts of work on any cloud issue Swift might face. This enables the organization to avoid hiring specialists.

“As a complement to its cloud expertise, Mission is proficient at project management, application development, updating libraries, repository pushes, configuration changes, software scripts, and documentation. They are also open to us doing some of the work on our own. It’s truly a shared team environment—where Mission can do it all or be a seamless component that relieves the burden on our IT team.”

Allen LeVan
Senior DevOps Engineer

AWS Services USED
  • Elastic Cloud Compute (Amazon EC2)
  • Elastic Load Balancing (ELB)
  • AWS Fargate
  • Amazon ElasticCache for Redis 
  • Amazon DocumentDB
  • AWS CodePipeline
  • Amazon Elastic Container Service (ECS)
  • AWS CodeBuild
  • AWS CodeDeploy
  • AWS Secrets Manager 
Third-Party Integrations
  • Linux OS
  • MongoDB
  • Redis
  • Cloudflare