реклама
Бургер менюБургер меню

Андрей Трушкин – Архитектура цифровых платформ. От настоящего к будущему (страница 7)

18

Основной составляющей подобного успеха открытого кода стало кратное повышение эффективности при создании, внедрении и использовании продуктов с открытым исходным кодом, экономическое обоснование которого объясняется теорией Адама Смита. Мы не будем повторять все те доводы, что были изложены в «Архитектуре цифрового мира», а примем их за данность. Цепочка разделения труда при создании и развитии продуктов с открытым исходным кодом в предельном случае может включать все мировое сообщество ИТ-специалистов. Конечно, предельный случай практически недостижим, но и имеющиеся на сегодня примеры превосходят возможности даже крупнейших корпораций, а потому последние и совершили (можно говорить о сверившемся факте) поворот в сторону данной тенденции.

Что же данный поворот означает для платформ? Безусловно, платформа не является информационной системой, платформа не является обособленным программным комплексом. Но программным комплексом она является, причем исключительно сложным – у автора и в мыслях нет пытаться убедить читателя в простоте современных платформ. И повышение производительности труда при создании столь сложных комплексов является одной из важнейших задач современности. Если мы говорим, что платформа является ценностным мультипликатором, то создание и последующее развитие такого мультипликатора не приемлют невынужденных издержек в производительности труда. Особенно при необходимости обеспечения развития интенсивного. А альтернативой интенсивному развитию, как мы помним, являются застой и деградация. Если платформа является ценностным мультипликатором при создании и развитии продуктов, предоставляемых организацией клиентам и партнерам, а открытый код является мультипликатором эффективности при создании программных продуктов, то объединение данных мультипликаторов становится требованием времени. То есть современная платформа должна базироваться на решениях с открытым исходным кодом.

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

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

Рисунок 4. Продукт, автоматизируемый при помощи

современной платформы

Предположим, что платформенные компоненты и предоставляемые при их помощи платформенные сервисы реализуются на основании программного обеспечения с открытым исходным кодом. При этом продукт, как и в примере, приведенном в главе, посвященной проблематике современных цифровых платформ (см. Рисунок 2), содержит учетную, частную учетную, процессную и фронтальную составляющие. Также примем за основу современный архитектурный mindset, детально представленный в «Архитектуре цифрового мира».

Основываясь на рассмотренном ранее примере продукта, отметим следующее:

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

• На уровне частной учетной составляющей (аналитический учет) требуется гибкая настройка продукта (группы продуктов), адресное формирование настроек, гибкая работа пользовательских интерфейсов, клиентами которых являются в первую очередь сотрудники организации, отвечающие за развитие продуктов (владельцы продуктов и смежные им роли). Также обязательным требованием рассматриваемой составляющей является надежное и долговременное хранение информации.

• Настройка бизнес-процессов нуждается в высокой гибкости, кроме того, специфика инструментов, обеспечивающих гибкую алгоритмизацию проводимых операций, предъявляет требование наличия компонентов, обеспечивающих дополнительную производительность.

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

Как видно из перечисленного списка, требования, предъявляемые при автоматизации различных составляющих продукта, пересекаются по принципу кругов Эйлера. Но мы имеем все преимущества, которые предоставляет нам концепция открытого кода. И здесь необходимо учитывать, что многие из тех задач, которые мы планируем решить при автоматизации соответствующего продукта, уже решались ранее (пусть и частным, а не платформенным образом). И современный архитектор, являясь лидером технологических изменений, обязан это учитывать.

Итак, требование к надежному и долговременному хранению информации, предъявляемое составляющими синтетического и аналитического учета, выполняется путем использования современных технологий хранения, обеспечивающих эластичное масштабирование. Более того, в случае если соответствующие технологии предоставляют возможность сегментации (раздельного и независимого хранения и управления массивами данных), то мы можем использовать общую технологическую базу при хранении соответствующей информации как для учетной, так и для частной учетной составляющих. Примерами подобных технологий, которые могут использоваться для решения указанной задачи, могут служить Apache Cassandra и Apache Hadoop, являющиеся продуктами с открытым исходным кодом. Указанные продукты используются технологическими гигантами и их клиентами и партнерами и доказали свою состоятельность. Для групповых операций может использоваться связанная технология – например, Apache Spark, также представляющая собой продукт с открытым исходным кодом. Более того, Apache Spark предоставляет возможности бесшовной интеграции с тем же Apache Hadoop, существенно снижая трудозатраты команд разработки.

Обеспечение высокой скорости записи возможно при использовании технологий как распределенного хранения, так и потоковой интеграции; примерами последних могут выступать Apache Kafka или Apache Pulsar. Указанные технологии обеспечивают высокую скорость записи и множество доступных смежных технологий, отлаженных сообществом разработчиков и готовых к применению. Отметим, что интеграция может быть вертикальной (с точки зрения Рисунка 4) и пронизывать все составляющие автоматизации продукта сквозным образом. Также Apache Kafka и Apache Pulsar (в меньшей степени) поддерживают бесшовную интеграцию (с использованием открытых компонентов) с современными технологиями долговременного хранения информации. Нельзя не отметить, что приведенные технологии потоковой интеграции представляют собой продукты с открытым исходным кодом.

Требования по созданию гибких и эффективных пользовательских интерфейсов являются общими для всех составляющих продукта (в современном мире даже синтетический учет нуждается в развитом пользовательском интерфейсе). Поэтому резонным становится общий подход к созданию как фронтального представления продукта в целом, так и интерфейсных элементов каждой составляющей продукта, предоставление готовых компонентов в виде библиотек, их переиспользование, а также общие подходы к дизайну. И основные фреймворки создания фронтальных компонентов, применяемые на сегодняшний день, – React, Angular, Vue. js – также отвечают принципам открытого кода.

Высокая производительность работы с данными для фронтального слоя может обеспечиваться как кэширующими элементами, применяемыми для обеспечения эффективности индексирования данных, использования быстрого поиска при работе, например, со статическими массивами информации, так и сложными программными комплексами, применяемыми для кэширования, предполагающего частое обновление данных, так называемый «прогрев кэша». Также во втором случае (сложные программные комплексы и связанные с ними задачи) актуальным будет не просто кэширование информации (формат In-Memory Data Grid, IMDG), а полноценная работа с ней в оперативной памяти (формат In-Memory Data Base, IMDB), предполагающая в том числе поддержку языков работы с данными, привычных многим современным разработчикам. Примерами таких инструментов могут служить Apache Ignite или Infinispan; в качестве примера инструмента, поддерживающего первый случай кэширования (индексирование данных и быстрый поиск), можно привести OpenSearch. Указанные продукты являются решениями с открытым исходным кодом. И применяться соответствующие инструменты могут не только для повышения производительности фронтальной составляющей, но и, например, в процессной составляющей автоматизации продукта.