Как микросервисы помогают решать макрозадачи
От того, насколько быстро и эффективно ИТ-подразделения реагируют на задачи бизнеса, во многом зависит развитие всего предприятия. Продуманная архитектура была и остается краеугольным камнем гибкого и масштабируемого приложения. Над тем, как правильно раздробить сложную систему на компоненты и организовать взаимодействие между ними, приходится ломать голову каждому разработчику ПО. Микросервисная архитектура, один из ключевых трендов последних лет, может ответить на эти вопросы.
Микросервисы уже не являются концептуально новым понятием, это, скорее, свежее представление более широкого подхода сервис-ориентированной архитектуры (SOA). Если копнуть глубже, то основа сформулирована еще в философии UNIX: «Делай что-то одно, но делай это хорошо». Тем не менее, такой подход к проектированию завоевывает все больше сторонников, поскольку отвечает современным требованиям: быстро создавать масштабируемые, гибкие и устойчивые продукты, которые можно вывести на рынок раньше конкурентов.
Гибкость и доступность
Каждое приложение в течение жизненного цикла претерпевает ряд изменений. В случае с монолитной архитектурой при внесении изменений в любой модуль потребуется развертывание всего приложения, а порой и переписывание кода в других связанных компонентах. Микросервисная архитектура представляет собой группу независимых программ, которые добавляются или удаляются без существенного влияния на работу своих «соседей». Каждый микросервис выполняет свою функцию, взаимодействуя с другими посредством сетевых запросов.
Использование микросервисной архитектуры открывает широкие возможности повторного использования как внутри одного приложения, так и за его пределами. Везде, где встречаются типовые задачи, можно использовать микросервисы и их сочетания. Такой подход экономит время и, соответственно, снижает стоимость разработки конечного продукта. Немаловажным фактором является доступность приложений, спроектированных в таком стиле: поскольку каждый микросервис независим, сбой в работе одного не повлечет отказа целой системы.
Микро – это сколько?
При дроблении сложного приложения на микросервисы важно четко провести границы между ними, ограничить их контекст, поскольку основные преимущества такого архитектурного стиля заключаются именно в автономности и независимости реализации. Микросервисы принято разделять по бизнес-потребностям, например, «заказы», «формирование отчетов» или «построение графиков».
Определение границ микросервиса - один из самых сложных вопросов. Как явственно следует из названия, он должен быть небольшим. К сожалению, не существует стандарта относительно того, насколько далеко нужно заходить при декомпозиции задач в микросервисной архитектуре. Иные разработчики повторяют словно мантру слова Джеффа Безоса о команде, которую можно накормить двумя пиццами, другие считают, что один сервис должен целиком умещаться в уме одного разработчика. Разумеется, границы можно пересматривать: если два и более компонента обновляются одновременно, то здравой идеей может стать их объединение, и наоборот, если микросервис со временем чрезмерно усложняется и выходит за рамки изначально определенного контекста, возможно, следует пересмотреть структуру приложения.
Свободный выбор технологий
Микросервисы дают возможность быстро проверять гипотезы и экспериментировать с перспективными технологиями без влияния на работу всей системы. Команды, работающие над разными микросервисами, могут использовать разные языки программирования и решения, наиболее подходящие для конкретной задачи.
При этом рабочий процесс не будет напоминать вавилонское столпотворение, поскольку такой архитектурный подход предполагает стандартизированную интеграцию между микросервисами. Разработчики, не тратя время на обсуждения и согласование способов и каналов взаимодействия, могут быстро и независимо друг от друга разворачивать новые продукты.
Без облака никуда
С технической стороны микросервисное приложение удобнее и легче реализовывать в облаке. К примеру, на открытой облачной платформе SAP Cloud Platform можно разрабатывать мобильные и HTML-приложения на языках Java, XSJS, C++, Python, Ruby, Node.js, Go, PHP и .Net, а также соединять свои приложения с любыми облачными и локальными системами при помощи встроенного интеграционного сервиса.
Для хранения и обработки данных на облачной платформе доступны SAP HANA, ASE и такие открытые системы как PostgreSQL, MongoDB и Hadoop. Кроме того, у SAP имеется около 40 собственных микросервисов, предназначенных для работы с интернетом вещей, алгоритмами прогнозирования, автоматическим переводом и другими методами машинного обучения, а также мощная интегрированная среда разработки SAP Web IDE и инструмент быстрого прототипирования Build.
Разработчики приложений могут стать частью экосистемы, развивающейся вокруг платформы для электронной коммерции SAP Hybris. Теперь у всех желающих есть возможность разрабатывать собственные микросервисы, дополняющие функционал SAP Hybris в зависимости от конкретных бизнес-целей. На сегодняшний день более 5 тыс. участников создают и используют микросервисы по модели SAP Hybris as a Service (YaaS), быстро удовлетворяя спрос на новые решения бизнес-задач.
Попробовать разработку на облачной платформе SAP Cloud Platform можно бесплатно, воспользовавшись ссылкой ниже.