Dashboard - Devops (draft)
This document collects information on devops dashboard responsibilities. There is a strong overlap with release process and it would make sense to integrate this with a larger set of release documentation.
Links
AWS dashboard documentation | https://fioprotocol.atlassian.net/wiki/spaces/FO/pages/88539399 |
CI pipeline reporting | Discord > CORE-CHAIN > pipeline-notifications (https://discord.com/channels/509062983046135829/920004743135379527) |
Devops channel | Discord > OPERATIONS (INTERNAL) > devops (https://discord.com/channels/509062983046135829/979506033590403123) |
AWS Build Pipelines
EzOps is responsible for creating and maintaining the CI build pipelines, including the reporting of pipeline status. This currently consists of:
Development pipeline
Staging pipeline
Production pipeline
The status of pipeline builds is reported out to Discord.
Next steps:
Aleph One to detail latest release process and the related repositories and branches
Make sure the AWS dashboard documentation has appropriate documentation for all pipelines. If not, open Jira ticket with details
AWS Services
EzOps is responsible for setup and monitoring of services required by the Dashboard.
Next steps:
Aleph One team review the AWS dashboard infrastructure documentation
For any services that are not documented open a Jira task and detail the items that need additional documentation
Open Jira tickets for any additional (Discord or AWS UI) monitoring or reporting on services that would be helpful
AWS Servers
EzOps is responsible for setup and monitoring of backend and frontend development, testing, and production servers.
Next steps:
Aleph One team review the AWS dashboard infrastructure documentation
For any infrastructure that is not documented open a Jira task and detail the items that need additional documentation
Open Jira tickets for any additional (Discord or AWS UI) monitoring or reporting that would be helpful
Release
Based on a recent discussion we need to better define the responsibilities of EzOps during releases. This might include:
Monitoring pipelines for failure
Fixing issues found during deployment
Executing rollbacks in case of failure
Other?
Next steps:
I recommend the Aleph One team create a release checklist and clearly define the areas where devops is needed. This needs to distinguish between release management tasks and devops tasks. For example, this checklist is used by release management for chain releases: [Release n.n] Release Checklist
We can then review the checklist with EzOps and make sure they are okay with their assignments.
As part of this checklist, we should set up “release windows” where the EzOps team is available to support production releases.
Decide if we want to have an additional “staging” server (and pipeline) that is separate from the current staging Testnet server. If so, open a Jira story to track the setup of this server.