Case Study

Migrating An On-prem Three Tier App To AWS

About Royal Bond

Royal Bond is a startup based out of Portland, Oregon working on innovate software to "revolutionize the retail experience".

The Challenge

Royal Bond needed to be able to scale their product while ensuring a fast time to market. They wanted to leverage serverless technologies and fully managed solutions to help accelerate their application development as well as offload the total cost to build their product by reducing their operational overhead.

The Solution

Serverless Guru proposed limiting the operational overhead and overall cost by leveraging as fully managed solutions on AWS.

The original on-premises setup consisted of an Angular frontend, Java Spring Boot APIs, and MongoDB database.

Serverless Guru proposed first creating a cloud sandbox environment as a low-risk proof of concept.

Frontend Infrastructure

Each one of these services, above, was automated via the Serverless Framework and all of it was able to be deployed and connected with a single terminal command.

  • AWS S3 for static hosting
  • AWS Cloudfront for caching
  • AWS ACM for HTTPS
  • AWS Route53 for DNS

Backend Infrastructure

  • AWS Elastic Beanstalk for the Spring Boot API
  • AWS DocumentDB for the fully managed MongoDB database
  • AWS Application Load Balancer for handling traffic and routing to a specific micro-service
  • AWS S3 for storing PDF documents, images, and other assets
  • AWS SNS/SES for sending emails to users

Migration

Once the automation and supporting resources had been fully tested, Serverless Guru began moving the various endpoints and micro-services to the cloud one-by-one.

Serverless Guru automated each step listed below via the Serverless Framework to handle deployments and tear-downs for multi-stage environments.

Frontend
  • DNS moved to AWS Route53.
  • An SSL certificate in AWS ACM for HTTPS.
  • An AWS S3 bucket with static website hosting enabled.
  • An AWS Cloudfront distribution with an S3 bucket and SSL certificate attached.
  • A Route53 Alias record pointing at the AWS CloudFront Distribution.
Backend
  • An AWS VPC to support private and public resources
  • AWS Elastic Beanstalk environments for each micro-service
  • An AWS Application Load Balancer to sit in front of each AWS Elastic Beanstalk environment
  • A Route53 Alias record pointing at the AWS Application Load Balancer
  • An AWS DocumentDB cluster to host the MongoDB database
  • Data migration from MongoDB to AWS DocumentDB via the AWS Database Migration Service
  • Updates to the Java Spring Boot APIs, so they can write to the AWS DocumentDB database

Why Serverless Guru

Serverless Guru worked with Royal Bond to migrate and modernize their entire three-tier web application on AWS.

Integrating directly into the Royal Bond development team and communicating with key stakeholders to ensure that everyone was aligned, every step of the way.

Serverless Guru provided Royal Bond with a fully automated modern application architecture on AWS that helped improve Royal Bond’s development agility through the use of end-to-end CI/CD pipelines.

Thanks to Serverless Guru's focus on using fully managed services instead of re-inventing the wheel, Royal Bond kept cloud costs to a minimum, accelerated application development, and saved more than $35k/mo in productivity losses from application downtime.

The switch to fully managed services on AWS, reduced Royal Bond's TCO (Total Cost of Ownership) versus building and maintaining on-premises equivalents.

This also reduced the in-house talent required to operate, maintain, and scale as Royal Bond would need to grow in the future.

Ultimately, the entire engagement helped Royal Bond onboard new team members faster and put the focus entirely on the product.

Serverless Guru worked with my team to create a development and production environment on AWS.

The project was a mammoth.

Serverless Guru understood our needs, designed a cloud-native architecture, automated the entire infrastructure, worked closely pair programming with our dedicated team, and provided training on the new cloud-native architecture to ensure everyone was aligned.

I appreciated their ability to do complicated work - most importantly - their aptitude to explain the work they were doing for us, so our team members learn from them.

- Babak Mohammadi, Project Lead at Royal Bond

Next Step

To learn more about how to work with Serverless Guru, fill our contact form or email our team at projects@serverlessguru.com.