diff --git a/dev/architecture/Rеverse proxy.md b/dev/architecture/Rеverse proxy.md new file mode 100644 index 00000000..e6a0ca63 --- /dev/null +++ b/dev/architecture/Rеverse proxy.md @@ -0,0 +1,34 @@ +--- +aliases: +tags: + - maturity/🌱 +date: + - - 2024-04-13 +zero-link: + - "[[../../meta/zero/00 Архитектура ИС|00 Архитектура ИС]]" +parents: + - "[[../garden/ru/dev/architecture/Фронтенд|Фронтенд]]" +linked: +--- +Rеverse proxy позволяет снять часть задач с [[Бэкенд|бэкенда]]. + +Rеverse proxy решает следующие проблемы: +- **Организация https шифрования.** Клиенты подключаются к Reverse proxy по https, а прокси подключается к бэкенду по http. +- Буферизация запросов и ответов. +- Валидация http +- Борьба с медленными клиентами. Клиенты с плохим интернет соединением могут долго удерживать канал. Reverse proxy с бэкендом быстро обмениваются данными, Reverse Proxy буферизирует ответ с бэкенда и может довольно долго удерживать соединение с клиентом скармливая ему ответ. +*** +## Мета информация +**Область**:: [[../../meta/zero/00 Архитектура ИС|00 Архитектура ИС]] +**Родитель**:: [[Фронтенд]] +**Источник**:: +**Автор**:: +**Создана**:: +### Дополнительные материалы +- +### Дочерние заметки +```dataview +LIST +FROM [[]] +WHERE contains(Родитель, this.file.link) or contains(parents, this.file.link) +``` \ No newline at end of file diff --git a/dev/architecture/Бэкенд.md b/dev/architecture/Бэкенд.md new file mode 100644 index 00000000..f72198fd --- /dev/null +++ b/dev/architecture/Бэкенд.md @@ -0,0 +1,35 @@ +--- +aliases: + - бэкенде + - backend + - бэкенда + - бэкенду +tags: + - maturity/🌱 +date: + - - 2024-04-13 +zero-link: + - "[[../../meta/zero/00 Архитектура ИС|00 Архитектура ИС]]" +parents: +linked: +--- +Бэкенд – один из самых больших бездельников в веб-архитектуре. У него есть всего 2 задачи: +- Сетевой ввод-вывод. Обычно сводится к общению с [Rеverse proxy](Rеverse%20proxy.md) – прием http-запроса и ответ на него, и со всевозможными сервисами, которые хранят данные – это могут быть БД, очереди, memcaсhed и т.п. +- Склеивание строк – сериализовать данные в JSON, сформировать шаблон на основе html, посчитать sh1 или md5? выполнить сжатие данных. + +А что такое бизнес-логика в бэкенде? Это проверки наподобие "если значение переменных больше 3-х, делай это", "если пользователь авторизован, покажи одно, если не авторизован – покажи другое". Бывают, конечно, отдельные задачи, например, по изменению размера картинки, преобразования видео, но чаще всего такие задачи решаются вне бэкенда с использованием очередей, воркеров и т.д. +*** +## Мета информация +**Область**:: [[../../meta/zero/00 Архитектура ИС|00 Архитектура ИС]] +**Родитель**:: +**Источник**:: +**Автор**:: +**Создана**:: [[2024-04-13]] +### Дополнительные материалы +- [[../../../../_inbox/Бэкенд большую часть времени ждет|Бэкенд большую часть времени ждет]] +### Дочерние заметки +```dataview +LIST +FROM [[]] +WHERE contains(Родитель, this.file.link) or contains(parents, this.file.link) +``` \ No newline at end of file diff --git a/dev/architecture/Трёхзвенная структура.md b/dev/architecture/Трёхзвенная структура.md new file mode 100644 index 00000000..69bc27e7 --- /dev/null +++ b/dev/architecture/Трёхзвенная структура.md @@ -0,0 +1,34 @@ +--- +aliases: + - трехзвенная структура +tags: + - maturity/🌱 +date: + - - 2024-05-23 +zero-link: + - "[[../../meta/zero/00 Архитектура ИС|00 Архитектура ИС]]" +parents: +linked: +--- +Мы выделяем некие звенья в обработке наших запросов, и каждое звено специализируется на обработке или выполнении определенного класса задач. + +![](Pasted%20image%2020240523133746.png) + +- [Фронтенд](Фронтенд.md). предназначен для быстрой обработки легких данных, как правило, статики. Эти запросы обрабатываются тут и не проходят на массивный, тяжелый бэкенд. Для фронтенда используются такие легковесные сервера, как [nginx](00%20Nginx.md). В разработке подобных серверов огромное внимание уделяется тому, какое количество ресурсов тратится на обработку одного запроса. +- [Бэкенд](Бэкенд.md), как правило, это тяжелые приложения, в которых происходят вычисления, зашита бизнес-логика, и обрабатывать статические запросы бэкендом попросту неэффективно. +- Следующий слой – это хранение данных, в простейшем варианте – [база данных](00%20Базы%20Данных.md). +*** +## Мета информация +**Область**:: [[../../meta/zero/00 Архитектура ИС|00 Архитектура ИС]] +**Родитель**:: +**Источник**:: +**Автор**:: +**Создана**:: [[2024-05-23]] +### Дополнительные материалы +- +### Дочерние заметки +```dataview +LIST +FROM [[]] +WHERE contains(Родитель, this.file.link) or contains(parents, this.file.link) +``` \ No newline at end of file diff --git a/dev/architecture/Фронтенд.md b/dev/architecture/Фронтенд.md new file mode 100644 index 00000000..2161a773 --- /dev/null +++ b/dev/architecture/Фронтенд.md @@ -0,0 +1,19 @@ +--- +aliases: + - фронтенд +tags: + - maturity/🌱 +date: + - - 2024-05-23 +zero-link: + - "[[../../meta/zero/00 Архитектура ИС|00 Архитектура ИС]]" +parents: +linked: +--- +- [[Rеverse proxy]] + +Для чего нужен фронтенд +- Отдача статического контента +- Буферизация запросов +- Масштабирование бэкендов +- Обслуживание медленных клиентов. \ No newline at end of file diff --git a/meta/files/images/Pasted image 20240413205842.png b/meta/files/images/Pasted image 20240413205842.png new file mode 100644 index 00000000..74824889 Binary files /dev/null and b/meta/files/images/Pasted image 20240413205842.png differ diff --git a/meta/zero/00 Архитектура ИС.md b/meta/zero/00 Архитектура ИС.md index 10f832da..b2f4b906 100644 --- a/meta/zero/00 Архитектура ИС.md +++ b/meta/zero/00 Архитектура ИС.md @@ -5,8 +5,8 @@ parents: - "[[00 Разработка]]" title: Архитектура ПО --- +- [Трёхзвенная структура](../../dev/architecture/Трёхзвенная%20структура.md) - [Монолитная архитектура](Монолитная%20архитектура.md) - [Микросервисная архитектура](Микросервисная%20архитектура.md) - [Service Oreinted Architecture](Service%20Oreinted%20Architecture.md) -- [Трёхзвенная структура](Трёхзвенная%20структура.md) - [[00 HighLoad|HighLoad]] \ No newline at end of file