Introduction
Interflora is an international online florist who faces the challenges of ecommerce everyday. The worldwide customer connection requires a high web performance in order to cope with the many requests. Especially traffic peaks like valentines day or mothers day which requires special attention. On such days the highest sales are made and therefore it is absolutely essential to deliver a superb shopping experience.
"Our revenue stream is very seasonal. Performance needs to be outstanding in both lows and highs of traffic. Speed Kit was able to improve our website performance in Italy by delivering fast loading times, even under high demand."
Challenge
Solution
Speed Kit is a plug and play approach to accelerating loading times of websites. It is based on PWA technology and innovative caching algorithms. One of the keys to success was the acceleration of the Time to First Byte. Improvements in this generally difficult to optimize metric, ensures that the responses are received faster and thus all subsequent actions, such as rendering the website, are executed earlier. This effect can be seen in all relevant user experience metrics.
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
Speed Kit was implemented and tested on the interflora.it website and the improvements can be verified in the Google Chrome User Experience Report (CrUX).
Largest Contentful Paint (LCP):
The plugin was launched in May and the Largest Contenful Paint (LCP) has improved from 65% to 75%. This metric is critical, as Google is using it as a ranking factor. Faster websites with a better LCP are ranking higher and increasing website traffic from organic search.