openvidu/openvidu-deployment/pro/ha/aws/DOC-CHANGES-ha-optimization...

10 KiB
Raw Blame History

Documentation changes for ha-optimizations (AWS HA deployment)

Instructions for the Claude working on the docs repo /home/sergio/Escritorio/openvidu/openvidu.io (branch next, already up to date).

These instructions derive from the changes applied in openvidu-deployment/pro/ha/aws/cf-openvidu-ha.yaml on the ha-optimizations branch. Functional summary of what changed in the deployment:

  • The 4 master EC2 instances are now created in parallel (the DependsOn chain MasterNode2→WaitCondition1, 3→2, 4→3 was removed; coordination stays data-driven).
  • Each master now publishes its private IP to its own SSM Parameter Store parameter (/openvidu/<stack-name>/master-node-N-private-ip), an atomic per-key write, instead of a racy read-modify-write into the single shared Secrets Manager JSON. The 4 MASTER_NODE_*_PRIVATE_IP keys were removed from that JSON.
  • Media Nodes now install (Docker + image pulls) in parallel with the masters. They are no longer gated behind MasterNodesWaitCondition4; instead they poll for the shared secrets and the master IPs, and wait for at least one healthy master before starting. The Network Load Balancer is likewise no longer gated behind MasterNodesWaitCondition4.
  • Hardening: the previously unbounded "wait for the 4 master IPs" loop is now bounded (30 min), and the installer download is retried and validated (curl --retry 8 ... -o file + non-empty check) instead of the fragile sh <(curl ...).

SUMMARY: no doc content change is strictly required. The AWS HA docs publish no deployment-time figure and describe no internals that changed. The only optional edits are (a) adding a deployment-time figure and (c.1) regenerating one screenshot. Everything else (public parameters, the single Output, screenshots, other clouds, other deployment types, on-node config files) stays the same. Read this file in full before touching anything.


(a) Deployment-time figure — OPTIONAL (none exists today)

