Skip to content

Latest commit

 

History

History

11-microservices-04-scaling

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 

Домашнее задание к занятию «Микросервисы: масштабирование»

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

Задача 1: Кластеризация

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

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

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

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

Решение

Docker Swarm Kubernetes
поддержка контейнеров + +
обеспечивать обнаружение сервисов и маршрутизацию запросов + +
обеспечивать возможность горизонтального масштабирования + +
обеспечивать возможность автоматического масштабирования - +
обеспечивать явное разделение ресурсов, доступных извне и внутри системы + +
обеспечивать возможность конфигурировать приложения с помощью переменных среды, секреты + +

Чаще всего выбирают Kubernetes, хоть он и сложнее со всех точек зрения. Но локально его развернуть сложно, обычно пользуются упрощенной версией, либо docker-ом. Для корпоративных версий используют продвинутый Kubernetes - OpenShift. Сам не практиковал, но девопс инженеры не всегда за одну итерацию приходят к Kubernetes. Бывает через стек других технологий прогоняют проекты компании, а после успеха уже следующей итерацией готовятся к Kubernetes. Даже 12 факторо не всегда достаточно, чтобы перейти на Kubernetes, есть свои нюансы и дополнительные контракты.

Задача 2: Распределённый кеш * (необязательная)

Разработчикам вашей компании понадобился распределённый кеш для организации хранения временной информации по сессиям пользователей. Вам необходимо построить Redis Cluster, состоящий из трёх шард с тремя репликами.

Схема:

11-04-01