Спрятать панель проектов Показать панель проектов
Donation Пожертвование  |  Дневник  |  Без рекламы  |  О сайте  |  Реклама  |  .mobile  |  Fleshlight     Прислать Гости: 14    Участники: 1  Авторизация   Регистрация 
Метод Научного Тыка
Поиск  
iMag | интернет-журнал
Разделы
Начало » Разработка ПО » Что такое микросервисная архитектура и когда ее применять

Что такое микросервисная архитектура и когда ее применять

 

Добавлено: Пн 25.11.2019 (Sergeant)
Источник: https://proglib.io/p/microservices/

Задумывались над тем, как в одном проекте могут совмещаться части на разных языках? Рассмотрим, что такое микросервисная архитектура.

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

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

Микросервисы – это архитектурный шаблон. Все сервисы в этом шаблоне:

  1. Маленькие
    Сервис не должен требовать множества людей для разработки. Одна команда может разрабатывать несколько сервисов.
  2. Сфокусированные
    Один сервис – одна задача.
  3. Слабосвязанные
    Изменения в одном сервисе не влияют на другой.
  4. Высокосогласованные
    Компонент или класс создаются с учетом всех методов решения бизнес-задачи.

Классическое монолитное приложение обычно имеет стандартную структуру Интерфейс -> Бизнес-логика -> Данные.

 

Микросервисы же отталкиваются от бизнес-логики:

 

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

Когда применяется

Обычно микросервисная архитектура применяется как один из вариантов масштабирования приложения. Всего таких вариантов может быть три:

  • Sharding («разбиение» или просто «шардинг») – данные и инструменты для доступа к ним размещаются на разных узлах.
  • Mirroring (создание зеркал) – дублирование всех данных по множеству одинаковых узлов.
  • Собственно, микросервисы – функциональность разбита по бизнес-задачам, каждый сервис может быть создан своими средствами разработки.

Плюсы и минусы микросервисов

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

Положительные стороны

  • Четкое деление по модулям. Всегда будет понятно, как работает та или иная часть кода. Просто добавлять новые функции.
  • Высокая доступность. Если какая-то часть монолита сломается – сломается все приложение. С микросервисами иначе: сервисы могут работать не все (не критические, вроде авторизации), но приложение при этом останется доступным.
  • Разнообразные технологии. При разработке каждого сервиса вы вольны выбирать инструменты, которые лучше всего подойдут для конкретной бизнес-логики в этом сервисе. Например, выбрать оптимальную базу данных и удобные инструменты для работы с ней. Микросервисная архитектура также позволяет попробовать какую-то новую технологию на отдельном сервисе, не переписывая при этом все приложение.
  • Относительная простота развертывания. Каждый сервис поднимается самостоятельно, что делает процесс развертывания и отладки более чистым.

Недостатки

  • Сложность разработки. Если вам нужно быстрое решение (прототип, небольшое приложение, сжатые сроки), то микросервисы вам не подойдут. Скорость разработки – высокая плата за доступность и модульность.
  • Сложность поддержки. Каждый микросервис нуждается в отдельном обслуживании, поэтому нужен постоянный автоматический мониторинг.

 
Мне нравится
?
Мне не нравится


Комментарии

Писать комментарии могут только авторизованные пользователи.


Комментарии (0)
Нет ни одного комментария.
Поделиться ссылкой:
Новое
2 дня назад, 08:10
Эльфийский шансон
Введение в язык программирования в Axapta X++ и среду разработки MorphXВт 21.01.2020
Введение в язык программирования в Axapta X++ и среду разработки MorphX
Год: 2011
Тестирование PRTG Network Monitor и сравнение с ZabbixПн 20.01.2020
Тестирование PRTG Network Monitor и сравнение с Zabbix
Сб 18.01.2020
Дом напротив конечной
Mastering ASP.NET Web APIВт 14.01.2020
Mastering ASP.NET Web API
Год: 2017
ASP.NET Core 2 and Angular 5Вт 07.01.2020
ASP.NET Core 2 and Angular 5
Год: 2017
The C# Player’s Guide, 3rd EditionВт 31.12.2019
The C# Player’s Guide, 3rd Edition
Год: 2016
10 марок абсента, которые стоит попробоватьПт 27.12.2019
10 марок абсента, которые стоит попробовать
Li-Ion или Li-Pol: в чём различие и что выбратьЧт 26.12.2019
Li-Ion или Li-Pol: в чём различие и что выбрать
Как приготовить сочное мясо в духовке: 7 идеальных рецептовЧт 26.12.2019
Как приготовить сочное мясо в духовке: 7 идеальных рецептов
PostgreSQL 9.0 High PerformanceВт 24.12.2019
PostgreSQL 9.0 High Performance
Год: 2010
An Introduction to the Analysis of Algorithms, 2nd EditionВт 10.12.2019
An Introduction to the Analysis of Algorithms, 2nd Edition
Год: 2013
Переход от монолита к микросервисам: история и практикаПн 09.12.2019
Переход от монолита к микросервисам: история и практика
11 способов как пить абсентПт 06.12.2019
11 способов как пить абсент
MongoDB Cookbook, 2nd EditionВт 03.12.2019
MongoDB Cookbook, 2nd Edition
Год: 2016
Разработано на основе BlackNight CMS
Release v.2020-01-20
© 2000–2020 Blackball
Дизайн & программирование:
Sergeant Центр Связи с Админом Skeleton
О сайтеРеклама
Яндекс.Метрика
Web-site performed by Sergey Drozdov