Микросервисная архитектура vs монолит (на простом примере)
Микросервисная архитектура — это концепция, которая существует уже довольно давно, но до сих пор многие не до конца понимают, в чем ее суть, какие плюсы и минусы она имеет по сравнению с монолитной архитектурой. На мой взгляд это нужно понимать, даже нетехническим специалистам. Как-то на одном из собеседований на «продуктовую» позицию в крупную международную компанию, рекрутер попросила меня объяснить разницу между ними и перечислить преимущества и недостатки каждого подхода.
Этот статья вряд ли откроет что-то новое опытным специалистам, хотя они, возможно, найдут ее полезной как пример для объяснения новичкам. Однако нетехническим специалистам она может быть полезна — на простом бытовом примере я покажу, как работают оба подхода и чем один лучше другого.
Монолит — телевизор все в одном, но с нюансами
У меня есть умный телевизор Samsung, ему уже лет 6. Это классический пример монолита: все встроено в одно устройство — и звук, и видео, и «мозги» (умная прошивка). Все удобно и просто, управляется с одногоа пульта.
Монолит
Со временем телевизор устарел: приложения начали работать медленно, некоторые перестали запускаться, а звук начал барахлить. Если запустить встроенную операционную систему, спустя непродолжительное время он начинает постоянно перезагружаться.
Чтобы продолжить им пользоваться, можно было отправить его в ремонт, что стоило бы кучу денег и времени, звук стал бы лучше, он бы перестал загружаться, но встроенные приложения уже не обновить, их никто уже не поддерживает. Как часто бывает с монолитами, апгрейд невозможен: ты либо обновляешь все, либо ничего. Еще один вариант, купить ему на замену совершенно новый. Покупка нового ТВ не входила в мои планы, качество картинки меня полностью устраивает, да и не хотелось терять сразу большую сумму денег.
Переход на микросервисы: гибкость и возможности
Вместо того чтобы выкидывать старый телевизор и покупать новый, я пошел другим путем. Я начал поэтапно обновлять его через подключение новых устройств — и это отличный пример перехода к микросервисной архитектуре.
Первый шаг — подключил приставку от Xiaomi, то есть поставил новые «мозги». Теперь все современные приложения стали работать быстро и без проблем Апгрейд прошел почти незаметно, потребовалось подключить несколько проводов, и вуаля одна из его ключевых функций заменена.
Новые «мозги»
Второй шаг — мой старый звук совсем отказал. Ремонтировать встроенные колонки? Дорого и неудобно, в мою машину телевизор не влезает, поэтому отвезти его в ремонт это отдельное приключение. Вместо этого я сначала подключил имеющуюся простенькую колонку, получился такой MVP микросервиса «звук».
MVP микросервиса «звук»
Чуть позже я перешел на «целевой» микросервис, подключил новый саундбар JBL, который подарили коллеги.
Целевое решение
Качество звука стало на несколько порядков выше, без необходимости замены телевизора. Не каждый современный ТВ может похвастаться таким звуком.
Преимущества микросервисного подхода
Такой подход — по сути, пример микросервисной архитектуры — имеет ряд неоспоримых плюсов:
Гибкость. Когда устаревают или ломаются отдельные компоненты, не нужно менять всю систему. Можно просто обновить один из сервисов. Как в моем случае: сначала я заменил «мозги» приставкой, а потом подключил саундбар для звука.
Экономия. Вместо того чтобы тратить деньги на новый телевизор (монолит), я смог поэтапно модернизировать старый. Это оказалось дешевле и позволило избежать крупных вложений.
Многофункциональность. Моя новая приставка работает не только с этим телевизором. Я могу взять её в поездку, подключить к другому телевизору или монитору. Саундбар тоже оказался универсальным — его можно использовать как отдельную колонку для музыки. То есть одни и те же «микросервисы» можно использовать в других «сервисах».
Но есть и минусы…
Как и любой подход, микросервисная архитектура имеет свои недостатки. Например, теперь у меня дома три пульта: один от телевизора, другой от приставки, и третий от саундбара. Дети первое время путались, не понимали, почему не работает звук или не переключается канал. В микросервисах также — чем больше отдельных компонентов, тем сложнее их синхронизировать и управлять ими.
Сложности управления
Ещё один минус — возможные сложности с интеграцией. Иногда разные устройства могут не идеально «общаться» друг с другом. Например, пульт от приставки не всегда корректно работает с телевизором или звуком, и нужно вручную переключать режимы. Мой саундбар лежал долгое время в коробке, мне не хотелось тратить время на подключение, а кроме меня дома никто этого сделать не мог.
Вывод
Микросервисная архитектура — это возможность быть гибким и обновлять только те части системы, которые устарели или требуют улучшений. Вместо того чтобы каждый раз переписывать или заменять весь продукт, можно заменить только его отдельные части. Да, это добавляет немного сложности в управлении, но зато даёт свободу и экономит ресурсы.
Так что если ваш бизнес (или телевизор) начинает барахлить, возможно, пришло время подумать о микросервисах — по чуть-чуть, шаг за шагом, вы сделаете его современным и гибким, не ломая всю систему сразу.
p.s. понравился пост, приходи в мой тг-канал Inspired Product Manager.