Skip to content

Commit 77ea973

Browse files
committed
✍️ Initial draft of tagging standards
This is a work in progress initial draft of the tagging standards for AWS, based on https://github.com/LBHackney-IT/aws-tags-lbh and https://docs.google.com/document/d/1iWsgVYWXAbZQZDYP4PJ-Gv74rFRQUSdDC_XHHSiliXk/edit?pli=1&tab=t.0.
1 parent 4f42b3a commit 77ea973

File tree

6 files changed

+66
-0
lines changed

6 files changed

+66
-0
lines changed

docs/technical-standards/Readme.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
# Technical standards
2+
3+
These technical standards are the baseline operating requirements for systems and services in Hackney.
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
{
2+
"collapsible": false,
3+
"collapsed": false,
4+
}
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
---
2+
sidebar_position: 1
3+
---
4+
# Hosting standards
5+
6+
Hosting standards apply to everything we host at Hackney, whether it's built in-house, developed externally, or an off-the-shelf product. If we're hosting it in one of our cloud platforms, e.g. AWS, these standards apply
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
# Tagging
2+
3+
We will tag all AWS objects, so we know they have a purpose and have a defined owner to manage cost, maintenance and support.
4+
5+
## What must be in place
6+
7+
1. All objects in our cloud hosting providers (primarily AWS) must be tagged in line with the requirements set out below.
8+
9+
## Monitoring
10+
11+
The user creating the object will be notified when an object is untagged with increasing urgency.
12+
13+
## Resolution/Escalation if the baseline isn't met
14+
15+
1. Creation of untagged objects will be prevented by technical controls where possible.
16+
2. Newly created untagged objects will be forcefully and automatically shutdown/disabled if they remain untagged for 7 calendar days.
17+
3. Existing untagged objects will not be editable until the mandatory tags have been added.
18+
19+
## Tags to use
20+
21+
To ensure we can consistently search for, and report on, the tags we use, you should use the following tags. In all cases, only use acronyms if you’re confident that someone from another part of the council would understand them. If in doubt, avoid acronyms and use the full term.
22+
23+
### Mandatory tags
24+
25+
- `Application`: The full name of the application or service. This should match the name used in the Service Catalogue, e.g. `Repairs Hub`, `Common Fate`.
26+
- `Team`: In the form `<team-name>: <team-email>`. This is the team responsible for the operation of the service.
27+
- `Environment`: The name of the environment, must be one of `dev`, `stg`, `prod` or `mgmt`[^environment-tags-source].
28+
29+
### Optional tags
30+
31+
- `AutomationBuildUrl`: URL of the automation build, must be a valid URL.
32+
- `AutomationTool`: The tool used for Infrastructure as Code, e.g. `Terraform` or `Serverless Framework`.
33+
- `Confidentiality`: Data confidentiality of the infrastructure. Only applicable to infrastructure which holds data, e.g. EC2, RDS, EBS, DynamoDB, Glue, and S3. Must be one of `Internal`, `Restricted`, or `Public`[^confidentiality-tags-source].
34+
- `OOOShutdown`: Whether to shut an EC2 instance down out of hours. Must be `true` or `false`.
35+
36+
### FIXME(remove) Tags we're no longer using
37+
38+
- Department (maybe useful, it's a fixed list)
39+
- BackupPolicy (should be inferred from environment, as they seem to match)
40+
- Phase
41+
- Stack
42+
- Patch Group
43+
- Project
44+
45+
[^confidentiality-tags-source]: https://github.com/LBHackney-IT/aws-tags-lbh/blob/main/variables.tf#L83
46+
[^environment-tags-source]: https://github.com/LBHackney-IT/aws-tags-lbh/blob/main/variables.tf#L150

docusaurus.config.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,12 @@ const config = {
8686
position: 'left',
8787
label: 'Ways of working',
8888
},
89+
{
90+
type: 'docSidebar',
91+
sidebarId: 'technicalStandards',
92+
position: 'left',
93+
label: 'Technical standards',
94+
},
8995
{
9096
type: 'docSidebar',
9197
sidebarId: 'architecturePillars',

sidebars.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ const sidebars = {
1919
frontendDevelopment: [{type: 'autogenerated', dirName: 'frontend-development'}],
2020
apiSpecifications: [{type: 'autogenerated', dirName: 'api-specifications'}],
2121
productPlaybook: [{type: 'autogenerated', dirName: 'Product-Playbook'}],
22+
technicalStandards: [{type: 'autogenerated', dirName: 'technical-standards'}],
2223
};
2324

2425
export default sidebars;

0 commit comments

Comments
 (0)