Poshmark is a social commerce marketplace with 80 million users and over 200 million available listings. Poshmark brings together a vibrant community daily to express themselves and share their love of fashion.
Poshmark had quickly built out all of its Technology Infrastructure. Their infrastructure was hosted on various Applications Clusters in the US-West-1 Region of AWS. But by having their product launched for about six years, the Poshmark Business Team now needed their Applications and Infrastructure to be agile enough to allow for experimentation and deployment of multiple iterations of their product. US-West-1 is required to offer the proper framework for their rapidly growing needs. AWS engaged Mactores, an Advance consulting partner with Migration Competency, to access, strategize, design, and transform Poshmark’s infrastructure to support their needs.
Poshmark was an early adopter of Amazon Web Services and built its entire platform on Amazon EC2, Amazon SQS, and Amazon S3. The Poshmark infrastructure team being nimble and pro-automation had developed ansible and terraform templates to perform deployments and automate upgrades. The Poshmark team was looking for zero-downtime migration to Amazon ECS from the self-managed Mesos Cluster, Amazon MSK from the self-managed Apache Kafka cluster, Amazon ES from Open ElasticSearch, and Amazon Aurora MySQL from self-managed MySQL Clusters.
Additionally, Poshmark’s user base was growing aggressively, and the Business teams wanted to ensure that their platform was flexible enough to sustain constant changes and growth. The Poshmark management team needed to ensure that their website did not experience any disruptions. With these objectives in mind, Mactores and Poshmark’s team worked together to define the most viable solutions for the long term.
The Mactores data engineering team assessed Poshmark's entire application platform and developed a 5 stage migration plan to adopt Amazon Managed Services. The Mactores and Poshmark's teams leverage the Mactores assessment accelerators to understand Poshmark's existing Infrastructure and applications stack. Poshmark wanted to extensively use AWS services for its applications by hosting them on a managed platform and across multiple regions, achieving higher resiliency. This process helped both teams to define the requirements to meet the business teams' demands and technical objectives.
After the review, teams designed a strategy enabling zero-downtime migration to Amazon ECS from the self-managed Amazon ECS Cluster, Amazon MSK from the self-managed Kafka cluster, Amazon OpenSearch from ElasticSearch, and Amazon Aurora MySQL from the self-managed MySQL Clusters.
The Mactores DevOps team assessed Poshmark’s Ruby platform for container compatibility and built an integration environment with Amazon SQS and MSK. Following these assessments, Mactores migrated applications to Amazon ECS and MSK with a Blue/Green deployment strategy during phase one. The 2nd phase of the assessment included Amazon EC2-based self-managed MySQL cluster for compatibility and a stress test for Amazon Aurora MySQL DB. The Mactores database migration experts migrated MySQL databases with AWS DMS with Change Data Control (CDC).
In the 3rd phase of the assessment, Mactores also evaluated migrating ElasticSearch Cluster to Amazon OpenSearch. During the Elasticsearch to OpenSearch migration, the Mactores team implemented Amazon S3-backed snapshots for ElasticSearch indexes and then migrated incremental indexes using snapshots. As part of the migration design, Mactores built an end-to-end DevOps process to enable cannery deployments and the migration of databases.
The Poshmark team reduced operational overhead by 70% by migrating to managed services. Because of the modernized DevOps process, Poshmark’s teams can release code and database updates seamlessly without downtime while performing A/B testing and maintaining multiple application versions in the same environment.
The entire migration was fully automated using Terraform for infrastructure and Ansible for configuring management, enabling near-zero downtime for cutover.
The Poshmark and AWS teams had already spent too many hours establishing a sensible starting point to resolve this ongoing challenge. The AWS team recommended using a partner and introduced Mactores based on solving a similar challenge with a high-profile AWS customer.
Mactores suggested performing the assessments that aligned with the Poshmark team's thinking. The assessment results clearly defined the previous efforts and needed strategy to move forward with the appropriate product solution for their rapidly changing needs.