Introduction
Carhartt Work in Progress (WIP) is a licensee of the Carhartt workwear brand from the United States focused on offering street wear styles to subcultures like skating, graffiti, hip hop, or BMX. Carhartt WIP has expanded across Europe and beyond. For their online business, it is particularly important to consistently provide a great customer experience, scalable across millions of users of various markets. Page speed was identified to have significant improvement potentials, especially because of its SEO implications.
"The great thing about Speed Kit is its scalability and fast implementation. We were able to go live within a matter of days and could implement it across our three biggest markets, Germany, France, and the UK, at the same time. The results are impressive, and by now Speed Kit is live on all our major country sites."
Challenge
Solution
Speed Kit was added to the shop system with two JavaScript files. The digital agency of Carhartt WIP managed the frontend side and configured Speed Kit together with our team.
Speed Kit is an official ACE eligible technology partner and independent software vendor (advanced tier) of the AWS Competency Partner Program "Accelerate" as well as the Workload Migration Program. Our technology is powered by 13 different AWS services:
- Elastic Kubernetes Service (EKS): We use EKS to schedule and orchestrate our Speed Kit applications on EC2 instances.
- Simple Storage Service (S3): Speed Kit stores cached assets in S3 buckets. Additionally, we store RUM (Real User Monitoring) and PI (Performance Insights) data in S3 buckets for analytics purposes.
- Elastic Compute Cloud (EC2): Our workloads are hosted on EC2 instances, as managed through EKS.
- Kinesis Data Streams: Kinesis Data Streams are used to ingest RUM and PI data from Speed Kit, which is then consumed by Amazon Managed Service for Apache Flink. Fastly also streams access logs to our Kinesis Data Stream, which are similarly consumed by Amazon Managed Service for Apache Flink.
- Athena: We use Amazon Athena to query data stored in AWS S3 buckets, enabling performance insights and asset preloading.
- Elastic Container Registry (ECR): Docker images are stored in ECR and deployed in our Kubernetes cluster, which is managed by EKS. For third-party application images, we use the pull-through-cache feature of ECR.
- Elastic Container Service (ECS): We build Docker images using a service hosted on Amazon ECS.
- Route 53: Route53 is used to manage DNS records.
- Simple Email Service (SES): We use SES is used for sending transactional emails.
- Managed Streaming for Apache Kafka (MSK): We use MSK to facilitate consuming and producing custom event records for different applications.
- DynamoDB: Speed Kit uses DynamoDB to store information related to our predictive preload feature.
- Lambda: We use Lambda to pre-render client side renderd pages to make that actual server side rendered.
- ElastiCache (Redis OSS): We use ElastiCache to store our Bloom filter, which checks whether an asset is present in our cache.
Click the image to open the architectual diagram of Speed Kit with AWS
Results
After a week Speed Kit was set up, tested, and ready for the pilot.
Google Performance Rating:
It was then successfully evaluated in an empirical A/B test on real-user data for the three largest country online shops.