Что такое приложение? Одни считают, что это программное изделие, другие – набор знаков и символов, третьи – затрудняются ответить. Но, безусловно, каждый согласится с тем, что приложение – это система, требующая упорядоченности и выверенной структуры. Но как это делать? Существует множество вариантов, как написать приложение, однако лидерами сервис-ориентированной архитектуры являются микросервисы.
Сегодня Михаил Соколов, специалист web-разработки, расскажет, что это такое, и почему программисты с их помощью “собираются дробить монолит”.
Представим, что вы — рядовой управленец фирмы, в которой работает какое-то число сотрудников, и у вас есть свое приложение. Оно делает ваш бизнес проще. Приложение было создано давно, и автор его уже не известен. Оно функционировало по первоначально написанному коду без существенных изменений, изредка приходилось нанимать сторонних программистов, чтобы что-то поправить или дописать, но с каждым разом это становилось все труднее и труднее.
И наконец по воли случая, или начитавшись технических сайтов, решено — так дальше продолжаться не может. Приложение необходимо сделать современным, доступным. Вы находите команду программистов, которые изучив требования вам объявляют — пишем все то же самое, но с нуля, в виде вэб-приложения и обязательно на микросервисах.
Если с вэбом еще что-то понятно (пользователи смогут открывать его прямо в браузере, да еще и устанавливать отдельно не надо), то вот с этими микросервисами становится тревожно.
Если окунуться в историю программного обеспечения, то можно заметить, что первые программы, которые создавались уже для рядовых пользователей, писались монументально. Это было Приложение (именно так, с заглавной буквы) которое могло делать все, что нужно вашей фирме. А если возникали новые потребности, то Приложение разрасталось новыми кнопками, вкладками и меню. Когда разработчик уходил, а на его место брали другого, то оказывалось, что наращивать функционал весьма сложно.
Код, как ход мыслей человека, скачет, путается и совершенно не дается в руки. Если убрать ненужный, на первый взгляд кусок, то все приложение не работает. Почему? Все просто — каждый программист создавал приложения «под себя», интерпретируя коды так, чтобы было понятно ему, не думая о будущем. Постепенно приложения стали более упорядоченными, их даже стало возможно поддерживать, но они все равно были цельным куском кода. Задачи росли, росли отделы разработки, появлялись аналитики, требовались люди со специфичными знаниями, росли и Приложения.
Так могло продолжаться бесконечно долго, пока не была придумана Микросервесная Архитектура.
Монолитный подход подразумевает написание единого кода, все процессы которого соединены вместе. То есть, сначала пишется базовый код приложения, после этого, постепенно, он расширяется и к нему дописывают нужные элементы. В результате обновления длятся дольше, и тестировать готовый продукт становится сложнее. Нельзя говорить о том, что при таком подходе приложение однозадачно: внутри него есть отдельные классы и функции. Но их изменение и добавление требует изменения и самой системы.
Также возникают проблемы и с написанием кода: у каждого сотрудника, который занимается приложением, должен быть доступ ко всему, а не просто к его отдельным компонентам. Микросервисы решили эти проблемы. Их основной задачей была независимость. То есть, вместо длинного кода мы видим отдельные сервисы, компоненты которых можно писать на разных языках программирования (конкретному сотруднику не нужно раздавать доступ ко всей системе, лишь к его сервису), отказ одного или нескольких компонентов не приводит к тотальному сбою системы.
Таким образом, после исправления ошибок в отдельном компоненте не нужно настраивать все приложение, достаточно перезапустить отдельный сервис.
Безусловно, Монолитный подход продолжает функционировать, и многие компании, чьи приложения не требуют многозадачности, используют его. Если правильно выбирать форму, то окажется, что небольшой монолит прекрасно выполняет все свои задачи как часы, оставаясь незыблемым в меняющемся мире. Но время не стоит на месте и требует изменений, поэтому нельзя точно сказать, сколько монолит сможет оставаться в IT-рынке. В любом случае, решение «менять или не менять» остается только за Вами.
Всё больше компаний используют микросервисы. Они не только помогают стандартизировать разработку и упростить командную работу, а также отличаются высокой скоростью развёртывания. Наши специалисты выполнили много микросервисных проектов, готовы проконсультировать, поделиться опытом внедрения и предложить решение для вашей проблемы. Напишите нам — будем рады ответить!
Наш менеджер свяжется в течение 2х часов