Home / Case Studies / Eurosport

The power of Windows on AWS.

About the customer

Eurosport is the market leader in the sports retail industry in Malta holding exclusive local distributorship to a long list of world-renowned brands including Adidas, Reebok, Kappa, Robe di Kappa, Skechers, Head and others. Operating since 1992, Eurosport offers the most complete end to end sports products in the Maltese Islands and is synonymous with powerful brands in each product category. The Maltese group aims to be a one stop shop for all lovers of sport.

The Challenge

Eurosport’s website ran on a non-highly-available environment without any segregation between the e-commerce tier and the asynchronous background tasks tier required to keep the site up-to date. This resulted in a high level of reputational and revenue risk, resulting from frequent downtimes. These downtimes were even more frequent when coupled with larger than usual stock and price changes on the site, something which happened on a constant basis due to flash sales and an increase in traffic due to the Covid-19 pandemic.

The Solution

Eurosport and 56Bit, decided to solve these challenges by investing in a highly-available AWS platform to host the same underlying code. The solution’s main requirements were redundancy, scalability, security and predictable costs. One main change to the architecture included decoupling the synchronous e-commerce tier from the asynchronous background tasks tier, to ensure that any downtime in one tier does not affect the other. Coupled with an automatically scalable system over multiple AWS availability zones, and use of the latest hosting technologies ensured that the above requirements were met and exceeded.

Why AWS?

After evaluating various options, AWS was chosen as the public cloud provider of choice. The reason was not just based on costs, which were considerably less when compared like with like, but also the maturity, scalability potential and unparalleled feature set provided by the AWS service portfolio.

Why 56Bit?

56Bit provides peace of mind to technology-driven business through best-in-class cloud solutions. Eurosport, whose business and reputation would be severely impacted by any failures of the underlying technology required an experienced partner with profound knowledge on AWS technologies that could deliver a high-quality service on time and within budget. Eurosport teamed up with 56Bit to consult, design, build and maintain this platform, working hand-in-hand with the software development team.

Solution Details

The solution is based on the AWS Well-Architected Framework and includes the following components (see Figure 1 below).

CMS ENGINE

The e-commerce site is powered by NopCommerce, a popular open-source Content Management System (CMS) built using Microsoft’s .Net Framework.

CONTENT DELIVERY

The site makes use of AWS Cloudfront as a CDN, ensuring that all static and dynamic calls are routed as quickly as possible through the AWS backbone. The CDN also caches any static files like product images to serve content faster and at lower cost.

E-COMMERCE TIER

The NopCommerce powered website is hosted on Windows EC2 instances running IIS. These instances have the capability of autoscaling depending on traffic, make use of multiple AZs for high-availability and are load-balanced by an AWS Application Load Balancer.

BACKGROUND TASKS TIER

Another instance of the NopCommerce engine is run separately from the customer facing tier, and is used to run any background tasks such as stock synchronizations and price reductions. This tiered approach allowed us to reduce the blast radius of the different components of the system ensuring that any downtime in this tier does not affect the E-commerce tier.

It also allowed us to speed up the execution of the background tasks because previously these tasks were run on a batch basis at the end of the day to ensure there would be no affect on the public facing functions of the site. By decoupling this tier we were able to run these background tasks on a continuous basis, greatly improving the efficiency of the client’s operations.

FULLY MANAGED SQL SERVER

Amazon RDS was chosen to host a fully managed cluster of Microsoft SQL Servers on multiple availability zones.

SERVERLESS STORAGE

Amazon S3 is used as a static file storage system. Considering it was designed with 99.99% availability and 99.999999999% (that’s 11 x 9s!) durability, the decision was easy. Multiple buckets, some fronted by the Amazon Cloudfront CDN are used for static file hosting, logging and code archiving.

