Статья

Как микросервисы помогают решать макрозадачи

Бизнес в стиле digital Интернет
мобильная версия

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

Микросервисы уже не являются концептуально новым понятием, это, скорее, свежее представление более широкого подхода сервис-ориентированной архитектуры (SOA). Если копнуть глубже, то основа сформулирована еще в философии UNIX: «Делай что-то одно, но делай это хорошо». Тем не менее, такой подход к проектированию завоевывает все больше сторонников, поскольку отвечает современным требованиям: быстро создавать масштабируемые, гибкие и устойчивые продукты, которые можно вывести на рынок раньше конкурентов.

Гибкость и доступность

Каждое приложение в течение жизненного цикла претерпевает ряд изменений. В случае с монолитной архитектурой при внесении изменений в любой модуль потребуется развертывание всего приложения, а порой и переписывание кода в других связанных компонентах. Микросервисная архитектура представляет собой группу независимых программ, которые добавляются или удаляются без существенного влияния на работу своих «соседей». Каждый микросервис выполняет свою функцию, взаимодействуя с другими посредством сетевых запросов.

По данным IDC, первым 1000 компаниям из списка Fortune отключение систем с целью их обновления обходится в $100 тыс. в час. Для критических бизнес-приложений этот показатель колеблется от $500 тыс. до $1 млн. Сокращение времени отключения систем становится одним из ключевых факторов сохранения конкурентного преимущества.

Использование микросервисной архитектуры открывает широкие возможности повторного использования как внутри одного приложения, так и за его пределами. Везде, где встречаются типовые задачи, можно использовать микросервисы и их сочетания. Такой подход экономит время и, соответственно, снижает стоимость разработки конечного продукта. Немаловажным фактором является доступность приложений, спроектированных в таком стиле: поскольку каждый микросервис независим, сбой в работе одного не повлечет отказа целой системы.

Микро – это сколько?

При дроблении сложного приложения на микросервисы важно четко провести границы между ними, ограничить их контекст, поскольку основные преимущества такого архитектурного стиля заключаются именно в автономности и независимости реализации. Микросервисы принято разделять по бизнес-потребностям, например, «заказы», «формирование отчетов» или «построение графиков».

Облако в помощь дальнобойщикам
По статистике, каждый шестой водитель фуры становится жертвой ограбления, суммарный ущерб от хищения грузов в Европе оценивается в 16,4 млрд евро ежегодно. Компания BOSCH на базе SAP Cloud Platform разработала приложение Secure Truck Parking, которое ищет безопасные парковочные места для обязательного по закону отдыха дальнобойщиков. Водитель заранее планирует маршрут с мобильного устройства и бронирует место на паркинге. Камера на въезде распознает номер грузовика и, если он совпадает с данными бронирования, выдается пропуск. При выезде информация отправляется в BOSCH для безналичной оплаты через систему SAP Vehicles Network.

Определение границ микросервиса - один из самых сложных вопросов. Как явственно следует из названия, он должен быть небольшим. К сожалению, не существует стандарта относительно того, насколько далеко нужно заходить при декомпозиции задач в микросервисной архитектуре. Иные разработчики повторяют словно мантру слова Джеффа Безоса о команде, которую можно накормить двумя пиццами, другие считают, что один сервис должен целиком умещаться в уме одного разработчика. Разумеется, границы можно пересматривать: если два и более компонента обновляются одновременно, то здравой идеей может стать их объединение, и наоборот, если микросервис со временем чрезмерно усложняется и выходит за рамки изначально определенного контекста, возможно, следует пересмотреть структуру приложения.

Свободный выбор технологий

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

В отчете State of DevOps Report за 2016 г. сообщается, что компании, внедрившие современные методы разработки ПО, в 200 раз чаще обновляют свои программы и в 24 раза быстрее восстанавливаются после сбоев по сравнению с компаниями, использующими традиционные подходы.

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

Без облака никуда

С технической стороны микросервисное приложение удобнее и легче реализовывать в облаке. К примеру, на открытой облачной платформе 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 и Siemens стала открытая платформа для работы с интернетом вещей MindSphere, к которой можно подключать промышленное оборудование для мониторинга и прогнозного обслуживания. На платформе можно разрабатывать собственные приложения или микросервисы под индивидуальные потребности клиента.

Разработчики приложений могут стать частью экосистемы, развивающейся вокруг платформы для электронной коммерции SAP Hybris. Теперь у всех желающих есть возможность разрабатывать собственные микросервисы, дополняющие функционал SAP Hybris в зависимости от конкретных бизнес-целей. На сегодняшний день более 5 тыс. участников создают и используют микросервисы по модели SAP Hybris as a Service (YaaS), быстро удовлетворяя спрос на новые решения бизнес-задач.

Попробовать разработку на облачной платформе SAP Cloud Platform можно бесплатно, воспользовавшись ссылкой ниже.