Put status page on a CDN
Problem to solve
Running a status page on a standard web server comes with an array of operational overhead. Infrastructure needs to be procured, provision, and managed. The trade-off between cost and scale is difficult to balance because most of the time status pages receive relatively little traffic which then can spike monumentally during a incident. The risk of performance degradation and outage for your status page itself is increased.
Hosting status pages as static content on a Content Delivery Network (CDN) eliminates the operational overhead and greatly mitigates the risk because CDNs are designed for high performance at scale.
Intended users
See #205164 (closed)
Further details
Proposal
- Host the status page on a CDN
For the MVC, we will be uploading the generated JSON files and the static status page to AWS S3.
We'll document for both backend and frontend how users need to setup their CDN:
- Users need to setup their S3 bucket as a static website: https://docs.aws.amazon.com/AmazonS3/latest/dev/HostingWebsiteOnS3Setup.html
- For backend users need to configure Status Page integration via the Settings Page: #207181 (closed)
- For frontend users need to deploy the static page: https://gitlab.com/gitlab-org/status-page
Out of scope
- Allowing the user to choose the CDN (for this iteration it's ok we we dictate which CDN the status page must run on to ensure compatibility.)
- Pre-configuring the CND. (for this iteration it's OK if users must configure the CDN)
- GUI configuration of the CDN (for this iteration it's OK if setup and configuration of the CDN is a manual process that requires technical expertise, such as command line proficiency, to execute.)