скачать книгу бесплатно
Архитектура цифровых платформ. От настоящего к будущему
Андрей Николаевич Трушкин
В настоящей книге изложены основы построения современных и устремленных в будущее цифровых платформ, рассматриваются характерные элементы, обязательные для любой платформы. Поднимаемые в книге вопросы затрагивают все этапы жизненного цикла платформ и продуктов, создаваемых на их основе. Особое внимание уделено архитектуре платформ, рискам, возникающим при их создании и развитии, а также способам преодоления этих рисков. Книга будет полезна как ИТ-специалистам, так и руководителям организаций.
Архитектура цифровых платформ
От настоящего к будущему
Андрей Николаевич Трушкин
© Андрей Николаевич Трушкин, 2024
ISBN 978-5-0064-5813-0
Создано в интеллектуальной издательской системе Ridero
Введение
Данная книга является логическим продолжением предыдущего труда автора – «Архитектура цифрового мира». Бытует мнение, что каждая книга (или серия книг) должна быть логически завершенной, позволять осмыслить изложенное в ней в целом. Подобное мнение имеет право на существование. Однако жизнь не стоит на месте и дарит пищу для размышлений с учетом как прочитанного, так и ранее изложенного. А потому мы идем дальше и стараемся расширить и углубить те мысли, которые были представлены в предыдущей книге, на нее же будем регулярно ссылаться по ходу настоящего изложения.
Ранее мы достаточно подробно останавливались на вопросах цифровых платформ, им посвящен отдельный раздел в «Архитектуре цифрового мира». Вместе с тем роль цифровых платформ в современном цифровом же мире, их позиционирование, взаимовлияние исключительно важны: платформы (а в дальнейшем мы, в отсутствие дополнительных уточнений, будем подразумевать под платформами именно цифровые платформы) привлекают внимание не только ИТ-специалистов, но и ученых, философов, политиков, историков и многих других специалистов. Можно сказать, что платформы являются самостоятельным направлением развития цифрового мира. И потому крайне важно рассмотреть подобное направление, так как его значение с течением времени будет только возрастать. Именно указанному рассмотрению и посвящена настоящая книга.
Опираясь на базис, сформированный в предыдущем труде, мы принимаем за основу, что платформа является фреймворком создания и исполнения ИТ-решений организации. При этом платформы могут выходить за рамки конкретной организации, объединяя в структуре экосистемы целые отрасли человеческой деятельности. Примером может служить инструментальная реализация концепции banking-as-a-platform (BaaP), при которой различные организации схожих областей деятельности объединяются на одной платформе. Аналогичным образом сложные холдинговые структуры могут объединять собственные продукты и процессы на общих кросс-платформах. Также значимым фактором современной жизни являются социальные платформы, объединяющие людей в различных странах и на разных континентах. Кроме того, нельзя забывать те характеристики платформ, которые являются следствием потенциальных ментальных ловушек, связанных с платформенными проектированием и реализацией:
• Платформа не является информационной системой.
• Платформа не является обособленным программным комплексом.
• Платформа должна быть открытой, и изменения в нее могут вносить любые команды, которые должны брать на себя ответственность за вносимые изменения.
• Платформа не должна быть замкнутой.
Для полноты восприятия вкратце раскроем вышеперечисленные тезисы, напомнив их читателю.
Тот факт, что платформа не является информационной системой, обусловлен отсутствием самостоятельной ценности, создаваемой и привносимой пользователям и клиентам, со стороны платформы. Ценность создается продуктами, реализуемыми приложениями, которые в свою очередь создаются и исполняются при помощи платформы, то есть ценность платформы опосредованная. Таким образом, платформа не содержит смысла самостоятельного овеществления в ИТ-ландшафте организации.
Обособление (не путаем с овеществлением, характерным для информационных систем), предполагающее независимое технологическое позиционирование платформы, приводит к необходимости сложной синхронизации платформенных (содержащих технологические функции) и прикладных (содержащих функции, реализация которых несет непосредственную ценность клиентам) бэклогов, существенному усложнению релизных циклов и т. д. Кроме того, говоря о необходимости избегать обособления платформ в ИТ-ландшафте, мы подчеркивали необходимость обеспечения их встраиваемости в приложения, в рамках реализации которых и создается непосредственная пользовательская ценность.
Открытость платформ предполагает обеспечение их прозрачности для команд разработки, создающих ценность для клиентов и партнеров организации. Команды должны иметь возможность дополнять функциональность платформ, при этом дополнения становятся достоянием всех работающих с платформой команд, то есть платформы подчиняются принципам проектов с открытым исходным кодом (возможно, в ограниченном формате, при котором платформенное сообщество формируется в масштабах развития организации).
Отсутствие замкнутости платформ предполагает их постоянное развитие в технологическом плане, открытость новым технологическим трендам, изменениям лицензионных соглашений и т. д. По сути, требования к платформе быть открытой и не быть замкнутой являются взаимно дополняющими друг друга. Тем самым обеспечивается возможность интенсивного развития платформы, платформенных приложений и сервисов, самой организации, применяющей платформенный подход, достижение необходимого уровня архитектурного mindset.
Перечисленные свойства платформ не предполагают, что они (платформы) являются некими «черными дырами» ИТ-ландшафта, засасывающими финансовые, временны?е, трудовые и иные ресурсы организаций, но при этом не имеют четких границ и областей применения. Наоборот, платформы должны быть наиболее прозрачными (пусть и не обособленными) компонентами приложения усилий, ведь их опосредованное участие в создании ценности становится ценностным мультипликатором организаций, применяющих платформенный подход, обеспечивающим интенсивное развитие, препятствующим росту энтропии, риск которого является существенным при современных требованиях к цифровизации. Если мы говорим о том, что современная компания является ИТ-компанией, предоставляющей услуги самого широкого спектра деятельности (как основного профиля, так и смежных и вспомогательных), то скорость цифровизации, предполагающая кардинальное изменение мышления, переход к продуктовому подходу от классических проектного или процессного, вполне может способствовать росту энтропии. И сдержать его может помочь платформенный подход, о чем мы и поговорим в настоящей книге.
Разумеется, это не означает, что платформа, создающая опосредованную ценность, а также платформенные приложения «скованы одной цепью», то есть являются неразрывным целым с некой жестко определенной структурой. Возможно, побудительные мотивы выстраивания подобной структуры в организациях и могут возникать, но они являются очередной ментальной ловушкой, подстерегающей нас на пути следования интенсивному развитию. Такие структуры оказываются хрупкими, а потому либо являются недолговечными в быстро меняющемся цифровом мире и водовороте новых требований, либо приводят организации к застою и деградации, за которыми следует потеря конкурентоспособности. Платформы должны иметь распределенную сервисную структуру, предоставлять платформенные сервисы, а платформенные приложения должны бесшовным образом как исполняться на платформе, так и взаимодействовать между собой. Вопросы связи платформ, платформенных сервисов и платформенных приложений будут рассмотрены в соответствующей главе.
За время, прошедшее с написания предыдущей книги автора, подчеркнутые в ней ключевые тенденции развития архитектуры не только не угасли, но и дополнительно укрепились. Как архитектура в целом, так и платформы обязаны им следовать. Перечислим данные тенденции:
• Открытый код, на котором основываются ключевые технологические решения современности.
• Распределенность (при этом в данное понятие входит как технологическая, так и организационная составляющая).
• Бизнес-процессы, автоматизация которых несет конечную ценность для клиентов и пользователей.
• Данные, являющиеся основным богатством организаций, а потому принимаемые в качестве краеугольного камня цифровизации.
• Искусственный интеллект, проделавший существенный качественный рост (пусть негативно настроенные авторы и утверждают, что виной тому эффект низкой базы).
Успешные платформы современности (например, развиваемые технологическими гигантами) следуют вышеперечисленным тенденциям. Но следование им не является прерогативой только технологических гигантов – это веление времени, а потому любая организация, стремящаяся сохранить конкурентоспособность на рынке, должна учитывать их, творчески адаптировать, а также синхронизировать платформенный подход (обязательный к применению для обеспечения интенсивного развития) с указанным перечнем. Вопросы применения и адаптации приведенных ключевых тенденций развития архитектуры в сочетании с платформенным подходом, соответствия платформ данным тенденциям будут рассмотрены в соответствующей главе.
При этом автор не ставит своей целью описать единственное верное построение цифровой платформы, тем более что это и невозможно. Современное развитие технологий, связанное с ним изменение лицензионных соглашений, проработка новых топологий развертывания, формирование новых архитектурных подходов исключают не просто решение, но и саму постановку подобной задачи. При обосновании использования, проектировании, реализации и развитии платформ необходимо следовать ключевым тенденциям развития архитектуры, учитывать представленные ранее свойства платформ, а также принимать во внимание необходимость перманентного интенсивного развития организации, являющегося ключом к конкурентоспособности. Только такой mindset позволит обеспечить реализацию и использование и постоянное развитие платформ, обеспечивающих указанную конкурентоспособность. И только такой mindset приемлем для архитектора, являющегося лидером технологических изменений. Также мы не будем обсуждать вопросы сайзинга оборудования, применяемого для развертывания платформ и платформенных приложений.
Отметим, что и сейчас актуально утверждение, приведенное в «Архитектуре цифрового мира»: частные случаи и конкретные технологические решения будут упоминаться лишь в качестве примеров, иллюстрирующих комплексное рассмотрение.
Отдельно следует заметить, что автор сознательно избегает рассматривать в настоящем изложении вопросы архитектуры конкретных платформ. Любые совпадения с частными архитектурными, технологическими или организационными решениями существующих платформ случайны.
Проблематика современных цифровых платформ
Читатель, увидев заголовок настоящей главы, может задаться вопросом: «Какая же проблематика? Повсеместно можно услышать про необходимость создания или развития цифровых платформ, любая уважающая себя компания либо создает собственную, либо использует внешнюю/внешние. Нет здесь никаких проблем, за исключением, может быть, финансовых». Но в том-то и дело, что зачастую словесный вал лишь затушевывает суть: вместо создания и развития платформ во многих случаях происходит экстенсивное развитие унаследованного ИТ-ландшафта. Нередко отсутствует даже экстенсивное развитие, а организации уже выходят на тропу мысленной и технологической деградации. И финансовые проблемы играют здесь совсем не основную роль. Попробуем разобраться, в чем же истинная проблематика современных платформ.
В «Архитектуре цифрового мира» (в разделе «Архитектура и цифровые платформы») мы уже говорили о том, что термин «цифровая платформа» является многозначным в современном мире, приводили примеры такого использования данного термина, как «платформа Google», «омниканальная платформа», «платформа Java» и некоторые другие. К сожалению, и на сегодняшний день указанная многозначность не изжита, она присутствует и в специальной литературе, и в дискуссиях самого разного уровня, и в публичных выступлениях. Как результат, создаются все новые и новые «платформы», при этом крайне сложно выявить ценность их внедрения и использования. Продукты у компаний, внедряющих подобные «платформы», зачастую попросту отсутствуют, рассматриваются лишь классические процессные подходы и методологии, сами же внедряемые «платформы» являются потребителем финансовых ресурсов, последние безостановочно направляются на «развитие», реальным же «выхлопом» являются застой и деградация. Разумеется, далеко не все платформы являются таковыми, но автор вынужден констатировать, что попадание в ментальные ловушки, характерные как для цифровизации в целом, так и для работы с платформами, является нередким случаем в современном мире.
Другим полюсом, характеризующим совершенно иные результаты применения платформенных подходов, являются мировые технологические гиганты, которые (благодаря достижению высокого технического уровня) получают возможность реагировать на изменения в конъюнктуре, потребительских предпочтениях, экономических тенденциях на совершенно иной скорости, а также с недоступной еще относительно недавно адресностью. В начале 2024 года один из крупнейших мировых технологических гигантов представил результаты мониторинга, показавшие, что в среднем изменения в используемую им технологическую платформу и продукты, предоставляемые посредством платформенных приложений, вносятся каждые 11,6 секунды. Во-первых, подобная оперативность позволяет реагировать на современные вызовы с адекватной скоростью, сохраняя конкурентоспособность организации. Во-вторых, указанная скорость реакции позволяет задавать ориентир для конкурентов, усугубляя положение тех из них, кто не в состоянии реагировать на вызовы с сопоставимым уровнем оказания услуг. Таким образом, подобный технологический гигант не просто сохраняет адекватность требованиям рынка при предоставлении продуктов и услуг клиентам и партнерам, но и наращивает отрыв от конкурентов, повышая собственные шансы на монополизацию тех или иных сегментов рынка. И основой здесь является именно платформенный подход.
Предположим, что организация, ИТ-ландшафт которой реализован в классической парадигме сервис-ориентированной архитектуры (SOA), столкнется с необходимостью столь же быстрого внесения изменений, связанного, например, с быстро меняющейся рыночной конъюнктурой. Для примера предположим, что ИТ-ландшафт выстроен в формате, представленном на Рисунке 1. Организация стремится оставаться в рыночных трендах и поэтому перешла (хотя бы на декларативном уровне) к продуктовой методологии. Но «продукт», предоставляемый организацией, является результатом выполнения операций в нескольких (предположим, что в четырех) информационных системах, созданных с использованием различных технологий.
Рисунок 1. ИТ-ландшафт в парадигме SOA
Рассмотрим значимое изменение в «продукте», предоставляемом организацией, как результат работы указанных четырех информационных систем. Под значимым изменением в продукте будем понимать такое изменение, которое влияет на его функциональные (например, перерасчет ставки по кредиту с одновременным изменением рассматриваемого клиентского пула) и нефункциональные (например, требования к новым дистанционным каналам, предполагающие взрывной рост нагрузки) характеристики. Подобное значимое изменение в продукте в общем случае предполагает изменения во всех информационных системах, результатом проводимых операций в совокупности которых является продукт. Таким образом, команда доработки продукта должна включать в себя специалистов, компетентных в соответствующих системах (в рассматриваемом примере – четырех). Используемые в настоящее время информационные системы не являются монотехнологичными, а содержат развитый технологический базис построения. Подобная ситуация предполагает (в случае значимых изменений) привлечение специалистов различного технологического профиля, профессионализм которых позволяет производить масштабные изменения, затрагивающие весь перечень технологий, используемых в информационных системах. Уже привлечение трех-четырех специалистов по каждой информационной системе обеспечит превышение традиционной мощности команд гибких практик (если таковые применяются в организации). Учтем, что значимые изменения, как правило, не выполняются силами выделенных единичных специалистов, поскольку являются трудоемкими, требуют документирования, обмена опытом и т. д. Получается большой коллектив с заметным профессиональным и технологическим разнообразием, к тому же внимание отдельных специалистов резонно будет сфокусировано на доверенных им информационных системах, что дополняет проблематику внесения значимого изменения необходимостью синхронизации деятельности соответствующих специалистов, представляющих подкоманды разработки. Разумеется, ни о каких 11,6 секунды на изменение говорить уже не приходится. Учтем необходимость тестирования, выполнения релизной политики (зачастую также весьма громоздкой) – и получим совершенно неприемлемые с точки зрения современной конъюнктуры значения скорости внесения изменений. Как результат, организацию ожидают застой и деградация, за которыми следует утрата конкурентоспособности.
Приведенный выше пример может показаться надуманным. Но еще в середине 2010-х годов проводилось сравнение крупных российских организаций, осуществлявших цифровую трансформацию, с мировыми технологическими гигантами. Сравнение осуществлялось по показателю количества изменений, вносимых ими в ключевые приложения. Показатели российских организаций за квартал уступали аналогичным показателям технологических гигантов в день. Основными составляющими подобного преимущества назывались следование платформенному подходу (разумеется, каждый гигант формирует собственную платформу) и гибким практикам разработки. Как мы видим, мировые лидеры не сбавляют оборотов. Соответственно, следует не просто не игнорировать составляющие их успеха, но и внимательнейшим образом их изучать и адаптировать. И здесь речь идет не только и не столько о гибких практиках (пусть это и исключительно важный аспект обеспечения конкурентоспособности в современном мире), сколько о комплексном архитектурном mindset, а также о его воплощении в платформенном подходе.
Настало время поговорить о еще одном негативном аспекте, возникающем при обсуждении платформ. Одним из результатов такого обсуждения (собственно негативным аспектом) становится многообразие терминов: «омниканальная платформа», «учетная платформа» и т. д. Предположим, что организация, рассмотренная выше, рассчитывает встать на путь интенсивного развития, применив платформенный подход. В результате осмысления проблем, возникающих при развитии ИТ-ландшафта, характеризующегося многообразием информационных систем, организация начинает создавать платформы и обеспечивать путем их исполнения предоставление продуктов клиентам и партнерам. Пример «продукта», характерного для указанного изменения подходов, представлен на Рисунке 2.
Рисунок 2. «Продукт», формируемый множеством «платформ»
И предположим, что рассматриваемый «продукт» претерпевает значимое изменение. Для прозрачности рассмотрения укажем, что речь идет об end-to-end продукте (описан в «Архитектуре цифрового мира»). Уточним, что мы рассматриваем в примере финансовый продукт, который можно подразделить на следующие составляющие (для демонстрации применения нескольких «платформ»):
• Учетная составляющая, в рамках которой предполагается ведение синтетического учета данных о продукте.
• Частная учетная составляющая, на уровне которой обеспечивается связь синтетического и аналитического учета, формируется видение учета продукта для организации (в случае нашего примера – финансовой).
• Процессная составляющая, обеспечивающая автоматизацию операций по созданию, заведению, постановке на учет, сопровождению продукта, то есть весь комплекс сложных бизнес-процессов, поддерживающих жизненный цикл продукта.
• Фронтальная составляющая, формирующая пользовательское представление о продукте и операциях, проводимых с ним (включая как внешних, так и внутренних пользователей).
Что же происходит в организации, которая, приняв за руководство к действию следование платформенным подходам, попадает в ментальную ловушку «множества платформ» (как мы увидим ниже)?
В общем случае для каждого уровня продуктовой автоматизации, представленного выше, выбирается собственная платформа, обладающая ключевыми для обеспечения необходимого каждому уровню качества характеристиками.
Ведение синтетического учета предполагает выполнение большого количества транзакционных операций, характеризующихся высокой степенью унификации, минимальными (а зачастую отсутствующими в принципе) требованиями по гибкости настройки (ввиду указанной унификации), серьезными вызовами в части производительности, необходимостью проведения высокоэффективных групповых операций (в случае финансовой организации в качестве примера можно привести необходимость формирования регуляторной отчетности), скромными требованиями к удобству пользовательского интерфейса (в данном случае говорить о вроде бы ставших общепринятыми терминах «клиентский путь», «дизайн-мышление» и им подобных не приходится).
При ведении аналитического учета предъявляются требования гибкой настройки параметров продукта и их связи с показателями синтетического учета. В данном случае имеет смысл говорить об адресности проводимых операций (уже их результаты преобразуются в синтетические проводки, требования к которым становятся базовыми для платформы синтетического учета). То есть производительность в случае аналитического учета рассматривается не с точки зрения эффективности выполнения групповых или пакетных операций, а с точки зрения возможности сегментации работы с продуктами различных типов (например, депозитными и кредитными продуктами в случае финансовой организации) и снижения нагрузки на каждый продукт в отдельности, а также исключения их взаимовлияния. Требования к пользовательскому интерфейсу формируются в соответствии с параметрами аналитического учета, а также ширины спектра продуктов организации: необходимо предоставить развитые пользовательские настройки для формирования параметров продуктов, организации связи кросс-продуктов, адаптации интерфейсов к развитию продуктового ряда, характерному для современного цифрового мира. Поскольку соответствующие настройки проводят сотрудники организации (в более редких случаях – сотрудники компаний-партнеров), то мы говорим скорее об удобстве интерфейсов, нежели о производительности последних.
Автоматизация бизнес-процессов предполагает возможность быстрого создания и изменения последних, а также обеспечение их мониторинга, расчета КПЭ и т. д. Продуктовые бизнес-процессы предполагают исключительно широкие возможности настройки, необходимость создания и исполнения кросс-продуктовых процессов (задействующих различные типы продуктов с генерацией совместной аналитической и синтетической учетной логики), потенциал создания большого количества точек интеграции, использование современных практик low-code и no-code для проектирования и исполнения процессов. Можно констатировать, что требования к удобству и гибкости настроек для данного слоя исключительно актуальны. Долгое время считалось, что вопросы производительности на уровне настройки и исполнения бизнес-процессов уходят на второй план по сравнению с гибкостью, но современный мир диктует необходимость изменения подобного подхода. В условиях повсеместного развития дистанционных каналов обслуживания невысокая производительность автоматизированных бизнес-процессов приведет к утрате конкурентоспособности организации, допустившей указанный недостаток. Например, низкая скорость обработки поступающих заявок на кредит исключает привлекательность для клиентов каналов, не требующих аутентификации (например, сайты компании или ее партнеров), обнуляя возможность лидогенерации, что недопустимо для организации, ставящей во главу угла интенсивное развитие. При этом вопросы выполнения групповых и пакетных операций (по аналогии с автоматизацией аналитического учета) практически неактуальны. Вопросы мониторинга исполняющихся процессов, напротив, крайне важны: специалисты, ответственные за развитие бизнес-процессов организации, должны иметь возможность моделирования и установки КПЭ процессов, клиенты и партнеры нуждаются в развитой статусной модели процессов, позволяющей получать информацию о состоянии интересующих их процессов и обрабатываемых в ходе их исполнения данных. При этом традиционной характеристикой автоматизации бизнес-процессов является высокое потребление вычислительных ресурсов при выполнении данной задачи. Соответственно, необходим мониторинг ресурсов, потребляемых теми или иными бизнес-процессами и их экземплярами, на основании данных которого оказывается возможным обеспечивать «здоровье» ИТ-ландшафта организации. В рассматриваемом случае речь идет о командах DevOps и/или сопровождения, являющихся пользователями мониторинга бизнес-процессов. То есть речь идет как о системном, так и о прикладном характере мониторинга. Пользователи же мониторинга являются как внутренними с точки зрения организации, так и внешними. Проанализировав все указанные аспекты, мы приходим к необходимости высоких требований к возможностям пользовательского интерфейса «платформы» автоматизации бизнес-процессов. При этом автоматизация бизнес-процессов в большинстве случаев не предполагает транзакционного характера исполняемых операций (в части того, что операции на уровне данной составляющей не являются типовыми и/или короткоживущими).
При автоматизации фронтальной составляющей продукта особое внимание уделяется упомянутым выше «клиентскому пути» и «дизайн-мышлению», а также аналогичным им аспектам. В противном случае конкурентоспособность продукта оказывается чрезвычайно низкой в современном цифровом мире, инвестирование средств в создание, развитие и продвижение такого продукта теряет всяческий смысл. При несомненной важности рассмотренных выше аспектов продуктовой автоматизации фронтальное представление является базовой составляющей формирования эффективного P&L (profit and loss analysis) продукта. Составляющей исключительной важности в случае фронтального представления является производительность этого самого автоматизируемого фронтального представления: в случае медленной отрисовки графики по продукту, длительного переключения экранов представления потенциальный (да и действующий) клиент потеряет интерес к продукту, обратит внимание на предложения конкурентов, и организация понесет убытки. Особенно актуален вопрос производительности в условиях дистанционных каналов, далеко не все из которых в процессе лидогенерации предъявляют требования к обязательности аутентификации или заполнению пространных анкет. В условиях резкого роста числа каналов продукты должны быть представлены если не в каждом из них, то в некоем значимом множестве. В противном случае можно неоправданно сократить воронку продаж. И организация приходит к необходимости поддержки концепции омниканальности, при которой все каналы коммуникации с пользователями (в их число могут входить не только клиенты организации, но и ее сотрудники и партнеры) объединяются в единую связанную экосистему, при этом коммуникация в рамках продуктового взаимодействия носит сквозной характер. Таким образом достигается целостное взаимодействие пользователей с автоматизируемым продуктом. Но как обеспечить рассматриваемую омниканальность? Зачастую организации добавляют в свой ландшафт очередную «платформу» – омниканальную, в задачи которой входит:
• Отделение логики представления от процессной.
• Предоставление развитых инструментов создания интерфейсов.
• Поддержка различных каналов взаимодействия с пользователем как на уровне восприятия, так и на уровне фронтальных процессов (дополнительной сущности, отделяемой от продуктовых процессов прикладного характера, рассмотренных выше).
• Обеспечение непрерывности коммуникации с пользователями.
• И многие другие…
Также отметим уже ставшее фактически стандартом де-факто требование, предъявляемое к технологиям создания фронтальных интерфейсов, заключающееся в легковесности последних. Фронтальные приложения и их компоненты выполняются на самых разных устройствах, обеспечивают различные каналы коммуникации, вынуждены учитывать проблемы сетевого взаимодействия и т. д. Создание тяжеловесных фронтальных компонентов пользовательского приложения фактически обнуляет конкурентоспособность продукта, а вместе с ним и организации, его предоставляющей. Соответствующее требование легковесности транслируется и в отношении омниканальной «платформы», отличая ее от предшествующих.
Изучив приведенное выше описание, читатель непременно задаст вопрос: «Так в чем же отличие этого платформенного подхода от классической SOA-архитектуры? В такой ситуации надо создавать микросервисы, которые обеспечат распределенность, а то по факту просто системы заменили платформами!» И принципиально внимательный читатель будет прав: фактически значимая доработка продукта, созданного в подобной архитектуре, будет весьма схожа с его доработкой при реализации принципов SOA. Действительно, столь разная организация автоматизации каждого уровня продукта, предоставляемого организацией клиентам и/или партнерам, потребует фактически выделенной продуктовой команды на каждом уровне. Да, в случае простого продукта можно составить продуктовую команду, отвечающую принципам гибких практик, но современные продукты (а особенно если речь идет о кросс-продуктах) крайне сложны, требуют привлечения специалистов разных компетенций. А потому даже на одном уровне автоматизации (при приведенном выше примере принципиально различных технологических и организационных требованиях к базису каждого) может оказаться весьма затруднительным собрать единую команду гибких практик, развивающую соответствующий продукт. После чего возникнет необходимость синхронизации работы команд для обеспечения качества создаваемого продукта, дабы последний не стал подобен лоскутному одеялу из слабо связанных между собой доработок, что в свою очередь может повлечь как рыночную слабость продукта, так и нарушение непрерывности его предоставления. При этом команда развития каждого уровня автоматизации продукта реализует требуемые доработки с разной скоростью, зависящей от функциональной и нефункциональной составляющей, например:
• Доработки могут проводиться на некотором подмножестве уровней автоматизации продукта: доработки фронтального представления, например, не затрагивать учетные составляющие.
• Различный технологический базис уровней автоматизации приводит к разной скорости их развития в соответствии с нефункциональными требованиями.
Добавим сюда еще и возможное попадание в ментальную ловушку, рассмотренную в главе «Архитектуры цифрового мира», посвященной цифровым платформам, а именно создание выделенных команд разработки и развития платформ. В случае масштабирования указанной ошибки на рассматриваемую в примере организацию может оказаться вероятным, что продукт разрабатывается набором команд гибких практик разработки, при этом для каждой платформы в организации существует отдельная команда развития. Получается, что в общем случае (при условии высокой сложности автоматизируемого продукта) мы можем столкнуться с ситуацией, при которой в реализации значимой продуктовой доработки могут быть задействованы до восьми (!) команд разработки. Синхронизация их деятельности становится весьма нетривиальной задачей. И даже совмещение платформенных и продуктовых команд в отдельных случаях (например, это вполне возможно для случая автоматизации функций синтетического учета) не привносит принципиального упрощения ситуации. И стоит учесть, что в рассматриваемом примере мы сознательно учитывали относительно простую структуру как продукта, так и организации. Последняя может внедрять еще и «платформу CRM», и расширяющую «омниканальную платформу» «платформу» ДБО, к примеру, и «платформу MDM», и многие другие аналогичные «платформы».
Мы видим, что подобное следование платформенному подходу, заключающееся фактически в бездумном производстве все новых и новых «платформ», нисколько не упрощает автоматизацию деятельности организации, не приближает ее к перманентному интенсивному развитию. Более того, создание платформ само по себе является трудоемким и финансово недешевым процессом. Результат же, который нами был продемонстрирован на достаточно простом примере, вовсе не приводит к экономии каких-либо ресурсов, доступных организации. В то же время мы регулярно говорим о необходимости перехода к платформенному подходу. В чем же дело? Мы просто следуем моде либо обосновываем бесконечный рост затрат на автоматизацию и цифровизацию? Поставим вопрос по-другому: какой должна быть платформа для достижения результатов автоматизации/цифровизации, заключающихся в переводе организационных процессов и продуктов на новый качественный уровень, какая платформа становится инструментом, обеспечивающим перманентное интенсивное развитие, какая платформа соответствует mindset современности, то есть какой должна быть современная платформа? Также впору задать вопрос: что можно, а что нельзя считать современной цифровой платформой?
Ответ на вопрос о платформе и ее видении необходимо начать с краткого обзора современного mindset. Мы не будем подробно рассматривать все его аспекты, желающие могут ознакомиться с ними в «Архитектуре цифрового мира». В отношении особенностей современного архитектурного mindset, обеспечивающего перманентное интенсивное развитие, можно выделить следующие:
– Ключевым элементом mindset является фокус на продукте, представляющем ценность для партнеров и клиентов организации, его создающей. Далеко не всегда определить продукт оказывается простой задачей, во многом корректное формирование продуктового видения конкретной организации требует серьезного изменения мышления и позиционирования себя на рынке, частным случаем которого является уход от продуктологов к владельцам продуктов.
• Как уже отмечено, современный архитектурный mindset должен обеспечивать перманентное интенсивное развитие. Соответственно, его инструментальное обеспечение (куда можно отнести и платформы) должно отвечать указанному требованию.
• Современный архитектурный mindset должен успешно обходить ментальные ловушки, связанные с гибкими практиками, информационной безопасностью, шаблонами проектирования, эффектом Даннинга – Крюгера (подробно рассмотрены в «Архитектуре цифрового мира»). И платформы также должны успешно противостоять той ментальной лености, которая тянет нас в указанные ловушки.
Возвращаясь к представленному выше примеру платформенного подхода, основанного на множестве «платформ», можно отметить, что он полностью игнорирует современный mindset. Фактически в нем отсутствует видение продукта – нет общей продуктовой концепции (а во многих случаях она окончательно «добита» наличием платформенных команд). Создание и развитие продукта, отвечающие требованиям современного цифрового мира, при таком подходе невозможны ввиду необходимости синхронизации рабочего процесса огромного количества специалистов разных направлений деятельности. В особо запущенных случаях деградации организации понятие продукта сводится к его визуальному или процессному представлению. В таком ракурсе невозможно обеспечить перманентное интенсивное развитие, так как векторы «развития» каждой применяемой «платформы» оказываются строго разнонаправленными, результат же получается аналогичным басне И. А. Крылова «Лебедь, щука и рак». Ведь самостоятельное развитие каждой «платформы» может затормозить общее продуктовое развитие, останов же платформенного развития приведет к бесконечному наращиванию продуктового функционала на стремительно устаревающей технологической базе.
При подобном развитии событий крайне сложно избежать и ментальных ловушек, перечисленных выше. При отсутствии общего продуктового видения корректные адаптация и применение гибких практик становятся невозможными, так как отсутствует продукт, на реализацию которого и направлены сами гибкие практики. Наиболее частым случаем, встречающимся на практике при применении такого подхода, является бесконечный «Waterfall со стендапами», в который погружаются разрозненные команды, отвечающие за автоматизацию конкретных уровней рассмотрения продукта (в нашем примере их представлено четыре, но может быть и существенно больше при мелкой грануляции технологий автоматизации, применяемых в организации). При этом можно клеить на доску сколько угодно стикеров с описанием решаемых задач, синхронизировать бэклоги команд на соответствующих статусах, использовать современные инструментальные средства поддержки гибких практик, но не будет главного – согласованной работы над продуктом. Для упрощения производственной деятельности, пытаясь ускорить разработку тяжеловесных платформ, будут применяться новые и новые шаблоны проектирования, не ведущие к созданию ценности, но с какого-то момента существующие сами по себе. Ну и выход на «плато стабильности» эффекта Даннинга – Крюгера для подобным образом собранного сообщества также будет затруднен. Некая команда (например, реализующая фронтальное представление продукта при помощи «омниканальной платформы») будет продолжать находиться на «пике тупости», основываясь на относительно невысокой скорости реализации требуемого продуктового функционала другой командой, обладающей априори меньшей емкостью в терминах гибких практик (в качестве примера можно привести команду, отвечающую за ведение частного аналитического продуктового учета), которая, погрязнув в задачах и техническом долге, окажется зажатой в «обрыве сознания».
Разумеется, говорить об интенсивном развитии в данном случае не приходится, а потому и считать приведенный выше пример реальным следованием платформенному подходу также нельзя. Более того, невозможно именовать приведенные в примере «платформы» таковыми, поскольку они затрудняют развитие, обеспечивают попадание в ментальные ловушки, исключают формирование комплексного архитектурного mindset. И здесь содержится важная часть ответа на вопрос, что можно считать цифровой платформой будущего.
Мы сразу оговоримся, что платформа не предоставляет продукты сама по себе. Автоматизация продуктов, предоставляемых организацией клиентам и партнерам, осуществляется посредством платформенных приложений, которые мы рассмотрим в соответствующей главе. Но платформа должна предоставлять полноценный спектр инструментального обеспечения для автоматизации всех аспектов продуктов организации. То есть концепция продукта организации должна иметь инструментальную платформенную поддержку. Важное свойство отсутствия замкнутости платформы позволяет ей поддерживать развитие продуктов и их представлений, требующих новых технологических решений. При этом свойство открытости позволяет продуктовым командам вносить изменения в платформу, публиковать их на уровне платформы, делая их доступными для смежных команд, повышать тем самым общую производительность труда. Таким образом резко снижается потребность в синхронизации команд, столь критичная в приведенном выше примере.
Синхронизация технологического развития платформы (отсутствие замкнутости) и продуктового развития организации позволяет обеспечить ту самую интенсивность, которая является ключом к конкурентоспособности в современном цифровом мире. Технологии, обеспечивая эффективную сквозную автоматизацию, создают простор для продуктового развития, ускоряя и стимулируя его, а развитие в свою очередь требует новых технологий для автоматизации, которые (опять же вследствие отсутствия замкнутости) добавляются в платформу и платформенные приложения.
Читатель вновь может задать вопрос: «Но разные уровни продуктовой автоматизации требуют различных технологий и подходов, как все это обеспечится платформой?» И ответ даст архитектура платформы: последняя должна обладать составной многомодульной структурой, которая обеспечивает создателей приложений сервисами для решения различных задач продуктовой автоматизации в универсальном формате. Взаимосвязь платформ и платформенных сервисов мы рассмотрим в соответствующей главе. Открытость платформы же позволяет создавать расширения модулей, сервисов и самой платформы командам развития продуктов, расширяя возможности инструментального обеспечения.
Указанное согласованное развитие продуктовых команд, эффективно адаптирующих и применяющих гибкие практики разработки, их совместная работа с использованием платформенных технологий и сервисов позволяют обеспечить и совместное развитие mindset на пути достижения уровня, адекватного современному цифровому миру. И пройти этапы эффекта Даннинга – Крюгера до уровня «плато стабильности» становится не в пример легче, главное же – достичь его оказываются в состоянии все команды, задействованные в развитии организации.
Фактически, если применять закон S-кривой и взять за старт последней классическую SOA-архитектуру, то можно констатировать, что рассмотренный выше пример платформенного подхода, заключающийся в использовании множества «платформ», находится на рабочем подготовительном этапе (значительные инвестиции с невысоким результатом), при этом использование современной платформы относится к этапу интенсивного внедрения технологий. Говорить об этапе стагнации платформенного подхода пока рано, поскольку рынок автоматизации нельзя считать насыщенным современными платформенными технологиями (речь идет именно о полноценных цифровых платформах, а не о частных «платформах», которые скорее осложняют автоматизацию). Схематично развитие платформенного подхода представлено на Рисунке 3.
Рисунок 3. S-кривая платформенного подхода
Получается, что создание цифровой платформы, позволяющей обеспечивать достижение современного архитектурного mindset, является ключевым элементом перехода организации к интенсивному развитию в цифровую эпоху. Отметим, что технологические гиганты, создающие и развивающие собственные платформы, идут именно этим путем. Развитая архитектура платформы, тезисно представленная выше, позволит создавать продукты, несущие ценность клиентам и партнерам организации. При этом архитектура платформы должна следовать ключевым тенденциям развития архитектуры в целом, рассмотрению чего будет посвящена следующая глава.
Цифровые платформы и ключевые тренды развития архитектуры
Еще раз о ключевых трендах развития архитектуры
В предыдущей книге «Архитектура цифрового мира» ключевым трендам развития архитектуры был посвящен специальный раздел ввиду исключительной важности данной темы. При этом мы говорили о тех трендах, которые актуальны для современной архитектуры (а также актуальны для цифрового мира) в целом. С учетом той важности платформ, которая заставила нас вновь «взяться за перо», данные тренды актуальны и для платформенного подхода. Напомним их читателю:
• Открытый код.
• Распределенность.
• Бизнес-процессы.
• Данные.
• Искусственный интеллект.
Применение решений с открытым исходным кодом позволило резко повысить производительность труда при создании ИТ-решений. Основой повышения стало значительное увеличение цепочки разделения труда по сравнению с созданием «закрытых» (vendor-lock) решений. Если последние были ограничены масштабами конкретной организации, выступавшей поставщиком (вендором) ИТ-решения, то в случае успешного свободно распространяемого решения, основанного на открытом исходном коде, становится возможным вовлекать принципиально большее сообщество разработчиков в развитие такого решения. Например, являющуюся одной из самых популярных нереляционных СУБД Apache Cassandra развивают десятки крупнейших технологических компаний по всему миру, используют же и вносят точечные исправления сотни. Подобный масштаб недостижим для любой корпорации, развивающей собственные закрытые решения, пусть даже и исключительно масштабной. Указанный подход позволяет резко наращивать производительность труда вследствие включения в цепочку развития все новых и новых специалистов.
Платформы также являются средством повышения эффективности деятельности организации и роста производительности труда (разумеется, мы говорим именно о тех платформах, к архитектуре которых надо стремиться, что было отмечено в предыдущей главе). Было бы странно предположить, что два фактора, обеспечивающих рост производительности труда в современном цифровом мире, не должны присутствовать и взаимодействовать в современной организации, более того, не учитывать друг друга. К сожалению, именно такой деструктивный подход регулярно встречается и на сегодняшний день в ряде организаций. Тем не менее лучшие практики говорят о том, что решения с открытым исходным кодом стремятся к платформенному подходу, лучшие же платформы активно используют решения с открытым исходным кодом. Поэтому первая ключевая тенденция развития платформ – синергия платформ и решений с открытым исходным кодом.
Распределенность рассматривалась нами в «Архитектуре цифрового мира» в двух смысловых плоскостях: распределенное исполнение современных технологических решений и организационная распределенность команд, создающих и развивающих эти решения. Обе смысловые составляющие более чем применимы к платформам. Платформы должны обеспечивать эффективное создание и исполнение приложений (платформенных приложений), несущих ценность клиентам и партнерам организации. Ценность несут продукты организации, автоматизация (и цифровизация) которых осуществляется с помощью платформенных приложений. Современные продукты доступны клиентам во всех часовых поясах и климатических зонах в режиме 24?7. Подобная доступность предполагает непрерывность бизнеса, которая диктует требования к используемой платформе. Платформа должна поддерживать указанный режим функционирования и предоставления продуктов, то есть сама стать распределенной. Длительные периоды недоступности, сервисный останов, ожидание времени отклика – все это признаки технологического застоя и деградации, ведущих к утрате организацией конкурентоспособности на рынке. Поэтому современная платформа (как и платформа будущего) – это распределенная платформа, обеспечивающая эффективное исполнение распределенных же платформенных приложений.
Архитектура распределенных программных комплексов, к которым относятся и сами платформы, и платформенные приложения, является достаточно сложной по сравнению с архитектурными решениями предыдущих поколений. И создавать ее ограниченной командой крайне затруднительно (конечно, такой вариант также возможен, но он приводит к неприемлемым в современном цифровом мире временным затратам). Практика (которая, как известно, является критерием истины) показывает, что современные команды создания и развития платформ и платформенных приложений являются распределенными: как члены одной команды могут находиться в самых разных точках земного шара, так и работа нескольких команд над современными технологическими решениями не только допускает, но и настаивает на их распределенной работе. Здесь есть прямое пересечение с вопросами использования решений с открытым исходным кодом: если успешные решения развиваются десятками (а иногда и сотнями) организаций, то отдельные специалисты и команды развития априори не могут не быть распределенными. Соответственно, и платформы, составляющие вместе с платформенными приложениями полноценные экосистемы, использующие развитые решения с открытым кодом, также развиваются распределенными командами.
Мы уже отмечали ранее, что современные компании, ставящие целью сохранение конкурентоспособности в цифровом мире, стараются уйти от процессной организации деятельности, отказываются от нее в пользу продуктовой. Подобный переход достаточно легко объясним: лишь эффективное взаимодействие с клиентами и партнерами, позволяющее решать их задачи, обеспечивает конкурентоспособность, а решение клиентских и/или партнерских задач осуществляется за счет предоставления им ценности. Ценность же выражается в продукте. В задачи настоящей книги не входит описание всей продуктовой и ценностной концепции, желающие могут изучить разнообразную литературу, посвященную гибким практикам, разработкам клиентского пути и т. д. Мы лишь констатируем, что продукт в организации первичен. Но первичность продукта не означает отсутствия иных сущностей. Продуктовый подход декларирует первичность продукта, но не отрицает бизнес-процессы. Последние в обязательном порядке присутствуют в современной организации, но их задача в реалиях интенсивного развития – описывать жизненный цикл продукта, таким образом, мы приходим к сегментации бизнес-процессов. Вслед за продуктами, группами продуктов или продуктовыми доменами мы имеем все основания определить группы бизнес-процессов, характеризующих конкретные продукты.
Так как платформа поддерживает (и даже продвигает) продуктовый подход, то она обязана поддерживать и бизнес-процессы, связанные с продуктами. Под поддержкой в данном случае понимается широкий спектр активностей: здесь и проектирование бизнес-процессов, и исполнение их экземпляров, и поддержка версионности, и мониторинг (технический и прикладной), и выставление КПЭ процессов, поиск узких мест. Разумеется, непосредственное исполнение экземпляров процессов ассоциируется с конкретными платформенными приложениями, но в задачи платформы входит предоставление инструментальных средств поддержки столь важного функционала, что снимает повышенную нагрузку с каждого выделенного приложения, позволяя не изобретать велосипед, а решать конкретные задачи, связанные с потребностями клиентов и/или партнеров организации. Распределенность же платформ и платформенных приложений диктует необходимость обеспечения распределенности исполнения бизнес-процессов, что также является одним из важнейших аспектов поддержки платформами тренда развития архитектуры, связанного с автоматизацией процессной деятельности (в рамках привязки ее к продуктовому подходу, учитывая указанное выше первостепенное, но не единственное значение продуктов).
Значимость данных и их использования растет с каждым годом. Необходимость следования соответствующему тренду развития архитектуры стала еще более очевидной с момента публикации предыдущей книги автора, где данный тренд также специально подчеркивался. Данных, необходимых организациям, становится все больше, потребности в их эффективных хранении и обработке все выше. Использование для решения подобных задач архитектурных подходов предыдущих поколений попросту недопустимо: представим себе очередную (уже которую по счету) BI-систему, продаваемую лицам, принимающим решения в организации, в качестве «серебряной пули», обеспечивающей качественную аналитику и принятие решений. И раз за разом подобные «спасительные» инструменты терпят крах вследствие низкого качества данных организации, необходимости взаимодействия с несвязанными источниками данных, сложнейшими алгоритмами обработки последних и т. д. Подобный пример приведен с целью подчеркнуть актуальность проблемы с данными, которая не исчезла, а скорее усугубилась за последние годы. И цифровая платформа, предоставляющая средство обеспечения перманентного интенсивного развития, должна помогать в решении проблем с данными, обеспечивать следование указанной тенденции развития архитектуры.
В рамках поддержки управления данными в современной архитектуре платформа должна обеспечивать:
• Возможность следования самым разным концепциям управления данными (за разработку подобных концепций отвечают, как правило, выделенные специалисты), используемым в организации.
• Осуществлять поддержку сбора данных из источников (распределенных, что показывает связь с обозначенной выше распределенностью как тенденцией развития архитектуры), их обработку, подготовку витрин (как аналитических, создающихся за продолжительные промежутки времени, так и создаваемых в режиме реального времени).
• Создание универсальных форматов отображения (в этом случае BI-инструменты могут и не входить в состав платформы, но, работая с предоставляемыми выгрузками, выполнять заявленные функции вполне качественно).
Еще раз необходимо уточнить, что непосредственную работу с данными осуществляет не сама платформа, а платформенное приложение (в некоторых случаях платформенный сервис; разграничение между платформенным сервисом и платформенным приложением будет рассмотрено в соответствующей главе). Но платформа предоставляет все необходимые инструменты для создания и работы приложений.
Искусственный интеллект как тенденция развития архитектуры (а скорее как тенденция развития мира) пережил с момента публикации «Архитектуры цифрового мира» целый взрыв интереса к технологии, при этом спектр эмоций менялся от страха и недоверия до обожания, граничащего с почитанием. Неудивительно, что существенная часть мнений в отношении технологий искусственного интеллекта относится к тому, что принято именовать «хайпом». Как правило, хайп имеет вполне конкретное приложение усилий, в последние годы этим приложением является ChatGPT. Но наличие хайпа не может и не должно заслонять главного: в мире существует огромный и объективный запрос на массовое применение технологий искусственного интеллекта. Этот запрос обусловлен ограниченностью определенных возможностей человеческого интеллекта (быстродействие, скорость принятия решений, объем и долговременность памяти и т. д.). Следовательно, современная платформа должна поддерживать соответствующее технологическое направление (искусственный интеллект), его развитие и применение в приложениях. Если в предыдущей книге автор писал, что «на сегодня применение искусственного интеллекта ограничивается решением узкоспециализированных задач: выявление мошенничества, диагностика заболеваний, формирование стратегии интеллектуальных игр (шахматы, го), принятие решений в области рисков, промышленная роботизация», то по прошествии времени можно уверенно сказать, что соответствующий рубеж пройден. Пусть пока и на относительно примитивном уровне, но решаются задачи комплексного характера, связанные с систематизацией научных исследований, разработкой программного кода, подготовкой судебных решений, развитой роботизацией и т. д. Нельзя не отметить, что современные решения искусственного интеллекта весьма ресурсоемки, требуют значительных вычислительных мощностей (что приводит даже к перекосам на фондовом рынке). Поэтому к задачам поддержки соответствующей тенденции развития архитектуры можно отнести в том числе и оптимизацию потребления ресурсов при решении актуальных задач, которые ставятся перед технологиями искусственного интеллекта.