Skip to content

Files

microservices

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
Mar 27, 2024

Вопросы про микросервисы

Что такое микросервисная архитектура? (кратко)

Микросервисная архитектура — это способ разработки программного обеспечения, при котором большое приложение разбивается на небольшие, независимо работающие модули или сервисы. Каждый микросервис отвечает за выполнение конкретной задачи или функции и может быть разработан, развернут и обновлен независимо от остальных. Эти сервисы общаются друг с другом с помощью легковесных протоколов, чаще всего через REST API.

изображение

Чем отличается микросервис от монолита?

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

Приложение-монолит представляет собой единый неделимый блок, где все функции встроены в одно целое и работают в рамках одного процесса.

Основные отличия:

  • Масштабируемость: Микросервисы можно масштабировать независимо друг от друга, в то время как монолит требует масштабирования целиком.
  • Гибкость разработки: В микросервисной архитектуре команды могут разрабатывать, обновлять и развертывать каждый сервис независимо, что обеспечивает большую гибкость. В монолитной архитектуре изменения в одной части приложения могут повлиять на всё приложение.
  • Технологическая гибкость: Микросервисы могут быть написаны на разных языках программирования и использовать разные технологические стеки, в то время как монолит, как правило, ограничен единым стеком технологий.
  • Отказоустойчивость: Ошибка в одном микросервисе обычно не влияет на работу остальных, тогда как в монолитном приложении ошибка может привести к сбою всего приложения.
  • Сложность управления: Микросервисные архитектуры могут быть сложнее в управлении и мониторинге из-за их распределенного характера, в то время как управление монолитным приложением проще из-за его централизованности.

изображение

Опишите плюсы и минусы двух концепций

Монолитная архитектура

Достоинства:

  • Простота разработки и развертывания: Все части приложения тесно интегрированы, что делает процесс разработки и тестирования относительно простым.
  • Простота управления: У вас всего одно приложение для мониторинга и управления, а не несколько микросервисов.
  • Понятность: Новым разработчикам часто проще понять и внести свой вклад в со структурированное монолитное приложение.

Недостатки:

  • Масштабируемость: Монолитные приложения сложнее масштабировать, особенно для обработки большого количества запросов.
  • Гибкость разработки: Большие изменения могут повлиять на весь проект, затрудняя быстрое внесение изменений.
  • Технологическая привязанность: Проекты замкнуты на одном технологическом стеке, что ограничивает внедрение новых технологий.

Микросервисная архитектура

Достоинства:

  • Масштабируемость: Легко масштабировать и обновлять отдельные части системы независимо.
  • Гибкость разработки: Команды могут разрабатывать, тестировать и развертывать микросервисы независимо друг от друга.
  • Использование разных технологий: Возможность использовать для каждого микросервиса наиболее подходящий язык программирования и технологический стек.

Недостатки:

  • Сложность управления: Управление множеством микросервисов и их взаимосвязями может быть сложным.
  • Проблемы с безопасностью и мониторингом: Безопасность и мониторинг в распределенной системе требуют более сложного подхода.
  • Сложности с координированием данных: Обеспечивать целостность и согласованность данных между различными микросервисами может быть нетривиальной задачей.

Полезные ссылки

Просто о микросервисах

Монолитная и микросервисная архитектура. Сравнение

Введение в Cloud native. (цикл статей)