Architecture
C4 Diagramming Model
97 ways to sidestep UML
Just use a whiteboard
-
If we have 2 different maps, they will represent the same information, irrespective of different color coding, legends, language used etc.
-
CONTAINER - individual unit
-
Mobile App
-
web app
-
a script
-
COMPONENTS - runs inside containers
-
Structure - drill down into details
-
Diagrams are Maps
-
CONTEXT - Interaction between people and software system
-
Containers, Component, Classes - interactions between various pieces of system
-
Use single direcctional arrows only
-
Read your diagrams outloud
-
Different color codes for external and internal systems
-
Solid lines for Synchronous calls
-
Dashed lines for Asynchronous calls
Make diagrams stand on their own
2.1 Basic informations:
Projekt Cambridge zajmuje się speedcamami (Raporty na podstawie których tworzone są kamery) Cambridge Mqtt to popdrojekt który ma zadanie dostarczać w czasie rzeczywistym informacje o kamerach Cambridge Mqtt jest oparty o technologie MQTT oraz morton cody
Ogólnie w 2 zdaniach co ma robić - tj samochody będa w stanie odbierać informacje o
2.2 Mqtt
Czym jest mqtt – 2 zdania że to kolejka I że można sie subskrybować na dany topic aby odbierać informacje o tym co tam jest I o zmianach.
Odnośnik do oficjalnuych dokumentów
2.3 Morton code
Czym są morton cody - dzielą świat na kwadraty w zależności od poziomu
Czym są jak działają, jakie biblioteki wykorzystujemy
AWS Architecture Diagrams
@startuml 'AWS stuff here '================================ !includeurl <aws/common.puml> !includeurl <aws/SDKs/Java/Java.puml> !includeurl <aws/SDKs/Nodejs/Nodejs.puml> !includeurl <aws/General/users/users.puml> !includeurl <aws/General/client/client.puml> !includeurl <aws/General/AWScloud/AWScloud.puml> !includeurl <aws/General/mobileclient/mobileclient.puml> !includeurl <aws/Database/AmazonRDS/AmazonRDS.puml> !includeurl <aws/Database/AmazonRDS/DBinstance/DBinstance.puml> !includeurl <aws/Database/AmazonRDS/MySQLDBinstance/MySQLDBinstance.puml> !includeurl <aws/Compute/AWSElasticBeanstalk/AWSElasticBeanstalk.puml> !includeurl <aws/Compute/AWSElasticBeanstalk/deployment/deployment.puml> !includeurl <aws/Compute/AWSElasticBeanstalk/application/application.puml> !includeurl <aws/Compute/ElasticLoadBalancing/ApplicationLoadBalancer/ApplicationLoadBalancer.puml> !includeurl <aws/Compute/AWSLambda/AWSLambda.puml> !includeurl <aws/Compute/AWSLambda/LambdaFunction/LambdaFunction.puml> !includeurl <aws/Storage/AmazonS3/AmazonS3.puml> !includeurl <aws/Storage/AmazonS3/bucket/bucket.puml> !includeurl <aws/Storage/AmazonGlacier/AmazonGlacier.puml> !includeurl <aws/Storage/AmazonGlacier/archive/archive.puml> !includeurl <aws/SecurityIdentityCompliance/AWSIAM/AWSIAM.puml> !includeurl <aws/SecurityIdentityCompliance/IAM/permissions/permissions.puml> !includeurl <aws/SecurityIdentityCompliance/IAM/role/role.puml> !includeurl <aws/MobileServices/AmazonCognito/AmazonCognito.puml> !includeurl <aws/NetworkingContentDelivery/AmazonRoute53/AmazonRoute53.puml> !includeurl <aws/SecurityIdentityCompliance/AWSIAM/AWSIAM.puml> !includeurl <aws/Analytics/AmazonES/AmazonES.puml> !includeurl <aws/ManagementTools/AmazonCloudWatch/AmazonCloudWatch.puml> 'Elastic stuff here '================================ !define ELASTIC_PUML elastic !include <elastic/apm/apm.puml> !include <elastic/app_search/app_search.puml> !include <elastic/beats/beats.puml> !include <elastic/cloud/cloud.puml> !include <elastic/cloud_in_kubernetes/cloud_in_kubernetes.puml> !include <elastic/code_search/code_search.puml> !include <elastic/ece/ece.puml> !include <elastic/eck/eck.puml> !include <elastic/elasticsearch/elasticsearch.puml> !include <elastic/endpoint/endpoint.puml> !include <elastic/enterprise_search/enterprise_search.puml> !include <elastic/kibana/kibana.puml> !include <elastic/logging/logging.puml> !include <elastic/logstash/logstash.puml> !include <elastic/maps/maps.puml> !include <elastic/metrics/metrics.puml> !include <elastic/siem/siem.puml> !include <elastic/site_search/site_search.puml> !include <elastic/stack/stack.puml> !include <elastic/uptime/uptime.puml> 'change color of selected background shape https://plantuml.com/deployment-diagram skinparam actorBackgroundColor White skinparam agentBackgroundColor White skinparam artifactBackgroundColor White skinparam boundaryBackgroundColor White skinparam cardBackgroundColor White skinparam cloudBackgroundColor White skinparam componentBackgroundColor White skinparam controlBackgroundColor White skinparam databaseBackgroundColor White skinparam entityBackgroundColor White skinparam fileBackgroundColor White skinparam folderBackgroundColor White skinparam frameBackgroundColor White skinparam interfaceBackgroundColor White skinparam nodeBackgroundColor White skinparam packageBackgroundColor White skinparam queueBackgroundColor White skinparam stackBackgroundColor White skinparam rectangleBackgroundColor White skinparam storageBackgroundColor White skinparam usecaseBackgroundColor White 'To change background color to elastic green 'skinparam componentBackgroundColor 00BFB3 AWSCLOUD(aws) { AMAZONS3(s3_bucket,"Logs uploaded to here") package Elastic { 'add "node", "component", "agent" etc... to change background shape per https://plantuml.com/deployment-diagram 'default is agent ELASTICSEARCH(ElasticSearch, "Search and Analyze",database) LOGSTASH(Logstash, "Parse and Transform",node) KIBANA(Kibana, "Visualize",agent) } s3_bucket -down-> Logstash: Raw logs Logstash -right-> ElasticSearch: Transformed Data ElasticSearch -right-> Kibana: Data to View } footer %filename() rendered with PlantUML version %version()\nThe Hitchhiker’s Guide to PlantUML @enduml