diff --git a/README.md b/README.md index 27bcfd6..5e75609 100644 --- a/README.md +++ b/README.md @@ -1,16 +1,23 @@ # Table of Contents -1. [Логика доступа к контенту ](#Логика-доступа-к-контенту) -1. [Логика деплоя в куб по коммиту ](#Логика-деплоя-в-куб-по-коммиту) +1. [Логика доступа к контенту ](#логика-доступа-к-контенту) +1. [Логика деплоя в куб по коммиту ](#логика-деплоя-в-куб-по-коммиту) +1. [Общая схема отдельного приложения](#логика-деплоя-в-куб-по-коммиту) +1. [Логика работы мониторинга](#логика-работы-мониторинга) Вообще суть такова: + Мы берём фласк, кидаем в контейнер, далее контейнер педалим в кубернетес в деплоймент соответствующий ветке (мастер/дев) с 2-3 подами на деплоймент, всё это должен уметь делать CI/CD +Далее возможно добавление в схему волта ---- ## Логика доступа к контенту +[наверх](#table-of-contents) + +Попадаем на сервер, nginx отправляет в куб. Там ингресс закидывает на деплоймент соответственно доменному имени. Из деплоймента отвечают свободные поды. Поды ходят в постгрес и минио когда надо. ```mermaid @@ -33,12 +40,12 @@ stateDiagram-v2 state DeploymentMaster { - state "pod" as p1 - state "pod" as p2 + state "app" as p1 + state "app" as p2 } state DeploymentDev { - state "pod" as p1d - state "pod" as p2d + state "app" as p1d + state "app" as p2d } } @@ -63,8 +70,7 @@ stateDiagram-v2 p2 --> all_join p1d --> all_join p2d --> all_join - - p1 --> all_join + all_join --> Postgres : данные с БД all_join --> Minio : статика @@ -74,17 +80,100 @@ stateDiagram-v2 ---- ## Логика деплоя в куб по коммиту - -TBA +[наверх](#table-of-contents) ```mermaid stateDiagram-v2 + + committer --> Git + + Git --> Drone + + state "pipeline-${branch}" as pm { - Git - committer - Docker - Kube - Drone + Runner --> Docker : create ${branch} image with new files + + + Docker --> Kube : ${branch} deploy with new image + } + + + state branch_fork <> + Drone --> branch_fork : ветка репо + + branch_fork --> pm + +``` + +---- + +## Общая схема отдельного приложения +[наверх](#table-of-contents) + + +```mermaid +stateDiagram-v2 + + + User + + state inet <> + + User --> inet : дайте борду, запишу свои посты, картинки итд + + state Flask { + + hmtx : htmx templates + static_files : flask static + + } + + inet --> Flask + + Flask --> Postgres : посты + Flask --> Minio : картинки и шебм + +``` + +---- + +## Логика работы мониторинга +[наверх](#table-of-contents) + +```mermaid +stateDiagram-v2 + + App + + state enter_monitoring <> + + App --> enter_monitoring + enter_monitoring --> Prometheus : metrics + + Prometheus --> Grafana + + enter_monitoring --> Loki : logs + Loki --> Grafana + + state admini { + User : Наш слон + } + + Prometheus --> Alertmanager + Loki --> Alertmanager + + + state alerts_join <> + state dash_join <> + + Alertmanager --> alerts_join + Grafana --> alerts_join + + alerts_join --> User : алерты + + + Grafana --> dash_join + dash_join --> User : дашборды ``` \ No newline at end of file