Unlike the GCP and Azure HA install.md files, the AWS HA install.md currently publishes NO deployment-time figure at all (no "wait about N minutes" sentence). So there is nothing to update here. This is only a suggestion in case you want to add one now that the deployment is faster (masters in parallel + media install overlapping the masters' install + no IP handshake through Secrets Manager).

File: docs/docs/self-hosting/ha/aws/install.md

Two natural, OPTIONAL insertion points (locate by literal text; line numbers approximate):

Option 1 — end of "## Deploying the stack" (~line 155)

Current literal text (the paragraph that ends the section):

When you are ready with your CloudFormation parameters, just click on _"Next"_, specify in _"Stack failure options"_ the option _"Preserve successfully provisioned resources"_ to be able to troubleshoot the deployment in case of error, click on _"Next"_ again, and finally _"Submit"_.

Proposed (append one sentence; fill in X/Y from ov-cloud-tester):

When you are ready with your CloudFormation parameters, just click on _"Next"_, specify in _"Stack failure options"_ the option _"Preserve successfully provisioned resources"_ to be able to troubleshoot the deployment in case of error, click on _"Next"_ again, and finally _"Submit"_. The stack will take about X to Y minutes to create all resources.

Option 2 — "## Configuration and administration" (~line 190)

Current literal text:

When your CloudFormation stack reaches the **`CREATE_COMPLETE`** status, your OpenVidu High Availability deployment is ready to use. You can check the [Administration](./admin.md) section to learn how to manage your deployment.

Proposed (fill in X/Y from ov-cloud-tester):

When your CloudFormation stack reaches the **`CREATE_COMPLETE`** status (about X to Y minutes), your OpenVidu High Availability deployment is ready to use. You can check the [Administration](./admin.md) section to learn how to manage your deployment.

Placeholder to fill in: X to Y minutes — fill with the ov-cloud-tester measurement. If you add a figure in BOTH options, keep them consistent. Do NOT invent a number — leave the X to Y placeholder until the real measurement is available. This is entirely optional; skipping section (a) leaves the docs correct.


(b) Public template parameters / outputs: NO CHANGES — confirmation

Do not touch parameter tables or screenshots in the parameters section.

Reason: no CloudFormation Parameters were added, removed or renamed, and the single Outputs entry (ServicesAndCredentials) is unchanged. The new per-master IPs live in SSM Parameter Store parameters that are created internally by the template; they are not template parameters and require no user input. Therefore:

  • The parameter sections of docs/docs/self-hosting/ha/aws/install.md ("## CloudFormation Parameters" and its subsections, ~lines 52137) stay the same.
  • There are no new fields the user must fill in the CloudFormation form.
  • The parameter form screenshots do not change.
  • The ServicesAndCredentials output and the "Configure your application to use the deployment" section (~lines 163180) are unaffected.

(c) Other statements in the AWS HA docs that may become outdated

The AWS HA documentation (docs/docs/self-hosting/ha/aws/*.md) and the shared AWS includes (shared/self-hosting/aws/*.md) were reviewed against the internal changes. Conclusions:

c.1 — Secrets Manager contents: MASTER_NODE_{1..4}_PRIVATE_IP removed from the JSON

The 4 keys MASTER_NODE_1_PRIVATE_IPMASTER_NODE_4_PRIVATE_IP were removed from the OpenViduSharedInfo Secrets Manager JSON (the masters' IPs now live in SSM Parameter Store). The AWS HA docs do not mention these keys by name in any text, so there is no prose to fix.

  • install.md (~line 165177) and admin.md (~line 226238) describe the ServicesAndCredentials secret only generically ("contains all URLs and credentials", "get the JSON with all the information"). The "most relevant" values are listed via the shared includes shared/self-hosting/aws/credentials-general.md and credentials-v2compatibility.md, neither of which lists the IP keys. No change.
  • Only possible impact: the secret screenshot assets/images/platform/self-hosting/ha/aws/2-secrets.png (shown in install.md) COULD still display the 4 removed IP keys. This is purely cosmetic. OPTIONAL action: if/when the screenshot is regenerated, do it against an ha-optimizations deployment. This is NOT blocking.

c.2 — upgrade.md: DO NOT TOUCH

docs/docs/self-hosting/ha/aws/upgrade.md (~lines 8292) documents /usr/local/bin/store_secret.sh save OPENVIDU_VERSION "<VERSION>" and the OPENVIDU_VERSION Secrets Manager secret. Neither store_secret.sh nor the OPENVIDU_VERSION secret was changed by this work. No changes required.

c.3 — backup-and-restore.md: DO NOT TOUCH

docs/docs/self-hosting/how-to-guides/backup-and-restore.md (~lines 676692) documents MASTER_NODE_1_PRIVATE_IPMASTER_NODE_4_PRIVATE_IP inside the on-node configuration file /opt/openvidu/config/node/master-node.env.

IMPORTANT: these are NOT the removed Secrets Manager keys. They are config-file variables that the installer still writes from the --master-node-private-ip-list flag (which is still passed — now built from the SSM parameters instead of the shared JSON). That on-node flow is unchanged. Do not modify backup-and-restore.md.

c.4 — Master boot order / parallelization: not documented

The AWS HA docs never state that master nodes are created sequentially / "one by one", nor do they describe the DependsOn chain, MasterNodesWaitCondition*, or the fact that the Load Balancer / Media Nodes used to wait for MasterNodesWaitCondition4. Removing that chain and un-gating the NLB and Media Nodes changes nothing user-facing. No text to update.

c.5 — Internal coordination (ALL_SECRETS_GENERATED, SSM IP handshake, health gates): not documented

The master-1-as-leader secret generation, the ALL_SECRETS_GENERATED flag, the new SSM per-master IP handshake, the bounded wait loops, and the media "wait for a healthy master" gate are all internal and not publicly documented. Nothing user-facing changes. No text to update. admin.md and index.md were also reviewed: no references to the changed internals. No changes required.


(d) New resources created by the stack: 4 SSM parameters

The stack now creates 4 SSM Parameter Store parameters as CloudFormation resources:

/openvidu/<stack-name>/master-node-1-private-ip
/openvidu/<stack-name>/master-node-2-private-ip
/openvidu/<stack-name>/master-node-3-private-ip
/openvidu/<stack-name>/master-node-4-private-ip

They are visible in the AWS Systems Manager → Parameter Store console and are deleted with the stack. They are harmless and require no user interaction.

The AWS HA docs do not enumerate the resources the stack creates anywhere, so there is nothing to update. This note exists only so that, if such an enumeration is ever added (or if a reader asks about unfamiliar parameters in the console), the 4 parameters are accounted for and expected.


Implementation checklist

  • (OPTIONAL, section a) In docs/docs/self-hosting/ha/aws/install.md, add a deployment-time sentence with the X to Y minutes placeholder at one of the two insertion points; measure with ov-cloud-tester on ha-optimizations and fill in X/Y. Skipping this leaves the docs correct.
  • Confirm NO parameter tables or screenshots were touched (section b).
  • Confirm upgrade.md (store_secret.sh / OPENVIDU_VERSION) was NOT touched (c.2).
  • Confirm backup-and-restore.md (on-node master-node.env IP vars) was NOT touched (c.3).
  • (OPTIONAL, section c.1) Regenerate 2-secrets.png against an ha-optimizations deployment if you want it to stop showing the 4 removed MASTER_NODE_*_PRIVATE_IP keys. Not blocking.
  • No action needed for the 4 new SSM parameters unless a resource enumeration is added to the docs (section d).