Skip to content

docs: describe operational readiness #12723

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 8 commits into from
Mar 25, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 6 additions & 5 deletions .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -202,7 +202,9 @@ jobs:
popd

- name: make gen
run: "make --output-sync -j -B gen"
# no `-j` flag as `make` fails with:
# coderd/rbac/object_gen.go:1:1: syntax error: package statement must be first
run: "make --output-sync -B gen"
Comment on lines +205 to +207
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍 I think this is fine for now but ideally we should figure out why this happens. Maybe file a follow-up issue?


- name: Check for unstaged files
run: ./scripts/check_unstaged.sh
Expand Down Expand Up @@ -604,9 +606,6 @@ jobs:
- name: Setup sqlc
uses: ./.github/actions/setup-sqlc

- name: make gen
run: "make --output-sync -j -B gen"

- name: Format
run: |
cd offlinedocs
Expand All @@ -618,8 +617,10 @@ jobs:
pnpm lint

- name: Build
# no `-j` flag as `make` fails with:
# coderd/rbac/object_gen.go:1:1: syntax error: package statement must be first
run: |
make -j build/coder_docs_"$(./scripts/version.sh)".tgz
make build/coder_docs_"$(./scripts/version.sh)".tgz

required:
runs-on: ubuntu-latest
Expand Down
57 changes: 57 additions & 0 deletions docs/admin/architectures/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -342,3 +342,60 @@ We provide the following general recommendations for PostgreSQL settings:
and memory utilization is high.
- Utilize faster disk options (higher IOPS) such as SSDs or NVMe drives for
optimal performance enhancement and possibly reduce database load.

## Operational readiness

Operational readiness in Coder is about ensuring that everything is set up
correctly before launching a platform into production. It involves making sure
that the service is reliable, secure, and easily scales accordingly to user-base
needs. Operational readiness is crucial because it helps prevent issues that
could affect workspace users experience once the platform is live.

Learn about Coder design principles and architectural best practices described
in the
[Well-Architected Framework](https://coder.com/blog/coder-well-architected-framework).

### Configuration

1. Identify the required Helm values for configuration.
1. Create `values.yaml` and add it to a version control system. _Note:_ it is
highly recommended that you create a custom `values.yaml` as opposed to
copying the entire default values.
1. Determine the necessary environment variables.

### Template configuration

1. Establish a dedicated user account for the _Template Administrator_.
1. Maintain Coder templates using version control.
1. Consider implementing a GitOps workflow to automatically push new template.
For example, on Github, you can use the
[Update Coder Template](https://github.com/marketplace/actions/update-coder-template)
action.
1. Evaluate enabling automatic template updates upon workspace startup.

### Deployment

1. Leverage automation tooling to automate deployment and upgrades of Coder.

### Observability

1. Enable the Prometheus endpoint (environment variable:
`CODER_PROMETHEUS_ENABLE`).
1. Deploy a visual monitoring system such as Grafana for metrics visualization.
1. Deploy a centralized logs aggregation solution to collect and monitor
application logs.
1. Review the [Prometheus response](../prometheus.md) and set up alarms on
selected metrics.

### Database backups

1. Prepare internal scripts for dumping and restoring databases.
1. Schedule regular database backups, especially before release upgrades.

### User support

1. Incorporate [support links](../appearance.md#support-links) into internal
documentation accessible from the user context menu. Ensure that hyperlinks
are valid and lead to up-to-date materials.
1. Encourage the use of `coder support bundle` to allow workspace users to
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

coder support bundle can only be used by administrators -- additionally, the command is currently hidden and will be un-hidden closer to the next release.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I guess that this is coming now 👍

generate and provide network-related diagnostic data.