Moment

Read how Moment built the foundation for growth with a DigitalOcean to AWS migration and application modernization with Amazon EKS.

Moment Logo_White

“We see Caylent as an investment in infrastructure, they are helping us push our AWS maturity forward. With Caylent Pods, we have an entire DevOps team now, vs just a DevOps person, and we’re able to leverage the collective DevOps and AWS expertise within the pod. We can fix bugs faster, before we had to dig through 8 seperate servers, now with our entire infrastructure on AWS, we have one pane of glass to find bugs and fix them before they impact customer experience. “

– David Hahn- Moment, Lead Architect

Company

Moment is a photography focused ecommerce platform that exists to inspire and enable creatives around the globe to obtain the right gear, learn new skills and take epic trips as they explore their passion for photography. 

The company started with a kickstarter campaign in 2013, offering accessories for smartphones, and has now grown its portfolio to offer products ranging from camera gear and accessories to courses from professionals as well as guided adventures and tours.

Objective

Increase platform up-time during high traffic periods and improve the customer experience. 

Challenge

Moment’s eCommerce platform, shopmoment.com, had been experiencing traffic spikes year over year, during high traffic shopping events such as Black Friday and Cyber Monday. At the time, their website was hosted on DigitalOcean, which lacked the capabilities required to keep up with the pace of demand growth the company experienced. The inflexibility of the platform from fragile infrastructure & limited auto-scaling, combined with the database and web app running on the same instance, caused significant disruptions to their sales during these high traffic times. In addition, each deployment to production took down their entire site and they didn’t have a quick roll back mechanism.

These limitations resulted in poor customer experience on their website, and could pose undesirable consequences if they were left unchecked. Moment realized that in order to keep up with demand while minimizing platform costs, they needed to migrate their eCommerce platform to AWS, without disrupting their day to day visitor traffic and sales. 

In order to improve long term functionality and scalability, and automate deployments, Caylent also recommended modernizing Moment’s infrastructure on AWS.

Solution

Caylent engaged with Moment to move them from single VMs on  DigitalOcean to containerized microservices hosted in Amazon EKS, fronted by Amazon EC2 load balancers, using Caylent’s Delivery Methodology (CDM) consisting of DevOps workflows, and Well-Architected aligned security and networking best practices. In addition, part of the migration effort included rehosting Moment’s database backend from DigitalOcean to Amazon RDS Aurora.

To deploy the landing zone for the migration, Caylent developed IaC Terraform templates to set up a multi-account environment on AWS. The team then configured CI/CD pipelines, which use Github as their version control system (VCS) and CircleCI, to deploy code first to a QA/staging account, then to a production account. As part of the modernization effort, Caylent worked with Moment in a series of workshops to analyze the monolithic application as deployed on Digital Ocean, to see how it could be decomposed into microservices and containerized. In the refactor, the team wrote Dockerfiles, built container images, and pushed them to ECR. Databases were moved to S3 and ultimately into Aurora.

Amazon ECR was used to store application container images, from where the application deployment pipeline build process can retrieve them. Amazon EKS is used to orchestrate app function and scale. Amazon CloudWatch metrics are used to collect some system/infra level metrics. Prometheus and Grafana are also used for system metrics. Customer connections to the app now ingress directly to the AWS production environment through AWS Elastic Load Balancer. Application containers running in Amazon EKS communicate with Amazon RDS on the backend for database communication.

In terms of security, the solution utilizes AWS Key Management Service to encrypt data at rest, AWS Certificate Manager to secure client connection endpoints (i.e. ALB/ELB) and AWS Cloudtrail to capture all the activity across all Moment accounts. 

After security implementations were in place, the next step was to cut over from the old DigitalOcean hosted platform to the new solution. The cutover involved pointing the DNS at Cloudflare to a temporary maintenance page, retiring DigitalOcean servers, and rehosted mySQL databases in Amazon RDS. CircleCI deployed the Terraform infrastructure as code that defined the new production site. Cloudflare was directed away from the maintenance page after acceptance testing was performed on the site to determine functionality and decide whether to proceed or rollback. 

Since the migration, Moment has been in an on-going DevOps implementation engagement with Caylent. This phase focuses on a longer term partnership plan to provide DevOps support to empower Moment’s engineering and developer teams with self-service capabilities, tools, and improvements to  developer experience. Following the migration, Moment elected to engage Caylent Pods team to manage day-to-day operational & performance issues so they could free up their  internal team to focus on revenue-generating product development. 

Results

As a result of migrating to AWS and modernizing their eCommerce application using containers, Moment has achieved 100% up-time even through peak traffic during high volume sales events. Adopting microservices and implementing DevOps best practices have enabled them to reduce their release times by 50%. More importantly, updates and new features can be implemented seamlessly, enabling Moment to offer a strong customer experience all-year round. 

Client

Moment

Industry

Entertainment

Location

Seattle, Washington

Share This :
Share on facebook
Share on twitter
Share on linkedin
WE'RE HERE TO HELP​

Ready to Accelerate Your Native Cloud Journey

With two distinct delivery models, Caylent is able to meet you where you are in your cloud journey and deliver whether a tightly-scoped project and budget or if you require ongoing support to drive your vision forward.

CONTACT US

Plan Your Project

Where will the cloud take you? Let's find out together.