homework 11.4: complete homework

This commit is contained in:
2022-10-26 09:45:48 +07:00
parent 61a95ffd50
commit 5dfc2e7428
2 changed files with 34 additions and 0 deletions

View File

@@ -56,3 +56,4 @@
* [11.1. Введение в микросервисы](/src/homework/11-microservices/11.1)
* [11.2. Микросервисы: принципы](/src/homework/11-microservices/11.2)
* [11.3. Микросервисы: подходы](/src/homework/11-microservices/11.3)
* [11.4. Микросервисы: масштабирование](/src/homework/11-microservices/11.4)

View File

@@ -0,0 +1,33 @@
Выполнение [домашнего задания](https://github.com/netology-code/devkub-homeworks/blob/main/11-microservices-04-scaling.md)
по теме "11.4. Микросервисы: масштабирование"
## Q/A
> Вы работаете в крупной компанию, которая строит систему на основе микросервисной архитектуры.
> Вам как DevOps специалисту необходимо выдвинуть предложение по организации инфраструктуры, для разработки и эксплуатации.
### Задание 1
> Кластеризация
>
> Предложите решение для обеспечения развертывания, запуска и управления приложениями.
> Решение может состоять из одного или нескольких программных продуктов и должно описывать способы и принципы их взаимодействия.
>
> Решение должно соответствовать следующим требованиям:
> - Поддержка контейнеров;
> - Обеспечивать обнаружение сервисов и маршрутизацию запросов;
> - Обеспечивать возможность горизонтального масштабирования;
> - Обеспечивать возможность автоматического масштабирования;
> - Обеспечивать явное разделение ресурсов доступных извне и внутри системы;
> - Обеспечивать возможность конфигурировать приложения с помощью переменных среды, в том числе с возможностью безопасного хранения чувствительных данных таких как пароли, ключи доступа, ключи шифрования и т.п.
>
> Обоснуйте свой выбор.
В данном случае `kubernetes` будет самым очевидным выбором. Эта система целиком и полностью основана на запуске контейнеров
и поддерживает autodiscovery запущенных контейнеров. Здесь есть горизонтальное масштабирование путём указания количества реплик контейнера,
которые должны быть запущены. Так же в рамках горизонтального масштабирование поддерживается различные методы балансировки запросов.
Автоматическое масштабирование можно настроить путём подключения метрик `prometheus` и настройки предельных значений.
Явное разделение реализовано путём "проброса" портов, как это реализовано в `docker`.
А так же контейнеры без проблем конфигурируются через переменные окружения или dotenv-файлы.