Dmitriy V. Simonov
О микросервисах замолвите слово
by Борис Егоров
Микросервисы – это дорого не только с точки зрения самой разработки, как проектирования и написания кода — дорого с точки зрения поддержки, эксплуатации и отладки, внесения изменений.
Настолько дорого, что процесс такой разработки может разорить небольшую компанию, или начинающий стартап.
Сетевые особенности:
* неправильно настроенная сеть
* сбоящее сетевое оборудование
* неравномерная нагрузка на сеть, создаваемая разными сервисами
* неизвестные (изменяющиеся помимо вашей воли, и неконтролируемые) параметры расположения машин в сети при использовании облачных хостингов
* удаленный сервис не найден
* сетевое соединение устанавливается, обмен данными не происходит
* сервис принимает ваш запрос, но внезапно отрабатывает не сто миллисекунд, как он делал это каждый день в течение последнего полугода, а пять секунд (сервис стал медленнее работать? глючит сеть?)
* сервис обрывает соединение
* особенности работы сети в виртуальных машинах
Апи, эксплуатация:
* Где документация с примерами, как ваш API использовать, включая исчерпывающее описание всех возможных ошибок?
* А средства валидации запросов (декларативные схемы, как минимум для себя, как максимум — публично доступные)?
* И авторизация потребителей сервисов?
* Потребуется ведение статистики по потреблению сервисов каждым потребителем
* Нужен rate limit, квотирования по разным критериям (тип потребителя, источник запросов, определенные типы запросов, и т.д.)
* Требуется версионирование API, уведомление потребителей о сменах версий, окончании эксплуатации старых версий…
Вот это вот всё – это ещё не всё!