Files
netology-devops/src/homework/11-microservices/11.4

Выполнение домашнего задания по теме "11.4. Микросервисы: масштабирование"

Q/A

Вы работаете в крупной компанию, которая строит систему на основе микросервисной архитектуры. Вам как DevOps специалисту необходимо выдвинуть предложение по организации инфраструктуры, для разработки и эксплуатации.

Задание 1

Кластеризация

Предложите решение для обеспечения развертывания, запуска и управления приложениями. Решение может состоять из одного или нескольких программных продуктов и должно описывать способы и принципы их взаимодействия.

Решение должно соответствовать следующим требованиям:

  • Поддержка контейнеров;
  • Обеспечивать обнаружение сервисов и маршрутизацию запросов;
  • Обеспечивать возможность горизонтального масштабирования;
  • Обеспечивать возможность автоматического масштабирования;
  • Обеспечивать явное разделение ресурсов доступных извне и внутри системы;
  • Обеспечивать возможность конфигурировать приложения с помощью переменных среды, в том числе с возможностью безопасного хранения чувствительных данных таких как пароли, ключи доступа, ключи шифрования и т.п.

Обоснуйте свой выбор.

В данном случае kubernetes будет самым очевидным выбором. Эта система целиком и полностью основана на запуске контейнеров и поддерживает autodiscovery запущенных контейнеров. Здесь есть горизонтальное масштабирование путём указания количества реплик контейнера, которые должны быть запущены. Так же в рамках горизонтального масштабирование поддерживается различные методы балансировки запросов.

Автоматическое масштабирование можно настроить путём подключения метрик prometheus и настройки предельных значений.

Явное разделение реализовано путём "проброса" портов, как это реализовано в docker. А так же контейнеры без проблем конфигурируются через переменные окружения или dotenv-файлы.