From 5dfc2e74287e00cb1be946865e064107941a910f Mon Sep 17 00:00:00 2001 From: dannc Date: Wed, 26 Oct 2022 09:45:48 +0700 Subject: [PATCH] homework 11.4: complete homework --- readme.md | 1 + src/homework/11-microservices/11.4/readme.md | 33 ++++++++++++++++++++ 2 files changed, 34 insertions(+) create mode 100644 src/homework/11-microservices/11.4/readme.md diff --git a/readme.md b/readme.md index b70c0ea..c81ded7 100644 --- a/readme.md +++ b/readme.md @@ -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) diff --git a/src/homework/11-microservices/11.4/readme.md b/src/homework/11-microservices/11.4/readme.md new file mode 100644 index 0000000..869549e --- /dev/null +++ b/src/homework/11-microservices/11.4/readme.md @@ -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-файлы.