Skip to content

Commit 3a1eb9f

Browse files
authored
Fix and bring inline mermaid infra. diagrams (#8407)
## Trello card URL - https://trello.com/c/NXqyEMjV/2490-fix-broken-legacy-infrastructure-diagrams ## Changes in this PR: - Fix legacy syntax that broke existing diagrams. - Adapt diagrams to the latest infra. changes in our service. - Bring diagrams inline for VSCode & Github native display instead of depending on an external service. ## Screenshots of UI changes: ### Before Broken diagrams. Not displayed. <img width="1009" height="335" alt="image" src="https://github.com/user-attachments/assets/e15707b3-f8bc-4525-8acd-1f6b23034f04" /> ### After <img width="948" height="649" alt="image" src="https://github.com/user-attachments/assets/fe1466c5-660d-45ac-85d8-9056f20ba113" /> <img width="774" height="939" alt="image" src="https://github.com/user-attachments/assets/5f61a237-b7fd-465a-b264-e4ecd7f509e6" /> ## Checklists: ### Data & Schema Changes If this PR modifies data structures or validations, check the following: - [ ] Adds/removes model validations - [ ] Adds/removes database fields - [ ] Modifies Vacancy enumerables (phases, working patterns, job roles, key stages, etc.) <details> <summary>If any of the above options has changed then the author must check/resolve all of the following...</summary> ### Integration Impact Does this change affect any of these integrations? - [ ] DfE Analytics platform - [ ] Legacy imports mappings - [ ] DWP Find a Job export mappings - [ ] Publisher ATS API (may require mapping updates or API versioning) ### User Experience & Data Integrity Could this change impact: - [ ] Existing subscription alerts (will legacy subscription search filters break?) - [ ] Legacy vacancy copying (will copied vacancies fail new validations?) - [ ] In-progress drafts for Vacancies or Job Applications </details>
1 parent bb3b340 commit 3a1eb9f

File tree

1 file changed

+40
-21
lines changed

1 file changed

+40
-21
lines changed

documentation/operations/infrastructure/infrastructure.md

Lines changed: 40 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,54 @@
11
# Infrastructure diagrams
2-
## [Outdated] Diagrams are not visible anymore. Need to regenerate them.
32

43
## CI/CD deployment pipeline
54

65
On Pull Request to `main` branch, GitHub Actions `deploy.yml` workflow launches:
76

8-
[![](https://mermaid.ink/img/eyJjb2RlIjoiZ3JhcGggVERcblxuRGV2ZWxvcGVyKChEZXZlbG9wZXIpKVxuXG5EZXZlbG9wZXIgLS0-IHxQUiB0byBtYXN0ZXIgYnJhbmNoIG9uIGh0dHBzOi8vZ2l0aHViLmNvbS9ERkUtRGlnaXRhbC90ZWFjaGluZy12YWNhbmNpZXN8R2l0SHViTWFzdGVyKEdpdEh1YiBtYXN0ZXIgYnJhbmNoKVxuR2l0SHViTWFzdGVyIC0tPiB8U3RhcnQgR2l0SHViIEFjdGlvbnMgV29ya2Zsb3cgYW5kIFVidW50dSBWaXJ0dWFsIEVudmlyb25tZW50fCBHaXRIdWJWaXJ0dWFsRW52KEdpdEh1YiB2aXJ0dWFsIGVudmlyb25tZW50KVxuR2l0SHViVmlydHVhbEVudiAtLT4gfERlY29kZSBBV1Mgc2VjcmV0czxiciAvPkNoZWNrIGZvciB3ZWxsLWZvcm1lZCBZQU1MfCBBV1NTU01QYXJhbWV0ZXJTdG9yZVtBV1MgU1NNIFBhcmFtZXRlciBTdG9yZV1cbkdpdEh1YlZpcnR1YWxFbnYgLS0-IHxJbml0aWFsaXNlIFRlcnJhZm9ybSB8R2l0SHViVmlydHVhbEVudlBsdXNUZXJyYWZvcm0oVGVycmFmb3JtIENMSSBvbiBHaXRIdWIgdmlydHVhbCBlbnZpcm9ubWVudClcbkdpdEh1YlZpcnR1YWxFbnYgLS0-IHxEZWNvZGUgR2l0SHViIFNlY3JldHN8R2l0SHViU2VjcmV0cyhHaXRIdWIgU2VjcmV0cylcbkdpdEh1YlZpcnR1YWxFbnYgLS0-IHxCdWlsZCBEb2NrZXIgaW1hZ2U8YnIgLz5QdXNoIHRvIERvY2tlckh1YnwgRG9ja2VySHViXG5HaXRIdWJWaXJ0dWFsRW52UGx1c1RlcnJhZm9ybSAtLT4gfERlY29kZSBBV1Mgc2VjcmV0czxiciAvPkNyZWF0ZSBlbnYgdmFyc3wgQVdTU1NNUGFyYW1ldGVyU3RvcmVbQVdTIFNTTSBQYXJhbWV0ZXIgU3RvcmVdXG5HaXRIdWJWaXJ0dWFsRW52UGx1c1RlcnJhZm9ybSAtLT4gfENyZWF0ZS9VcGRhdGV8IEFXU0Nsb3VkZnJvbnRbQVdTIENsb3VkZnJvbnQgRGlzdHJpYnV0aW9uXVxuR2l0SHViVmlydHVhbEVudlBsdXNUZXJyYWZvcm0gLS0-IHxDcmVhdGUvVXBkYXRlfCBTdGF0dXNjYWtle1N0YXR1c2Nha2UgcnVsZX1cbkdpdEh1YlZpcnR1YWxFbnZQbHVzVGVycmFmb3JtIC0tPiB8Q3JlYXRlL1VwZGF0ZXwgR292VUtQYWFTU2VydmljZXMoLUdvdi5VSyBQYWFTIHNlcnZpY2VzIDxiciAvPlBvc3RncmVTUUw8YnIgLz5SZWRpczxiciAvPlBhcGVydHJhaWwtKVxuR2l0SHViVmlydHVhbEVudlBsdXNUZXJyYWZvcm0gLS0-IHxDcmVhdGUvVXBkYXRlfCBHb3ZVS1BhYVNBcHBzKC1Hb3YuVUsgUGFhUyBhcHBzIDxiciAvPmFuZCB3ZWIgcm91dGUtKVxuRG9ja2VySHViIC0tPiB8UHVsbCBEb2NrZXIgdGFnZ2VkIGltYWdlfCBHb3ZVS1BhYVNBcHBzIiwibWVybWFpZCI6e30sInVwZGF0ZUVkaXRvciI6ZmFsc2V9)](https://mermaid-js.github.io/mermaid-live-editor/#/edit/eyJjb2RlIjoiZ3JhcGggVERcblxuRGV2ZWxvcGVyKChEZXZlbG9wZXIpKVxuXG5EZXZlbG9wZXIgLS0-IHxQUiB0byBtYXN0ZXIgYnJhbmNoIG9uIGh0dHBzOi8vZ2l0aHViLmNvbS9ERkUtRGlnaXRhbC90ZWFjaGluZy12YWNhbmNpZXN8R2l0SHViTWFzdGVyKEdpdEh1YiBtYXN0ZXIgYnJhbmNoKVxuR2l0SHViTWFzdGVyIC0tPiB8U3RhcnQgR2l0SHViIEFjdGlvbnMgV29ya2Zsb3cgYW5kIFVidW50dSBWaXJ0dWFsIEVudmlyb25tZW50fCBHaXRIdWJWaXJ0dWFsRW52KEdpdEh1YiB2aXJ0dWFsIGVudmlyb25tZW50KVxuR2l0SHViVmlydHVhbEVudiAtLT4gfERlY29kZSBBV1Mgc2VjcmV0czxiciAvPkNoZWNrIGZvciB3ZWxsLWZvcm1lZCBZQU1MfCBBV1NTU01QYXJhbWV0ZXJTdG9yZVtBV1MgU1NNIFBhcmFtZXRlciBTdG9yZV1cbkdpdEh1YlZpcnR1YWxFbnYgLS0-IHxJbml0aWFsaXNlIFRlcnJhZm9ybSB8R2l0SHViVmlydHVhbEVudlBsdXNUZXJyYWZvcm0oVGVycmFmb3JtIENMSSBvbiBHaXRIdWIgdmlydHVhbCBlbnZpcm9ubWVudClcbkdpdEh1YlZpcnR1YWxFbnYgLS0-IHxEZWNvZGUgR2l0SHViIFNlY3JldHN8R2l0SHViU2VjcmV0cyhHaXRIdWIgU2VjcmV0cylcbkdpdEh1YlZpcnR1YWxFbnYgLS0-IHxCdWlsZCBEb2NrZXIgaW1hZ2U8YnIgLz5QdXNoIHRvIERvY2tlckh1YnwgRG9ja2VySHViXG5HaXRIdWJWaXJ0dWFsRW52UGx1c1RlcnJhZm9ybSAtLT4gfERlY29kZSBBV1Mgc2VjcmV0czxiciAvPkNyZWF0ZSBlbnYgdmFyc3wgQVdTU1NNUGFyYW1ldGVyU3RvcmVbQVdTIFNTTSBQYXJhbWV0ZXIgU3RvcmVdXG5HaXRIdWJWaXJ0dWFsRW52UGx1c1RlcnJhZm9ybSAtLT4gfENyZWF0ZS9VcGRhdGV8IEFXU0Nsb3VkZnJvbnRbQVdTIENsb3VkZnJvbnQgRGlzdHJpYnV0aW9uXVxuR2l0SHViVmlydHVhbEVudlBsdXNUZXJyYWZvcm0gLS0-IHxDcmVhdGUvVXBkYXRlfCBTdGF0dXNjYWtle1N0YXR1c2Nha2UgcnVsZX1cbkdpdEh1YlZpcnR1YWxFbnZQbHVzVGVycmFmb3JtIC0tPiB8Q3JlYXRlL1VwZGF0ZXwgR292VUtQYWFTU2VydmljZXMoLUdvdi5VSyBQYWFTIHNlcnZpY2VzIDxiciAvPlBvc3RncmVTUUw8YnIgLz5SZWRpczxiciAvPlBhcGVydHJhaWwtKVxuR2l0SHViVmlydHVhbEVudlBsdXNUZXJyYWZvcm0gLS0-IHxDcmVhdGUvVXBkYXRlfCBHb3ZVS1BhYVNBcHBzKC1Hb3YuVUsgUGFhUyBhcHBzIDxiciAvPmFuZCB3ZWIgcm91dGUtKVxuRG9ja2VySHViIC0tPiB8UHVsbCBEb2NrZXIgdGFnZ2VkIGltYWdlfCBHb3ZVS1BhYVNBcHBzIiwibWVybWFpZCI6e30sInVwZGF0ZUVkaXRvciI6ZmFsc2V9)
9-
10-
## Web visit
11-
12-
[![](https://mermaid.ink/img/eyJjb2RlIjoiZ3JhcGggVERcblxuRW5kVXNlcigoRW5kIHVzZXIpKVxuXG5FbmRVc2VyIC0tPiB8QnJvd3NlIHRvIGh0dHBzOi8vdGVhY2hpbmctdmFjYW5jaWVzLnNlcnZpY2UuZ292LnVrfFJvdXRlNTNbUm91dGU1M11cblJvdXRlNTMgLS0-IHxBbGlhcyBBIHJlY29yZHwgQ2xvdWRmcm9udFxuQ2xvdWRmcm9udCAtLT4gfFJlY29yZCBTdGFuZGFyZCBMb2dzfFMzY2xvdWRmcm9udGxvZ3NbUzMgYnVja2V0OiBgY2xvdWRmcm9udGxvZ3NgXVxuQ2xvdWRmcm9udCAtLT4gfENhY2hlIHN0YXRpYyBhc3NldHN8U2l0ZU9ubGluZXtQYWFTIHNpdGUgb25saW5lP31cbkNsb3VkZnJvbnQgLS0-IEFDTUNlcnRpZmljYXRlW0FXUy1pc3N1ZWQgY2VydGlmaWNhdGVdXG5TaXRlT25saW5lIC0tPnxOb3wgT2ZmbGluZVVSSVtTZXJ2ZSBPZmZsaW5lIHBhZ2VzXVxuT2ZmbGluZVVSSSAtLT58aHR0cHM6Ly90dnMtb2ZmbGluZS5zMy5hbWF6b25hd3MuY29tL3NjaG9vbC1qb2JzLW9mZmxpbmUvaW5kZXguaHRtbHxTM29mZmxpbmVbUzMgYnVja2V0IGB0dnMtb2ZmbGluZWBdXG5TaXRlT25saW5lIC0tPnxZZXN8IFBhYVNbQ0ROIHRvIEdvdi5VSyBQYWFTXVxuUGFhUyAtLT58aHR0cHM6Ly90ZWFjaGluZy12YWNhbmNpZXMtcHJvZHVjdGlvbi5sb25kb24uY2xvdWRhcHBzLmRpZ2l0YWx8R292LlVLUGFhUygtR292LlVLIFBhYVMtKSIsIm1lcm1haWQiOnt9LCJ1cGRhdGVFZGl0b3IiOmZhbHNlfQ)](https://mermaid-js.github.io/mermaid-live-editor/#/edit/eyJjb2RlIjoiZ3JhcGggVERcblxuRW5kVXNlcigoRW5kIHVzZXIpKVxuXG5FbmRVc2VyIC0tPiB8QnJvd3NlIHRvIGh0dHBzOi8vdGVhY2hpbmctdmFjYW5jaWVzLnNlcnZpY2UuZ292LnVrfFJvdXRlNTNbUm91dGU1M11cblJvdXRlNTMgLS0-IHxBbGlhcyBBIHJlY29yZHwgQ2xvdWRmcm9udFxuQ2xvdWRmcm9udCAtLT4gfFJlY29yZCBTdGFuZGFyZCBMb2dzfFMzY2xvdWRmcm9udGxvZ3NbUzMgYnVja2V0OiBgY2xvdWRmcm9udGxvZ3NgXVxuQ2xvdWRmcm9udCAtLT4gfENhY2hlIHN0YXRpYyBhc3NldHN8U2l0ZU9ubGluZXtQYWFTIHNpdGUgb25saW5lP31cbkNsb3VkZnJvbnQgLS0-IEFDTUNlcnRpZmljYXRlW0FXUy1pc3N1ZWQgY2VydGlmaWNhdGVdXG5TaXRlT25saW5lIC0tPnxOb3wgT2ZmbGluZVVSSVtTZXJ2ZSBPZmZsaW5lIHBhZ2VzXVxuT2ZmbGluZVVSSSAtLT58aHR0cHM6Ly90dnMtb2ZmbGluZS5zMy5hbWF6b25hd3MuY29tL3NjaG9vbC1qb2JzLW9mZmxpbmUvaW5kZXguaHRtbHxTM29mZmxpbmVbUzMgYnVja2V0IGB0dnMtb2ZmbGluZWBdXG5TaXRlT25saW5lIC0tPnxZZXN8IFBhYVNbQ0ROIHRvIEdvdi5VSyBQYWFTXVxuUGFhUyAtLT58aHR0cHM6Ly90ZWFjaGluZy12YWNhbmNpZXMtcHJvZHVjdGlvbi5sb25kb24uY2xvdWRhcHBzLmRpZ2l0YWx8R292LlVLUGFhUygtR292LlVLIFBhYVMtKSIsIm1lcm1haWQiOnt9LCJ1cGRhdGVFZGl0b3IiOmZhbHNlfQ)
7+
```mermaid
8+
flowchart TD
9+
10+
Developer((Developer))
11+
12+
Developer --> |PR to main branch on https://github.com/DFE-Digital/teaching-vacancies|GitHubMaster(GitHub main branch)
13+
GitHubMaster --> |Start GitHub Actions Workflow and Ubuntu Virtual Environment| GitHubVirtualEnv(GitHub virtual environment)
14+
GitHubVirtualEnv --> |Decode AWS secrets<br />Check for well-formed YAML| AWSSSMParameterStore[AWS SSM Parameter Store]
15+
GitHubVirtualEnv --> |Initialise Terraform |GitHubVirtualEnvPlusTerraform(Terraform CLI on GitHub virtual environment)
16+
GitHubVirtualEnv --> |Decode GitHub Secrets|GitHubSecrets(GitHub Secrets)
17+
GitHubVirtualEnv --> |Build Docker image<br />Push to DockerHub| DockerHub
18+
GitHubVirtualEnvPlusTerraform --> |Decode AWS secrets<br />Create env vars| AWSSSMParameterStore[AWS SSM Parameter Store]
19+
GitHubVirtualEnvPlusTerraform --> |Create/Update| AWSCloudfront[AWS Cloudfront Distribution]
20+
GitHubVirtualEnvPlusTerraform --> |Create/Update| Statuscake{Statuscake rule}
21+
GitHubVirtualEnvPlusTerraform --> |Create/Update| AzureServices(Azure services:<br>PostgreSQL<br>Redis)
22+
GitHubVirtualEnvPlusTerraform --> |Create/Update| AzureApps(Azure apps<br>and web route)
23+
DockerHub --> |Pull Docker tagged image| AzureApps
24+
25+
click GitHubMaster "https://github.com/DFE-Digital/teaching-vacancies" "Github Main branch" _blank
26+
```
1327

14-
## Key
1528

16-
- Circle - End user
17-
- Diamond - Third parties other than AWS and GitHub
18-
- Ellipse - AKS
19-
- Rectangle - AWS
20-
- Rounded rectangle - GitHub
29+
## Web visit
30+
```mermaid
31+
flowchart TD
32+
33+
EndUser((End user))
34+
35+
EndUser --> |Browse to https://teaching-vacancies.service.gov.uk|Route53[Route53]
36+
Route53 --> |Alias A record| Cloudfront
37+
Cloudfront --> |Record Standard Logs|S3cloudfrontlogs[S3 bucket: `cloudfrontlogs`]
38+
Cloudfront --> |Cache static assets|SiteOnline{Azure site online?}
39+
Cloudfront --> ACMCertificate[AWS-issued certificate]
40+
SiteOnline -->|No| OfflineURI[Serve Offline pages]
41+
OfflineURI -->|https://tvs-offline.s3.amazonaws.com/school-jobs-offline/index.html|S3offline[S3 bucket `tvs-offline`]
42+
SiteOnline -->|Yes| Azure[CDN to Azure web app]
43+
Azure -->|https://teaching-vacancies-production.teacherservices.cloud|AzureWeb(Azure web app)
44+
45+
click OfflineURI "https://tvs-offline.s3.amazonaws.com/school-jobs-offline/index.html" "Offline static site" _blank
46+
click AzureWeb "https://teaching-vacancies-production.teacherservices.cloud" "Azure web" _blank
47+
```
2148

2249
## Mermaid.js
2350

24-
Diagram generated with [Mermaid.js](https://mermaid-js.github.io/mermaid/#/) and [Mermaid.ink](https://mermaid.ink/)
51+
Diagrams generated with [Mermaid.js](https://mermaid-js.github.io/mermaid/#/)
2552

2653
Preview with [Markdown Preview Mermaid Support](https://marketplace.visualstudio.com/items?itemName=bierner.markdown-mermaid)
2754

28-
From [diagrams.net](https://www.diagrams.net/blog/mermaid-diagrams)
29-
```
30-
((circle))
31-
{diamond}
32-
(-ellipse-)
33-
[rectangle]
34-
(rounded rectangle)
35-
```

0 commit comments

Comments
 (0)