Browse Source
* Add context and architecture diagrams * lint * Update diagrams * Add source for diagrams, link context diagrampull/3005/head
4 changed files with 114 additions and 0 deletions
@ -0,0 +1,111 @@ |
|||||||
|
--- |
||||||
|
title: PlanUML source for diagrams |
||||||
|
--- |
||||||
|
|
||||||
|
{% plantuml %} |
||||||
|
!define AWSPuml https://raw.githubusercontent.com/awslabs/aws-icons-for-plantuml/v19.0/dist |
||||||
|
!include AWSPuml/AWSCommon.puml |
||||||
|
!include AWSPuml/Groups/VPC.puml |
||||||
|
!include AWSPuml/Groups/GenericOrange.puml |
||||||
|
!include AWSPuml/Storage/SimpleStorageService.puml |
||||||
|
!include AWSPuml/AWSSimplified.puml |
||||||
|
!include AWSPuml/Groups/PublicSubnet.puml |
||||||
|
!include AWSPuml/Groups/PrivateSubnet.puml |
||||||
|
!include AWSPuml/Containers/ElasticContainerService.puml |
||||||
|
!include AWSPuml/Database/RDS.puml |
||||||
|
!include AWSPuml/Database/ElastiCacheElastiCacheforRedis.puml |
||||||
|
!include AWSPuml/NetworkingContentDelivery/CloudFront.puml |
||||||
|
!include AWSPuml/NetworkingContentDelivery/ElasticLoadBalancingApplicationLoadBalancer.puml |
||||||
|
!include AWSPuml/Containers/ElasticContainerRegistry.puml |
||||||
|
!include AWSPuml/Groups/AWSAccount.puml |
||||||
|
|
||||||
|
' External Systems |
||||||
|
actor User |
||||||
|
|
||||||
|
' Main System: Meta Environment |
||||||
|
AWSAccountGroup(meta, "Meta Environment") { |
||||||
|
ElasticContainerRegistry(ecr, "ECR (Elastic Container Registry) - Shared between environments", "ECR (Elastic Container Registry)","") |
||||||
|
} |
||||||
|
|
||||||
|
VPCGroup(vpc) { |
||||||
|
PublicSubnetGroup(public_subnet, "Public subnet") { |
||||||
|
ElasticLoadBalancingApplicationLoadBalancer(loadBalancer, "Load Balancer", "Load Balancer", "") |
||||||
|
} |
||||||
|
PrivateSubnetGroup(private_subnet, "Private subnet") { |
||||||
|
GenericOrangeGroup(fargateTasks, "ECS Fargate Tasks") { |
||||||
|
ElasticContainerService(App, "App", "Container", "") |
||||||
|
ElasticContainerService(Sidekiq, "Sidekiq", "Container", "") |
||||||
|
ElasticContainerService(AdHocTasks, "Ad-hoc Tasks", "Container", "") |
||||||
|
} |
||||||
|
|
||||||
|
RDS(rdsDatabase, "RDS", "RDS","") |
||||||
|
ElastiCacheElastiCacheforRedis(redis, "ElastiCache for Redis", "Redis","") |
||||||
|
|
||||||
|
} |
||||||
|
} |
||||||
|
' Networking |
||||||
|
|
||||||
|
SimpleStorageService(bulkUpload, "Bulk Upload", "Bulk upload bucket", "") |
||||||
|
SimpleStorageService(cdsExport, "CDS Export", "CDS export bucket", "") |
||||||
|
SimpleStorageService(collectionResources, "Collection resources", "Collection resources bucket", "") |
||||||
|
CloudFront(cloudFront, "CloudFront", "CloudFront", "") |
||||||
|
|
||||||
|
' Relationships |
||||||
|
User --> [cloudFront] : Interacts with |
||||||
|
[loadBalancer] --> [fargateTasks] : Routes traffic to |
||||||
|
|
||||||
|
[ecr] --> [fargateTasks] : Pulls Docker images from |
||||||
|
[cloudFront] --> [loadBalancer] : Routes traffic to |
||||||
|
|
||||||
|
[fargateTasks] --> [bulkUpload] : Uploads data to |
||||||
|
[fargateTasks] --> [cdsExport] : Exports data to |
||||||
|
[fargateTasks] --> [collectionResources] : Reads/writes data to |
||||||
|
[fargateTasks] --> [rdsDatabase] : Writes data to |
||||||
|
[fargateTasks] --> [redis] : Caches data in |
||||||
|
|
||||||
|
{% endplantuml %} |
||||||
|
|
||||||
|
--- |
||||||
|
|
||||||
|
{% plantuml %} |
||||||
|
!define AWSPuml https://raw.githubusercontent.com/awslabs/aws-icons-for-plantuml/v19.0/dist |
||||||
|
!include AWSPuml/AWSCommon.puml |
||||||
|
!include AWSPuml/Storage/SimpleStorageService.puml |
||||||
|
!include AWSPuml/Groups/GenericOrange.puml |
||||||
|
!define SPRITESURL https://raw.githubusercontent.com/plantuml-stdlib/gilbarbara-plantuml-sprites/v1.1/sprites |
||||||
|
!define IMAGESSURL https://raw.githubusercontent.com/plantuml-stdlib/gilbarbara-plantuml-sprites/v1.1/pngs |
||||||
|
!includeurl SPRITESURL/sentry.puml |
||||||
|
!includeurl SPRITESURL/google-analytics.puml |
||||||
|
!include AWSPuml/Containers/ElasticContainerService.puml |
||||||
|
!include AWSPuml/AWSSimplified.puml |
||||||
|
|
||||||
|
skinparam actorPadding 15 |
||||||
|
skinparam packagePadding 20 |
||||||
|
skinparam componentPadding 20 |
||||||
|
skinparam rectanglePadding 20 |
||||||
|
|
||||||
|
rectangle "<img:IMAGESSURL/google-analytics.png>" as ga |
||||||
|
rectangle "<img:IMAGESSURL/sentry.png>" as sentry |
||||||
|
rectangle "GOV.UK Notify" as notify |
||||||
|
rectangle "OS Places API" as osapi |
||||||
|
rectangle "CDS Ingest Pipeline" as cds |
||||||
|
|
||||||
|
actor "End Users" as Users |
||||||
|
actor "Support Users" as SupportUsers |
||||||
|
|
||||||
|
' Main System: Application Package |
||||||
|
package "Application" { |
||||||
|
ElasticContainerService(App, "App", "Container", "") |
||||||
|
SimpleStorageService(cdsExport, "CDS Export", "CDS export bucket", "") |
||||||
|
} |
||||||
|
|
||||||
|
' Relationships and interactions |
||||||
|
Users --> [App] : Provides data, downloads CSVs |
||||||
|
SupportUsers --> [App] : Support tasks, file downloads |
||||||
|
[App] --> [notify] : Email notifications |
||||||
|
[App] --> [sentry] : Alerts |
||||||
|
[App] --> [osapi] : Address lookup |
||||||
|
[cds] --> [cdsExport] : Downloads data for processing |
||||||
|
[App] --> [ga] : Sends analytics data to Google Analytics |
||||||
|
|
||||||
|
{% endplantuml %} |
After Width: | Height: | Size: 286 KiB |
After Width: | Height: | Size: 112 KiB |
Loading…
Reference in new issue