Приглашаем всех желающих посетить бесплатные пробные занятия по курсам МВА и профессиональной подготовки. Занятия проходят в реальных группах, никаких постановочных занятий. Ознакомиться с расписанием пробных занятий, выбрать заинтересовавшее и зарегистрироваться на него можно здесь
Микросервисная архитектура в разработке корпоративных приложений
Моисеев П.В.
Выпускник группы MBA ITM-35
Школа IT-менеджмента
РАНХиГС при Президенте РФ
Рыночная конкуренция и трансформация потребительских трендов в сторону цифровых услуг требуют от современных компаний увеличения скорости, с которой они могут предоставлять новые продукты и функции. Во всех отраслях требования цифрового бизнеса меняют способ создания и запуска бизнес-приложений, а это в свою очередь оказывает влияние на весь корпоративный ИТ-ландшафт предприятия. Приложения должны быть как отказоустойчивыми, так и легко масштабируемыми, при этом быть чрезвычайно гибкими и развиваться в условиях постоянных изменений. Микросервисы имеют предпосылки стать доминирующим стилем архитектуры для разработки этих приложений, поскольку инфраструктура микросервисов предоставляет инструменты и среду для их развертывания и запуска на необходимых бизнесу уровнях.
Микросервисы - сравнительно недавний паттерн в архитектуре программного обеспечения, у которого нет четкого определения, окончательного свода знаний или методологии, а есть только набор характеристик, принципов и практических правил. В двух словах, архитектура микросервисов это коллекция шаблонов, посредством которых большое программное обеспечение разбивается на небольшие, независимые и дискретные сервисы, которые слабо связаны. Микросервисный паттерн эволюционирует органически из практики развития в ведущих технологических гигантах (таких как Google или IBM), поэтому существует относительно мало формальных научных исследований по этому вопросу. Непонимание основ этой технологии препятствует ее широкому использованию и несет определенные риски применения в бизнесе.
Цель данной работы состоит в том, чтобы (1) объяснить преимущества и подводные камни разработки корпоративных приложений на основе микросервисной архитектуры, (2) показать при каких масштабах это становится выгодным вариантом, и (3) исследовать, какие условия должны быть созданы для управления микросервисами.
В качестве объекта исследования выступает крупная телекоммуникационная компания, столкнувшаяся с необходимостью создания новой цифровой экосистемы для реализации своей стратегии развития.
Предметом исследования данной работы является формализация подходов к построению микросервисной архитектуры в ИТ-ландшафте предприятия, ее применимость в конкретных направлениях разработки приложений, описание необходимых организационных изменений, инструментов и методов, реализующих и поддерживающих микросервисный слой.
Структура аттестационной работы позволяет шаг за шагом приблизиться к рабочему сценарию использования микросервисной архитектуры в разработке:
В первой главе дан обзор и сравнение основных архитектурных шаблонов приложений, определена область применения микросервисов, и обозначены вызовы, с которыми придется столкнуться при их реализации;
Во второй главе представлены необходимые условия для создания микросервисной среды (гибкая разработка, практики DevOps, автоматизация развертывания), а также методы решения трудностей, указанных в предыдущей главе. Помимо этого удалось выявить последовательность между современными методологиями в разработке и определенными технологическими решениями, обеспечивающими их востребованность.
В третьей главе описан подход, используемый в рассматриваемой компании, для развития экосистемы микросервисов, и как следствие, использование общей платформы для внутренней разработки. В качестве практического примера в работе представлена архитектура корпоративного приложения для сотрудников, спроектированная по принципам микросервисов.
В результате выполненного исследования стало понятно, что микросервисные архитектуры хороши для больших и сложных приложений, которые разрабатываются и поддерживаются несколькими и часто географически распределенными командами. Приведенные доводы «за» и «против» использования микросервисов в конкретных ситуациях будут полезны при планировании новых программных проектов в любой компании. Результаты этой работы могут также послужить отправной точкой для команд разработки, которые начинают знакомство с микросервисами на практике, в том числе внутри рассматриваемой организации.
Возможность быстрого развертывания новых услуг для клиентов и сотрудников важна в современной экономике. Однако нужно помнить, что большинство компаний не является Amazon, и базовая инфраструктура микросервисов не должна создаваться с нуля, так как может возникнуть очень много накладных расходов. Имеет смысл рассмотреть бессерверную платформу (или FaaS, Function as a Service) - это форма облачных сервисов, которая предоставляет платформу для разработки и выполнения приложений без какого-либо обременения, связанного с поддерживающей инфраструктурой. Принципы микросервисной архитектуры хорошо подходят для облачных вычислений, позволяя экономическим преимуществам микросервисов дополнять экономические преимущества облачных вычислений, такие как оптимизация затрат и опыта взаимодействия с пользователем.
Что касается рассматриваемой телекоммуникационной компании, то на нее действуют ограничения в форме всем известных законов (о персональных данных, обеспечение тайны в законе о связи), поэтому в компании очень аккуратно смотрят в сторону облачных технологий, вкладываясь в развитие собственных компетенций автоматизации развертывания приложений и платформ CI/CD (непрерывной интеграции и доставки). Большая функциональность и модульность проектируемой системы, а также развитие экосистемы на микросервисах для бизнес-приложений в компании, повлияли на то, что стала экономически оправданной и возможной реализация корпоративного приложения для внутренних пользователей с микросервисной архитектурой.
- Войдите на сайт для отправки комментариев