Skip to content

Commit

Permalink
Create Launch Templates (#18)
Browse files Browse the repository at this point in the history
Co-authored-by: Alfonso Gómez-Arzola <alfonso@agarzola.com>
  • Loading branch information
adamzimmermann and agarzola authored Mar 9, 2022
1 parent fb15dd9 commit 18f5914
Show file tree
Hide file tree
Showing 12 changed files with 284 additions and 172 deletions.
17 changes: 17 additions & 0 deletions .github/ISSUE_TEMPLATE/launch-analytics.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
---
name: Launch - Analytics
about: Checklist of analytics related tasks to complete for a site launch.
title: ''
labels: ''
assignees: ''

---

Please check off line-items as they are completed and leave notes if necessary.
If an item is not relevant to this project, [strike it out](https://docs.github.com/en/github/writing-on-github/basic-writing-and-formatting-syntax#styling-text)
(e.g. `~~Not relevant item~~`) or remove it. If child tickets are created for
any line-item, please update this description to include references to them.

- [ ] Configure Google Tag Manager if applicable.
- [ ] Configure Google Analytics or your analytics tool of choice.
- [ ] Verify analytics tools are only reporting from the production environment or reporting separately depending on requirements.
47 changes: 47 additions & 0 deletions .github/ISSUE_TEMPLATE/launch-development.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
---
name: Launch - Development
about: Checklist of development related tasks to complete for a site launch.
title: ''
labels: ''
assignees: ''

---

Please check off line-items as they are completed and leave notes if necessary.
If an item is not relevant to this project, [strike it out](https://docs.github.com/en/github/writing-on-github/basic-writing-and-formatting-syntax#styling-text)
(e.g. `~~Not relevant item~~`) or remove it. If child tickets are created for
any line-item, please update this description to include references to them.

- [ ] Verify that the mapping in `sites.php` supports the production domain.
- [ ] Verify that PHP error messages are suppressed.
- [ ] Disable database logging for production.
- [ ] Enable syslog for production.
- [ ] Verify that config splits are enabled/disabled appropriately in all environments.
- [ ] Check logs for recurring PHP notices/warnings/errors.
- [ ] Fix recurring issues found in the site logs.
- [ ] Check the browser console for recurring errors.
- [ ] Fix recurring issues found in the browser console.
- [ ] Verify that Stage File Proxy is disabled on PROD.
- [ ] Enable and configure Stage File Proxy for non-production environments.
- [ ] Verify that config exports and imports cleanly.
- [ ] Verify that the config check tooling is enabled in Tugboat.
- [ ] Determine the necessary cron frequency.
- [ ] Validate that a cron trigger is configured and the frequency is acceptable.
- [ ] [Disable Drupal system cron](https://www.drupal.org/docs/administering-a-drupal-site/cron-automated-tasks/cron-automated-tasks-overview#s-disabledrupal-cron).
- [ ] Verify that the deployment process works.
- [ ] Verify that Drupal's status report page is clear of issues.
- [ ] Verify that migrations are complete.
- [ ] Configure field help/descriptive text.
- [ ] Optimize media creation/referencing experience.
- [ ] Verify that meta tags & JSON-LD are configured.
- [ ] Verify that images are being served in an efficient manner.
- [ ] Verify that no API keys or sensitive credentials are stored in code.
- [ ] Determine if "helper" node types and/or taxonomy term pages should appear and hide or block access as needed.
- [ ] Verify that alias patterns and updates/redirects are working correctly.
- [ ] Verify that `$settings['hash_salt']` is set.
- [ ] Verify that `$settings['update_free_access'] = FALSE;` is set.
- [ ] Verify that `$settings['omit_vary_cookie']` is configured correctly.
- [ ] Verify that `$settings['file_public_path']` and file_private_path are configured correctly.
- [ ] Confirm that the 404 page is working and styled as expected.
- [ ] Verify that `$settings['reverse_proxy_*']` configuration is set correctly if a CDN or reverse-proxy is being used.
- [ ] Run performance tests with a tool such as Calibre, Lighthouse, or PageSpeed Insights and fix the issues and/or log post launch tickets.
61 changes: 61 additions & 0 deletions .github/ISSUE_TEMPLATE/launch-final.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
---
name: Launch - Final
about: Final checklist of tasks to complete before a site launch.
title: ''
labels: ''
assignees: ''

---

Please check off line-items as they are completed and leave notes if necessary.
If an item is not relevant to this project, [strike it out](https://docs.github.com/en/github/writing-on-github/basic-writing-and-formatting-syntax#styling-text)
(e.g. `~~Not relevant item~~`) or remove it. If child tickets are created for
any line-item, please update this description to include references to them.

## Migration
- [ ] Confirm that the content migration is complete.

## Account Management
- [ ] Set expectations for post-launch support.
- [ ] Determine what our next engagement will look like.
- [ ] How long will the team continue working under the current engagement after launch?
- [ ] What bugs will we fix after launch without incurring cost?
- [ ] What PTO or resourcing shifts does the client need to be aware of?

## General
- [ ] Validate that initial QA is complete.
- [ ] Validate that all content has been entered/updated.
- [ ] Set expectations with the client about what will happen on launch day.
- [ ] Determine if the launch date is still feasible given the results of QA.

## Project Management
- [ ] Validate that all development work is complete and notify the client.
- [ ] Determine and communicate the expectations we have of the client prior to launch.
- [ ] Validate that all parties are clear on what will and will not be going live at launch.
- [ ] Plan project close actions.
- [ ] Document process for denoting launch blocker bugs.

## Launch Prep
- [ ] Create a roll-back plan.
- [ ] Notify the devops team and confirm they understand what needs to occur.
- [ ] Create an ordered checklist and timeline.
- [ ] Determine who will make the go/no-go call for launch.
- [ ] Determine who will decide if a roll-back is needed.
- [ ] Determine who manages DNS and confirm they will be available to update the entries for launch.
- [ ] Lower DNS TTL to ensure quick propagation on launch day.
- [ ] Verify that `robots.txt` is configured to allow traffic to the production site (i.e. remove any changes that were made for development).
- [ ] Verify that users of the site are aware of the cut-over time/plan.
- [ ] Create a calendar invite with a video call link that can be shared with everyone who is involved with the launch.
- [ ] Verify that user accounts have been migrated or recreated, and that users have access they need.
- [ ] Validate that bug fixes are complete or will be completed on time.
- [ ] Confirm that the final QA is complete.
- [ ] Confirm that we have launch approval from the needed stakeholders.
- [ ] Implement a code freeze state and communicate this with the team.

## Launch Day
- [ ] Let the client know when the launch process begins.
- [ ] Disable HTTP Authorization if applicable.
- [ ] Update DNS entries.
- [ ] Update SSL certs as needed.
- [ ] Test the site manually for large obvious issues.
- [ ] Run through the previously created test plan.
26 changes: 26 additions & 0 deletions .github/ISSUE_TEMPLATE/launch-hosting.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
---
name: Launch - Hosting
about: Checklist of hosting related tasks to complete for a site launch.
title: ''
labels: ''
assignees: ''

---

Please check off line-items as they are completed and leave notes if necessary.
If an item is not relevant to this project, [strike it out](https://docs.github.com/en/github/writing-on-github/basic-writing-and-formatting-syntax#styling-text)
(e.g. `~~Not relevant item~~`) or remove it. If child tickets are created for
any line-item, please update this description to include references to them.

- [ ] Determine who will provide the SSL certificate.
- [ ] Setup HTTPS and test the SSL certificate.
- [ ] Setup SSL certificate reminders.
- [ ] Verify that the web server instance size is large enough.
- [ ] Verify that HTTP/2 is enabled.
- [ ] Configure redirects from www to the base URL (or vice-versa).
- [ ] Create and test redirect rules.
- [ ] Create and test reverse-proxy rules.
- [ ] Verify that asset compression is enabled.
- [ ] Determine who is responsible for the DNS and what needs to happen and when.
- [ ] Determine who is responsible from the hosting provider. What do they need from us to deliver when and how we want them to?
- [ ] Determine who is responsible from the client’s IT team. Security team? What do they need from us to deliver when and how we want them to?
25 changes: 25 additions & 0 deletions .github/ISSUE_TEMPLATE/launch-performance.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
---
name: Launch - Performance
about: Checklist of performance related tasks to complete for a site launch.
title: ''
labels: ''
assignees: ''

---

Please check off line-items as they are completed and leave notes if necessary.
If an item is not relevant to this project, [strike it out](https://docs.github.com/en/github/writing-on-github/basic-writing-and-formatting-syntax#styling-text)
(e.g. `~~Not relevant item~~`) or remove it. If child tickets are created for
any line-item, please update this description to include references to them.

- [ ] Enable Drupal Page caching if applicable.
- [ ] Enable Drupal Big Pipe caching if needed.
- [ ] Verify that custom render array cache metadata is set and tested.
- [ ] Determine if CSS/JavaScript aggregation should be enabled.
- [ ] Verify that development related services are disabled (e.g. development.services.yml)
- [ ] Verify Redis connectivity and Redis is used for caching.
- [ ] Verify that Redis is using the correct cache prefix if applicable.
- [ ] Configure and test the CDN if applicable.
- [ ] Verify the CDN is serving HITs if applicable.
- [ ] Verify Varnish is serving HITs if applicable.
- [ ] Configure and test the load balancer if applicable.
31 changes: 31 additions & 0 deletions .github/ISSUE_TEMPLATE/launch-planning.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
---
name: Launch - Planning
about: Checklist of initial planning related tasks to complete for a site launch.
title: ''
labels: ''
assignees: ''

---

Please check off line-items as they are completed and leave notes if necessary.
If an item is not relevant to this project, [strike it out](https://docs.github.com/en/github/writing-on-github/basic-writing-and-formatting-syntax#styling-text)
(e.g. `~~Not relevant item~~`) or remove it. If child tickets are created for
any line-item, please update this description to include references to them.

- [ ] Determine when/if a content freeze should occur.
- [ ] Determine who is responsible for entering/updating content and when that will occur.
- [ ] Determine launch date and time.
- [ ] Determine production domain.
- [ ] Determine if any existing traffic needs to be proxied or redirected.
- [ ] Determine how redirects will be handled if they are needed.
- [ ] Determine where the starting database will come from.
- [ ] Determine who manages DNS.
- [ ] Determine the caching strategy.
- [ ] Take screenshots of "before" site.
- [ ] Add site to [web.archive.org](http://web.archive.org/).

## QA Process
- [ ] Determine if a QA site is needed.
- [ ] Confirm that `robots.txt` or the corresponding HTTP header is configured to block traffic to the QA site.
- [ ] Implement password protection with HTTP Authorization if required.
- [ ] Verify that proper testing API keys are configured if needed.
30 changes: 30 additions & 0 deletions .github/ISSUE_TEMPLATE/launch-post.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
---
name: Launch - Post Launch
about: Checklist of tasks to complete after a site launch.
title: ''
labels: ''
assignees: ''

---

Please check off line-items as they are completed and leave notes if necessary.
If an item is not relevant to this project, [strike it out](https://docs.github.com/en/github/writing-on-github/basic-writing-and-formatting-syntax#styling-text)
(e.g. `~~Not relevant item~~`) or remove it. If child tickets are created for
any line-item, please update this description to include references to them.

## Development
- [ ] Monitor site log for errors.
- [ ] Verify caching is working as intended.
- [ ] Verify analytics is reporting as expected.
- [ ] Run performance tests with a tool such as Calibre, Lighthouse, or PageSpeed Insights to confirm the site performs as expected.
- [ ] Update Stage File Proxy origin URL configuration to point to the production domain (e.g. $config['stage_file_proxy.settings']['origin']).
- [ ] Confirm that third party integrations are working as expected.
- [ ] Add site to [updown.io](https://updown.io) uptime monitoring.
- [ ] Disable migration related modules and source database connectivity as applicable.
- [ ] Configure Sentry if applicable.

## Ongoing Process
- [ ] Update automated or manual tests to point to the new production domain.
- [ ] Determine if the git branching strategy, merging rules, or any development workflows should be adjusted.
- [ ] Update QA environments to pull databases from the new production site.
- [ ] Update or create database backup scripts to backup the production site.
23 changes: 23 additions & 0 deletions .github/ISSUE_TEMPLATE/launch-qa.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
---
name: Launch - QA
about: Checklist of QA related tasks to complete for a site launch.
title: ''
labels: ''
assignees: ''

---

Please check off line-items as they are completed and leave notes if necessary.
If an item is not relevant to this project, [strike it out](https://docs.github.com/en/github/writing-on-github/basic-writing-and-formatting-syntax#styling-text)
(e.g. `~~Not relevant item~~`) or remove it. If child tickets are created for
any line-item, please update this description to include references to them.

- [ ] Create a testing plan with milestones, impacts of missing key dates, how unknowns will be handled, etc and share it with all stakeholders.
- [ ] Determine who is testing and what they are testing.
- [ ] Determine how testing results are tracked.
- [ ] Determine how the impacts of QA bugs will affect the launch date.
- [ ] Reference the [Chromatic testing plan](https://docs.google.com/document/d/1l0TA64OII2yu8DICWu-sFvE_MgBPoW3zXQn9VUQQKVY/edit#).
- [ ] Document supported browsers.
- [ ] Include expected functionality.
- [ ] Document A11y requirements.
- [ ] Communicate that the QA phase has officially begun.
20 changes: 20 additions & 0 deletions .github/ISSUE_TEMPLATE/launch-security.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
---
name: Launch - Security
about: Checklist of security related tasks to complete for a site launch.
title: ''
labels: ''
assignees: ''

---

Please check off line-items as they are completed and leave notes if necessary.
If an item is not relevant to this project, [strike it out](https://docs.github.com/en/github/writing-on-github/basic-writing-and-formatting-syntax#styling-text)
(e.g. `~~Not relevant item~~`) or remove it. If child tickets are created for
any line-item, please update this description to include references to them.

- [ ] Consider installing & configuring the [SecKit module](https://www.drupal.org/project/seckit).
- [ ] Verify that development related accounts/passwords have been reset or removed.
- [ ] Verify that proper permissions are set on `settings.php` and `services.yml` files.
- [ ] Confirm that development modules are disabled on production (e.g. `kint`, `devel_generate`, `devel`, etc).
- [ ] Verify that `$settings['trusted_host_patterns']` is configured.
- [ ] Verify that database updates via the UI are disabled (`$settings['update_free_access'] = FALSE;`).
Loading

0 comments on commit 18f5914

Please sign in to comment.