j40-cejst-2/docs/operations/rollout-plan.md

71 lines
3.4 KiB
Markdown
Raw Permalink Normal View History

2024-12-04 08:32:53 -06:00
# v2.0 Rollout Plan (DRAFT, DELIBERATIVE, PRE-DECISIONAL)
In late 2024, we will release a new version of the CEJST website. This
document describes the process of getting that data and the latest version
of the website released.
The architecture of the site is better described in
[../architecture/README.md](../architecture/README.md), but for the purpose of
this document, we'll just mention that the data for the site is in a "backend"
S3 bucket where the map tiles describing the districts have been generated by
a Python-based data pipeline. That S3 bucket has a Cloudfront distribution in
front of it and is accessible at static-data-screeningtool.geoplatform.gov.
The frontend application uses that URL and some path configuration information
to provide the correct data.
The frontend application is a static site built by Gatsby in a Github Action
then deployed to and served from an S3 bucket behind a Cloudfront distribution at
screeningtool.geoplatform.gov.
## Backend Data Rollout
The CEJST data is stored in an S3 bucket under "versioned" paths (we think)
using `1.0/` in the path. When we build the updated data pipeline for CEJST
2.0, we will configure it to export the files into the existing bucket under
paths marked `2.0/`. The hypothesis is that this will give an updated version
of the CEJST data in that bucket without affecting the data being served by
the existing website
TODO: Validate the hypotheses that
2024-12-10 10:54:39 -06:00
- [X] the frontend website pulls its backend data from versioned paths
- [X] the data pipeline that builds the backend data can be configured
2024-12-04 08:32:53 -06:00
so that it will not overwrite any of the existing data in the same
bucket
2024-12-10 10:54:39 -06:00
The deploy-backend-main.yml Github workflow builds the scoring and deploys
it to the S3 data bucket. We want to have control of when that workflow runs
so that there are no inadvertent changes to the scoring in the bucket. When
we want to run the build and deploy workflow for the scoring, we can do
so by clicking the button in the Github web UI.
The rollout sequence will be (1) freezing the code in `data/` with the final
v2 changes, then (2) analyzing the resulting changes from v1 to v2 in order to
fully bless the v2 results. Once the analysis and approval is complete we can
(3) run the backend build and deploy workflow to install the final version of
the CEJST scores on the S3 data bucket.
2024-12-04 08:32:53 -06:00
## Frontend app rollout
Rather than trying to incrementally change the frontend app that is deployed
at screeningtool.geoplatform.gov, we will deploy the new 2.0 version of the
frontend website in a new S3 bucket with a new Cloudfront distribution, and
configured to use the new backend data under the `2.0/` paths. This
will allow us to test the deploy process, website improvements, and the
display of the updated data using a staging URL like
<random-string-of-letters>.cloudfront.net.
2024-12-04 08:34:41 -06:00
TODO: Get new AWS resources
2024-12-10 10:54:39 -06:00
- [X] A new website S3 bucket
- [X] A new Cloudfront distribution that serves that S3 bucket
After the v2 backend is frozen, approved, and deployed, we will move on
to testing the frontend with that data at the staging URL.
2024-12-04 08:34:41 -06:00
2024-12-04 08:32:53 -06:00
## Release day
When the 2.0 CEJST is ready to release to the public, we can change the
screeningtool.geoplatform.gov domain name to point to the new frontend
Cloudfront distribution instead of the one that it currently goes to. With
this one change, after the DNS change propagates, users online will see the
new frontend website which is configured to display the new backend data.