ShipMonk provides multi-channel order fulfillment services and inventory management software to small and midsized (SMB) e-commerce companies. ShipMonk enables SMBs to focus on building their brands and achieving growth rather than managing backend logistics. API integrations sync directly with customers' marketplace platforms and online shopping carts to automatically import orders which are then processed seamlessly at ShipMonk's two bicoastal warehouse locations. The software offers complete product visibility and order controls. ShipMonk saves e-commerce companies money while providing a scalable supply chain solution at service levels that are difficult for SMBs to achieve on their own.
During peak-times ShipMonk needs a lot of compute that would've otherwise sat idle off-peak. The volume of orders can be predicted for events like Black Friday or Christmas gifts shopping, but as we’ve seen during the COVID-19, some events of mad order volumes are completely unpredictable.
Shipmonk’s business is forecasted to double in the near future. Their engineering department is planned to double in size until the end of the year. With such growth they are facing security and operational challenges around authentication and authorization management, automated vulnerabilities scanning and auditing.
A big monolithic MySQL instance is constantly growing in storage and compute needs. Business needs to run analytical workload on this instance which puts a lot of stress on it and affects performance of transactional workload from the backend as well. Big databases and big complex infrastructure need operators to support it 24/7.
Self-hosted centralized logging and monitoring systems can’t keep up. Retention is very short as logging volume is constantly increasing. Internal engineering is tasked with operational toil in supporting these systems instead of focusing on more important work.
A fixed number of backend environments is a bottleneck. Engineers are fighting over an environment to test their code before they deploy it to the production. This is increasing the Lead Time (the time from commit to production) - important DevOps metric.
Why Amazon Web Services
The business operates all around the United States - the end customers are spread to different federal states - and might open up to new markets outside of the US very soon too. AWS covers all current and future regions, providing low latency to application backends and necessary data protection, security and compliance that do not need to be solved in-house.
ShipMonk only pays for what they use while their customers are sleeping - automatically scaling up and down to meet the demand. Wide selection of compute purchasing options - OnDemand, Spot, Reserved - together with Savings Plans help them pick the most affordable plan that is right for their workload needs.
AWS offers many managed services that ShipMonk already uses, like Elastic Kubernetes Service, RDS for MySQL, Elasticache for Redis, ElasticSearch, etc.
Amazon Aurora helps greatly with auto scaling reads from read replicas, managing to serve peak SQL traffic from the backend, saving money when off-peak. Aurora can also handle the analytics workload at the same time. When the business grows, one can just simply switch to a bigger Aurora instance. Not to mention that Aurora is highly available and AWS provides great levels of customer support for it.
Powerful AWS IAM helps to manage authentication and authorization using temporary tokens obtained with IAM Roles, making the processes secure. CloudTrail handles the security auditing. Automated vulnerability scanning is provided by Elastic Container Registry and custom tooling in CI/CD pipelines.
One of the best selling points of AWS is being able to work with AWS Partner Network companies for additional guidance and point solutions. ShipMonk decided to pick pipetail.io for its vast experience with Kubernetes and container workloads on AWS.
Instead of internally building and operating its own infrastructure, ShipMonk can leverage managed services from AWS, without worrying much about scalability and maintenance. ShipMonk can instead focus on the things that really matter - the business and support for its customers.
Spot instances, AWS Lambda and autoscaling helped ShipMonk to better utilize compute resources and optimize spend. All infrastructure is provisioned as-code, allowing for better change management and code review.
AWS Regions that span the whole world together with Cloudfront help ShipMonk to deliver assets faster and to be closer to their customers, providing a much better User Experience.
ShipMonk Engineering now uses a new cluster in the EU to develop and test applications before they reach production in their own environment (which is very similar to production). Developers are not anymore blocked by anyone, there are not many problems with later integration and infrastructure cost is very low.