Поиск  
Always will be ready notify the world about expectations as easy as possible: job change page
3 августа 2019 г.

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

Источник:
Просмотров:
2687

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

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

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

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

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

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

 

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

 

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

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

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

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

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

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

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

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

Недостатки

  • Сложность разработки. Если вам нужно быстрое решение (прототип, небольшое приложение, сжатые сроки), то микросервисы вам не подойдут. Скорость разработки – высокая плата за доступность и модульность.
  • Сложность поддержки. Каждый микросервис нуждается в отдельном обслуживании, поэтому нужен постоянный автоматический мониторинг.
Похожее
29 июля 2019 г.
От переводчика: некоторые скорее всего уже читали этот титанический труд от Мартина Фаулера и его коллеги Джеймса Льюиса, но я все же решил сделать перевод этой статьи. Тренд микросервисов набирает обороты в мире enterprise разработки, и эта статья является ценнейшим...
Aug 8
Author: Avinash Dhumal
Introduction Microservices, like a team of superheroes, are small, independent services that work together to create powerful applications. Sometimes, these services need to talk to each other in a specific order, and that’s where the microservices saga and compensation pattern...
Jan 31, 2023
Author: Arkaprava Sinha
Today we will see, how to enable Logging directly to Loki via Serilog for a .NET Core Microservice and visualize the logs in Grafana.   Before we start, What is Loki? Loki is a horizontally scalable, highly available, multi-tenant log...
Sep 23, 2022
Author: Jaydeep Patil
In this article, we will discuss gRPC and perform CRUD Operation using that and step-by-step implementation of gRPC. We take Product Application here to understand how things are going to work with gRPC and, in that first, we create ProductOfferGrpcService...
Написать сообщение
Тип
Почта
Имя
*Сообщение