From c9ebc8e5395fdbabdac11f36277a85f650f08832 Mon Sep 17 00:00:00 2001 From: David Bernard Date: Tue, 9 Jan 2024 11:11:26 +0100 Subject: [PATCH] =?UTF-8?q?=F0=9F=93=9D=20add=20architecture=20overview=20?= =?UTF-8?q?in=20README?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 20 +- ...16.04.47-cdviz-architecture.excalidraw.svg | 1208 +++++++++++++++++ doc/images/cdevents.svg | 33 + 3 files changed, 1260 insertions(+), 1 deletion(-) create mode 100644 doc/images/Drawing 2023-12-27 16.04.47-cdviz-architecture.excalidraw.svg create mode 100644 doc/images/cdevents.svg diff --git a/README.md b/README.md index 906dff4..f2da1d4 100644 --- a/README.md +++ b/README.md @@ -3,9 +3,27 @@ keywords: `cdevents`, `sdlc` status: wip -A set of components to provide a view of which version of my service is deployed and where. +A set of components to provide a view of which version of services are deployed and which environment, what test ran,... - Collect events ([cdevents]) related to the deployment of artifacts (service, ...) - Dashboard to query and visualize events and states over time +## Architecture Overview + +[![](doc/images/Drawing%202023-12-27%2016.04.47-cdviz-architecture.excalidraw.svg)](doc/images/Drawing%202023-12-27%2016.04.47-cdviz-architecture.excalidraw.svg) + +**Why dashboard tool (like Grafana) have a read-only access to the DB (postgresql), and go through an API (micro)service (like cdviz-collector)?** + +- access to the data is the value, not the service +- allow dashboards to use the full query power of SQL to query data, and to plug any analytics tools +- allow Data Ops to split the DB with read-only replicas if needed,... +- no need to create and provide a new custom (and always incomplete, frustrated) query language + - no need to maintain a custom query language on the service side + - no need to maintain a connector (`datasource`) for callers (analytics tools,...) + - no need to re-invent (or to "encapsulate") what DB managers do better +- enforce the read-only view of the DB to be like a public API + - require to configure access control + - require to document and expose table structure (like an API) and to provide samples of queries, maybe function,... +- service can provide helpers endpoint for some complex query or additional "view" + [cdevents]: diff --git a/doc/images/Drawing 2023-12-27 16.04.47-cdviz-architecture.excalidraw.svg b/doc/images/Drawing 2023-12-27 16.04.47-cdviz-architecture.excalidraw.svg new file mode 100644 index 0000000..7167a00 --- /dev/null +++ b/doc/images/Drawing 2023-12-27 16.04.47-cdviz-architecture.excalidraw.svg @@ -0,0 +1,1208 @@ + + + + + + + + + + + + + + + + cdviz-collector + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Docker + + + + + + cdviz-watcher + + + + + + cd-events (native) providers + (testkube, tekton, spinnaker, kpten, harbor, ... + + + + + + + + + + + + + + + + + + + + + + + + + + S3 Bucket + + + non-native cd-events provider + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + HTTP + (direct ?) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Slack + + + + + + + + + + + + + + + + + + GitHub + + + + + + + + + + + + + + + + + + + ECR + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + K8S events + + + + + + Argo Events + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Grafana App + (dashboards, datasources, ...) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + states, locations of + artifacts + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + svc + bora metrics + + + + + + + + + + + + + + + + + + bora metrics + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + folder of json files + (demo & test) + + + + + + + cdviz-demo- + generator + + + + + + + + + + + + + + + + + + cdevents + examples + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + BUS + (NATS, Kafka, SSE, ...) + + + + + + + + + + + + + + + + + + json(cdevents) + + \ No newline at end of file diff --git a/doc/images/cdevents.svg b/doc/images/cdevents.svg new file mode 100644 index 0000000..efe6f70 --- /dev/null +++ b/doc/images/cdevents.svg @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file