11.09.2023
Цифровая трансформация диктует новые правила развития бизнеса. Она позволяет делать бизнес непрерывным, а для этого нужны высокопроизводительные IT-решения. Важно, чтобы в современных условиях эти решения отвечали требованиям импортонезависимости.
Сложность заключается в том, что во многих организациях, как правило, используются архитектурно устаревшие IT‑системы. Из-за растущих потребностей бизнеса производительность таких IT‑систем уже недостаточна. Сильная связанность компонентов в информационных архитектурах предыдущих поколений вызывает зависимость от существующей команды разработки и даже конкретных людей. Часто разобраться в том, как устроена такая IT-система, крайне сложно.
Создавать современные IT-решения, которые могут быть быстро адаптированы к меняющимся требованиям и задачам, позволяет микросервисная архитектура.
Однако не все так гладко. Почему?
Тем не менее, эти задачи решаемы. Чтобы упростить и автоматизировать процесс создания микросервисов, компания "Диасофт" разработала технологическую low-code платформу Digital Q.Archer, которая входит в состав экосистемы цифровой трансформации Digital Q.
В компании "Диасофт" используют Packaged Business Capabilities (PBC) – приложения, решающие конкретные бизнес-задачи и состоящие из одного или нескольких микросервисов. PBC становятся связующим звеном между потребностями бизнеса и реализацией конкретных микросервисов, которой занимаются команды разработки.
Для создания PBC в "Диасофт" разработали технологическую платформу Digital Q.Archer. Она позволяет проектировать PBC и автоматически генерировать необходимые для их работы микросервисы. Сама платформа Digital Q.Archer тоже состоит из двух PBC: "Дизайнер PBC" и "Дизайнер микросервисов".
Здесь важной частью оптимизации процесса производства ПО является использование шаблонов проектирования. С одной стороны, это позволяет сократить time to market, а с другой – обеспечить единые стандарты проектирования. Специалисты "Диасофт" подвергли стандартизации все базовые сущности платформы: PBC, бизнес-объекты, API, события и даже столь неочевидную сущность, как атрибут бизнес-объекта. Если в одном месте сущность "клиент" называется "clientId", то и в другом микросервисе она должна называться также. При этом крайне важен контекст. Платформа Digital Q.Archer самообучается и подсказывает пользователю наиболее подходящие варианты атрибутов на основании накопленного опыта, что уменьшает риск разночтений.
Тем не менее, одних шаблонов недостаточно. Например, PBC реализован, и требуется снова воспользоваться его возможностями, без повторного проектирования. С этой целью, специалисты "Диасофт" предоставили возможность многократного реиспользования ранее спроектированных PBC в виде готовых библиотек. Таким образом, набор доступных компонентов для реализации PBC постоянно расширяется за счет новых PBС, созданных пользователями платформы. При этом код преобразуется в библиотеку без участия разработчика. Для этого разработчику достаточно следовать базовым принципам разработки. Это позволяет сократить написание рутинного кода, например, связанного с реализацией в каждом микросервисе машины состояний или других задач.
Как показывает практика, одной из проблем при проектировании микросервисных приложений является неверная грануляция их на отдельные микросервисы. Для разработчика есть большой соблазн реализовать один большой микросервис, вложив в него все функции PBC. Это может привести к потере части преимуществ всей архитектуры. Освободить разработчика от рутинных задач позволяет PBC "Дизайнер микросервисов", созданный для проектирования микросервисов. "Дизайнер микросервисов" самостоятельно предлагает разбивку любого PBC на микросервисы и генерирует полностью рабочие микросервисы без участия пользователя.
Основным языком разработки в "Диасофт" выбран Java и Spring Framework – по причине их универсальности и отсутствия проблем с кадрами. Наряду с ним, также могут использоваться Python и Golang.
Каждый микросервис, создаваемый с помощью Digital Q.Archer, состоит из четырех слоев:
Цифровая трансформация диктует новые правила развития бизнеса. Она позволяет делать бизнес непрерывным, а для этого нужны высокопроизводительные IT-решения. Важно, чтобы в современных условиях эти решения отвечали требованиям импортонезависимости.
Сложность заключается в том, что во многих организациях, как правило, используются архитектурно устаревшие IT‑системы. Из-за растущих потребностей бизнеса производительность таких IT‑систем уже недостаточна. Сильная связанность компонентов в информационных архитектурах предыдущих поколений вызывает зависимость от существующей команды разработки и даже конкретных людей. Часто разобраться в том, как устроена такая IT-система, крайне сложно.
Создавать современные IT-решения, которые могут быть быстро адаптированы к меняющимся требованиям и задачам, позволяет микросервисная архитектура.
Выбор микросервисной архитектуры
Микросервисная архитектура уже прошла стадии отрицания и хайпа и постепенно выходит на плато зрелости. На первый взгляд, она почти идеальна. Такая архитектура децентрализована и открыта, поэтому позволяет легко разрабатывать и сопровождать существующие системы без риска регресса. Горизонтальное масштабирование делает программные продукты производительными. CI/CD-конвейер позволяет автоматизировать процессы сборки исходного кода и развертывания микросервисов.Однако не все так гладко. Почему?
- Бизнес мыслит категориями бизнес-процессов и не понимает, что такое микросервисы. Это создает коммуникационные разрывы между бизнесом и IT и не позволяет выстроить эффективное взаимодействие.
- Отсутствуют единые стандарты и подходы к проектированию. Все еще мало специалистов, которые могут спроектировать правильную микросервисную архитектуру. Практика показывает, что в большинстве случаев получается распределенный монолит, который в полной мере содержит недостатки микросервисной архитектуры и не обладает ее преимуществами.
- Очень дорогая разработка. Это не сервис-ориентированная архитектура, где реализованный сервис многократно реиспользуется. Если так делать в микросервисной архитектуре, то получится распределенный монолит, который не будет содержать ключевого принципа – слабой связанности. Повторяемость типового кода в микросервисах – это стандартная история. Как результат, реализация каждой бизнес-инициативы может идти месяцами, увеличивая time to market.
Тем не менее, эти задачи решаемы. Чтобы упростить и автоматизировать процесс создания микросервисов, компания "Диасофт" разработала технологическую low-code платформу Digital Q.Archer, которая входит в состав экосистемы цифровой трансформации Digital Q.
Как помочь бизнесу и IT понять друг друга
Программный продукт для бизнеса и микросервисы – это не одно и то же. Можно создать лучший в своем классе программный продукт для бизнеса, состоящий из пятидесяти или даже ста микросервисов. Но в таком случае организацию ждут заоблачные затраты на интеграцию и больше десятка нестыкующихся пользовательских интерфейсов. И все это в рамках одного решения, предназначенного для одного бизнес-заказчика. Конечно, в организациях не один бизнес-заказчик. При разработке микросервисов процесс производства программного обеспечения (ПО) становится непрозрачным: у бизнес-заказчика нет понимания, как измерить результат работы команд. Как итог, каждый микросервис выполняет свою узкоспециализированную бизнес-функцию, но по отдельности эти функции непонятны заказчику.В компании "Диасофт" используют Packaged Business Capabilities (PBC) – приложения, решающие конкретные бизнес-задачи и состоящие из одного или нескольких микросервисов. PBC становятся связующим звеном между потребностями бизнеса и реализацией конкретных микросервисов, которой занимаются команды разработки.
Для создания PBC в "Диасофт" разработали технологическую платформу Digital Q.Archer. Она позволяет проектировать PBC и автоматически генерировать необходимые для их работы микросервисы. Сама платформа Digital Q.Archer тоже состоит из двух PBC: "Дизайнер PBC" и "Дизайнер микросервисов".
Проектирование приложения в микросервисной архитектуре
Проектирование приложений ведется в "Дизайнере PBC": создается логическая модель будущего PBC в терминах бизнес-объектов, их отношений и программных интерфейсов. "Дизайнер PBC" позволяет бизнес-аналитику максимально абстрагироваться от технической составляющей и описывать PBC в терминах бизнеса. При этом про микросервисы он даже не думает.Здесь важной частью оптимизации процесса производства ПО является использование шаблонов проектирования. С одной стороны, это позволяет сократить time to market, а с другой – обеспечить единые стандарты проектирования. Специалисты "Диасофт" подвергли стандартизации все базовые сущности платформы: PBC, бизнес-объекты, API, события и даже столь неочевидную сущность, как атрибут бизнес-объекта. Если в одном месте сущность "клиент" называется "clientId", то и в другом микросервисе она должна называться также. При этом крайне важен контекст. Платформа Digital Q.Archer самообучается и подсказывает пользователю наиболее подходящие варианты атрибутов на основании накопленного опыта, что уменьшает риск разночтений.
Тем не менее, одних шаблонов недостаточно. Например, PBC реализован, и требуется снова воспользоваться его возможностями, без повторного проектирования. С этой целью, специалисты "Диасофт" предоставили возможность многократного реиспользования ранее спроектированных PBC в виде готовых библиотек. Таким образом, набор доступных компонентов для реализации PBC постоянно расширяется за счет новых PBС, созданных пользователями платформы. При этом код преобразуется в библиотеку без участия разработчика. Для этого разработчику достаточно следовать базовым принципам разработки. Это позволяет сократить написание рутинного кода, например, связанного с реализацией в каждом микросервисе машины состояний или других задач.
Автоматизация разработки микросервисов
Если проектирование логической модели будущего PBC – это задача бизнес-аналитика, то интерпретация PBC через набор микросервисов – это задача разработчика.Как показывает практика, одной из проблем при проектировании микросервисных приложений является неверная грануляция их на отдельные микросервисы. Для разработчика есть большой соблазн реализовать один большой микросервис, вложив в него все функции PBC. Это может привести к потере части преимуществ всей архитектуры. Освободить разработчика от рутинных задач позволяет PBC "Дизайнер микросервисов", созданный для проектирования микросервисов. "Дизайнер микросервисов" самостоятельно предлагает разбивку любого PBC на микросервисы и генерирует полностью рабочие микросервисы без участия пользователя.
Основным языком разработки в "Диасофт" выбран Java и Spring Framework – по причине их универсальности и отсутствия проблем с кадрами. Наряду с ним, также могут использоваться Python и Golang.
Каждый микросервис, создаваемый с помощью Digital Q.Archer, состоит из четырех слоев:
- Базовый образ контейнера – неизменяемый прикладным разработчиком docker-образ, содержащий в себе необходимую для запуска микросервиса инфраструктуру: операционную систему, Java-машину и т. д.
- Архетип – это набор стандартных библиотек микросервиса. Он включает в себя библиотеки для работы с базами данных, брокерами сообщений, с логированием, трассировкой и многое другое. Один уже архетип позволяет собрать и запустить микросервис.
- Сгенерированный код – это код, который платформа Digital Q.Archer способна автоматически сгенерировать на основе спроектированного ранее PBC и микросервисов. Генератор кода автоматически создает код программных интерфейсов (API и событий) и структуру базы данных. Он позволяет создавать работоспособные REST и событийные интерфейсы микросервиса. В типовые CRUD-методы работы с бизнес-объектами заложены все необходимые базовые функции, в том числе логирование, трассировка, аудит, работа с правами пользователей и прочее. Код генерируется таким образом, что разработчику остается право на расширение реализации метода через его переопределение. Это позволяет достигнуть не только единичной генерации кода, но и бесшовного обновления исходного кода low-code платформой в соответствии с изменившимся описанием.
- Прикладной код разработчика – разработчик может не только писать уникальный код с нуля, но и переопределять предоставленные платформой интерфейсы, классы и методы.
Заключение
Платформа Digital Q.Archer позволяет стандартизировать разработку и сделать ее прозрачной для бизнеса, полностью исключить написание типового кода вручную, бесшовно обновлять стандартный код в любом микросервисе, автоматически генерировать код требуемых API и событий в соответствии с подходом ContractFirst, автоматически документировать изменения. С Digital Q.Archer можно прототипировать PBC за две недели для демонстрации и согласования с заказчиком.
Что нам все это дает? Все достаточно просто: одну кнопку для создания всех работоспособных микросервисов и PBC, решающих бизнес-задачу заказчика.