SERVERLESS SECURITY AND COMPLIANCE

  • The system uses multiple AWS accounts, one for each of the Staging and Production environments. Another account acts as the master account with centralized billing, DNS, Single-Sign On, etc. Finally 2 accounts are used for security logging, with one account acting as a black hole (i.e. an immutable highly secure dump of security logs) and another acting as a single pane of glass for everything security related. Security logging is handled using AWS Config, AWS Cloudwatch and AWS Cloudtrail.
  • The above accounts are provisioned using AWS Control Tower, which creates the AWS Organization, an SSO entry point, an AWS Account factory (using AWS Service Catalog), as well as a number of Guardrails to protect the accounts from unintended changes. All management users are assigned MFA-backed credentials onto the SSO endpoint which in turn provides role-based temporary access to the different accounts.
  • All system components are deployed in private VPCs.
  • Non-public S3 buckets are encrypted at rest with strong cryptographic keys (AES256) managed by AWS KMS. All data is also in transit with TLS-enabled network protocols. Even the backups and its transfer to a second physical location are encrypted. All secrets like database passwords are stored in a highly available and secure secrets vault powered by AWS Secrets Manager. PKI Certificates are provisioned using AWS Certificate Manager.

DEPLOYMENT AND ORCHESTRATION

  • The infrastructure was fully built using CloudFormation, which is released using a CI/CD pipeline built on top of the AWS Code family of products (Codecommit, Codebuild, Codepipeline).
  • This Infrastructure as Code passes through the full commit-build-test-deploy lifecycle, incorporating the development, staging and production environments. The NopCommerce code base also passed through a CI/CD pipeline, built using similar infrastructure. In this case AWS CodeDeploy is used to deploy the code to the appropriate servers.
  • Environment separation is implemented by using completely independent VPCs in different AWS accounts. New releases can always be tested in a staging environment, where unit and integration tests along with load and stress tests can be conducted by the same testing suite. This mitigates the risk of unexpected functional changes and performance degradation. The master account serves as a CI/CD single pane of glass for the teams working on the project, whilst cross-account IAM roles enable the pipelines to test, build and deploy code in different AWS accounts.

Possible future improvements

IMPLEMENT A DISASTER RECOVERY (DR) SOLUTION THAT HANDLES REGION-WIDE FAILURES.

Whilst the system is already highly-available, since everything runs in multiple AZs, this can be improved further with a cross-region solution. It will not be very hard to move to another region, since everything is implemented using IaC (Cloudformation).

IMPLEMENT DATABASE CACHING

At the moment we do not envisage the need for database caching, but a database caching layer can easily be spun up using AWS Elasticache (Redis) to add a very fast caching layer between the EC2 compute and the RDS database. This will increase performance, reduce database hosting costs and decouple the architecture even further.

We have a proven track record of success .

“We recently completed an AWS architecture review with 56Bit, and I must say, the experience exceeded our expectations. From start to finish, the team at 56Bit demonstrated exceptional technical expertise and a deep understanding of AWS best practices. The review was thorough and covered all critical aspects of our infrastructure, including security, scalability, performance optimisation, and cost-efficiency. They provided clear recommendations tailored to our specific needs, and their actionable insights have already helped us make improvements in key areas. Communication throughout the process was seamless. The 56Bit team was responsive, collaborative, and took the time to explain complex concepts in an easy-to-understand manner.”
“We have found 56Bit to be an excellent partner in building our AWS environments, all work was on time and they have advised us very professionally on what we required.”
“From the very first minutes of cooperation between my Company and 56Bit it was nice, professional and smooth. Even though our Legal department had some remarks after contract review 56Bit has stayed flexible and we managed to sign it. Their consultants are very experienced and professional, during the booked session we purely focused on my Company's needs which I wanted to address. Additionally I would like to mention that they do not insist and they understand that some of our internal processes need time. I would recommend them to any other Company which needs professional AWS consultancy.”
Highly competent delivery that demonstrated a fundamental understanding that only comes from experience. All current project work being delivered on time and using high quality solutions. Well organised and professional.
Good understanding of our requirements and clean implementation.

Testimonials