Photography e-commerce platform built a modern infrastructure with AWS EKS

Migrations
Infrastructure & DevOps Modernization

100%

Up-time through peak traffic

50%

Lower release times

Company

Share

By adopting AWS, Moment has achieved 100% up-time even through peak traffic during high volume sales events.

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.


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.


David Hahn
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

Lead Architect


  • Landing Zone written as Infrastructure as Code (IaC) and deployed in a CI/CD pipeline
  • Migrated to containerized microservices hosted in Amazon EKS with Amazon EC2 load balancers
  • Implemented DevOps best practices around deployment automation, GitOps, CI/CD, observability and security

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. 


Result

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. 

Company

Share

Related Services

Services Employed

Learn more about the AWS solutions we employed on this project

Related Case Studies

FloSports Logo

FloSports

Digital Sports Streaming Platform Enhances Fan Experiences on AWS

Read more
Availity Logo

Availity

Healthcare information network powers data upcycling with Kubernetes on AWS

Read more