|
1 | 1 | # Infrastructure diagrams |
2 | | -## [Outdated] Diagrams are not visible anymore. Need to regenerate them. |
3 | 2 |
|
4 | 3 | ## CI/CD deployment pipeline |
5 | 4 |
|
6 | 5 | On Pull Request to `main` branch, GitHub Actions `deploy.yml` workflow launches: |
7 | 6 |
|
8 | | -[](https://mermaid-js.github.io/mermaid-live-editor/#/edit/eyJjb2RlIjoiZ3JhcGggVERcblxuRGV2ZWxvcGVyKChEZXZlbG9wZXIpKVxuXG5EZXZlbG9wZXIgLS0-IHxQUiB0byBtYXN0ZXIgYnJhbmNoIG9uIGh0dHBzOi8vZ2l0aHViLmNvbS9ERkUtRGlnaXRhbC90ZWFjaGluZy12YWNhbmNpZXN8R2l0SHViTWFzdGVyKEdpdEh1YiBtYXN0ZXIgYnJhbmNoKVxuR2l0SHViTWFzdGVyIC0tPiB8U3RhcnQgR2l0SHViIEFjdGlvbnMgV29ya2Zsb3cgYW5kIFVidW50dSBWaXJ0dWFsIEVudmlyb25tZW50fCBHaXRIdWJWaXJ0dWFsRW52KEdpdEh1YiB2aXJ0dWFsIGVudmlyb25tZW50KVxuR2l0SHViVmlydHVhbEVudiAtLT4gfERlY29kZSBBV1Mgc2VjcmV0czxiciAvPkNoZWNrIGZvciB3ZWxsLWZvcm1lZCBZQU1MfCBBV1NTU01QYXJhbWV0ZXJTdG9yZVtBV1MgU1NNIFBhcmFtZXRlciBTdG9yZV1cbkdpdEh1YlZpcnR1YWxFbnYgLS0-IHxJbml0aWFsaXNlIFRlcnJhZm9ybSB8R2l0SHViVmlydHVhbEVudlBsdXNUZXJyYWZvcm0oVGVycmFmb3JtIENMSSBvbiBHaXRIdWIgdmlydHVhbCBlbnZpcm9ubWVudClcbkdpdEh1YlZpcnR1YWxFbnYgLS0-IHxEZWNvZGUgR2l0SHViIFNlY3JldHN8R2l0SHViU2VjcmV0cyhHaXRIdWIgU2VjcmV0cylcbkdpdEh1YlZpcnR1YWxFbnYgLS0-IHxCdWlsZCBEb2NrZXIgaW1hZ2U8YnIgLz5QdXNoIHRvIERvY2tlckh1YnwgRG9ja2VySHViXG5HaXRIdWJWaXJ0dWFsRW52UGx1c1RlcnJhZm9ybSAtLT4gfERlY29kZSBBV1Mgc2VjcmV0czxiciAvPkNyZWF0ZSBlbnYgdmFyc3wgQVdTU1NNUGFyYW1ldGVyU3RvcmVbQVdTIFNTTSBQYXJhbWV0ZXIgU3RvcmVdXG5HaXRIdWJWaXJ0dWFsRW52UGx1c1RlcnJhZm9ybSAtLT4gfENyZWF0ZS9VcGRhdGV8IEFXU0Nsb3VkZnJvbnRbQVdTIENsb3VkZnJvbnQgRGlzdHJpYnV0aW9uXVxuR2l0SHViVmlydHVhbEVudlBsdXNUZXJyYWZvcm0gLS0-IHxDcmVhdGUvVXBkYXRlfCBTdGF0dXNjYWtle1N0YXR1c2Nha2UgcnVsZX1cbkdpdEh1YlZpcnR1YWxFbnZQbHVzVGVycmFmb3JtIC0tPiB8Q3JlYXRlL1VwZGF0ZXwgR292VUtQYWFTU2VydmljZXMoLUdvdi5VSyBQYWFTIHNlcnZpY2VzIDxiciAvPlBvc3RncmVTUUw8YnIgLz5SZWRpczxiciAvPlBhcGVydHJhaWwtKVxuR2l0SHViVmlydHVhbEVudlBsdXNUZXJyYWZvcm0gLS0-IHxDcmVhdGUvVXBkYXRlfCBHb3ZVS1BhYVNBcHBzKC1Hb3YuVUsgUGFhUyBhcHBzIDxiciAvPmFuZCB3ZWIgcm91dGUtKVxuRG9ja2VySHViIC0tPiB8UHVsbCBEb2NrZXIgdGFnZ2VkIGltYWdlfCBHb3ZVS1BhYVNBcHBzIiwibWVybWFpZCI6e30sInVwZGF0ZUVkaXRvciI6ZmFsc2V9) |
9 | | - |
10 | | -## Web visit |
11 | | - |
12 | | -[](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 | +``` |
13 | 27 |
|
14 | | -## Key |
15 | 28 |
|
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 | +``` |
21 | 48 |
|
22 | 49 | ## Mermaid.js |
23 | 50 |
|
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/#/) |
25 | 52 |
|
26 | 53 | Preview with [Markdown Preview Mermaid Support](https://marketplace.visualstudio.com/items?itemName=bierner.markdown-mermaid) |
27 | 54 |
|
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