2024/02/26 13:51:24

Константин Ващенков, «ХИ-квадрат»: Платформа XSQUARE-LCDP позволяет сохранить отраслевую команду разработчиков Oracle Forms/Apex

На вопросы TAdviser по проблематике замещения технологического стека Oracle, о продуктах и возможностях платформы XSQUARE-LCDP ответил Константин Ващенков, технический директор, «ХИ-квадрат».

Константин
Ващенков
Самый правильный ответ на вопрос: «Нужен ли Oracle, когда оборудование не относится к high-end классу от мировых производителей?», — «не нужен».

Значительная часть российских ведомств, крупных компаний все еще используют Oracle и другие западные системы. Как Вы оцениваете ситуацию в целом? Приходит ли понимание необходимости перехода с Oracle на российский технологический стек?

Константин Ващенков: Ситуация изменилась для организаций и, соответственно, информационных систем небольшого и среднего уровня. Самый правильный ответ на вопрос: «Нужен ли Oracle, когда оборудование не относится к высшему классу (high-end) от мировых производителей?», — «не нужен». Все задачи, которые раньше решались исключительно на Oracle, сегодня успешно решаются при помощи XSQUARE-LCDP. Исключением являются системы от мировых производителей (high-end), обрабатывающие от 10-15 терабайт данных в рамках одной монолитной системы, — к их замещению следует подходить очень взвешенно.

Как Вы позиционируете продукцию компании на рынке?

Константин Ващенков: На данный момент на российском рынке у нас два позиционирования. Первое — наиболее близкий клон Oracle Application для более быстрой миграции с Oracle, второе — платформа для разработки приложений, как некая альтернатива или, можно сказать, аналог «», но при этом нетребовательная к ресурсам.

Какие классы информационных систем можно заместить с использованием софта, созданного на базе платформы XSQUARE-LCDP?

Константин Ващенков: На данный момент среди наших заказчиков, большинство которых относится к корпоративному сегменту различного масштаба, от небольших компаний до очень крупных, мы заместили почти все классы информационных систем. Это и личные кабинеты сотрудников, и CRM-системы, и биллинговые продукты, и другие учетные системы. Например, в фондах Ростех и Ростелекома (АО «НПФ АЛЬЯНС» / АО «НПФ РОСТЕХ») к концу 2023 года нами было замещено 80% информационных систем, причем 20% из них находились в процессе эксплуатации. До конца 2024 года в НПФ Альянса не останется ни одной системы на Oracle, в НПФ Ростех произведено 100% — Oracle убит (замещен)!

Технологический стек Oracle включает множество продуктов. Какие из них способна заместить платформа XSQUARE-LCDP?

Константин Ващенков: Мы не предлагаем замену всей продуктовой линейки Oracle, конечно же, — это нереально, поскольку корпорация предоставляет несколько сотен программных продуктов. Речь идет о замещении продуктов семейства Oracle Application. Во-первых, это Oracle Forms, на которой до 2015 года создавалось в РФ большинство высоконагруженных учетных систем, во-вторых, — система построения отчетности Oracle Reports, в-третьих, — компонента Oracle Apex, предназначенная для создания фронтальных приложений. Кроме того, наши продукты замещают Oracle REST Data Services (ORDS) — сервис для публикации внешнего API, Oracle BI Publisher и среду разработки Oracle Apex Developer.

И какие именно продукты входят в состав платформы XSQUARE-LCDP?

Константин Ващенков: Наша платформа состоит из четырех продуктов: сервер приложений XSQUARE-PGHS, среда разработки XRAD, сервер отчетов REPORTS и API-сервер XSQUARE-DAC (Data Access Component). Сервер отчетов REPORTS позволяет генерировать печатные формы в форматах бинарный DOCX, XLSX, PDF. Компонент XSQUARE-DAC позволяет превратить базу данных в RESTful API сервер. Эти четыре компонента, созданные нами c нуля, один в один повторяют Oracle Application.

Особенно мы хотим отметить, что XSQUARE-LCDP не является fork-ом/ответвлением какого-то Open Source-продукта и представляет собой 100% собственную разработку.

Для создания замещающих систем требуется очень хорошее знание продуктов Oracle. У компании большой опыт в этом отношении?

Константин Ващенков: Первоначально мы были девелоперами Oracle со статусом Oracle Developer Professional по различным продуктам, отсюда и отличное знание всех продуктов линейки вендора, их «+» и «-». В созданных нами системах программисту комфортно работать, поскольку среда разработки XSQUARE-LCDP и визуально, и функционально практически та же. И если одновременно открыть Oracle Apex и XRAD, очевидно, что XSQUARE-LCDP покрывает 95-97% возможностей Oracle Apex. Но под капотом другие принципы функционирования, которые позволяют нашему продукту превосходить Oracle по различным параметрам от 5 до 50-ти раз.

Это особенно важно при функционировании на платформе Эльбрус, так как мы должны компенсировать недостаток производительности на аппаратном уровне (CPU Эльбрус) программными средствами.

О преимуществах платформы XSQUARE-LCDP мы еще поговорим. Расскажите немного о себе — где работали, приобретали опыт, позволяющий руководить разработкой таких непростых систем?

Константин Ващенков: Прежде чем стать идеологом и техническим директором XSQUARE долгое время я работал прикладным программистом. В 23-24 года получил несколько профессиональных статусов сертификации по продуктам Oracle (Form Developer, Apex Developer, Database Professional / Performance Tuning и др.). Кроме того, у меня высшее математическое образование, красный диплом.

Какой вуз заканчивали?

Константин Ващенков: Моя А́льма-ма́тер — «Можайка», красный диплом математика/криптографа/программиста, далее СПбГЭТУ «ЛЭТИ», далее — MBA.

Где начинали карьеру?

Константин Ващенков: В компании Leaves. Работая в ней, я участвовал в создании ряда программных продуктов для Мосводоканала/Петербургского водокала и т.д., которые до сих пор функционируют. В частности, основная учетная система написана на Oracle Forms. Затем я создавал софт на Oracle Apex для крупнейших российских финансовых организаций. К 2015 году нами было запущено несколько сотен высоконагруженных инсталляций на Oracle Apex и Oracle Forms для компаний финансового рынка РФ.

Что послужило толчком для начала работы по созданию собственной платформы?

Константин Ващенков: В НПФ «Лукойл-Гарант», где работала одна из наших высоконагруженных инсталляций на базе Oracle, в течение года было заключено более миллиона контрактов с физическими лицами. Высокая нагрузка выявила в Oracle несколько узких мест: устаревший графический интерфейс, монолитная архитектура, которая при масштабировании из преимущества превращается в большой недостаток, высокие требования к пропускной способности сети, резкий рост потребности в ресурсах из-за использования для создания приложений языка Java. Это и стало толчком к тому, чтобы в 2015-2016-ом годах в неявном виде мы начали разрабатывать собственную платформу.

Когда состоялось первое внедрение платформы?

Константин Ващенков: По итогам наших разработок к 2020 году на базе АО «Нижегородский Водоканал» мы переписали основные компоненты Oracle Application, но они еще не были объединены в платформу.

Первое внедрение платформы XSQUARE состоялось в 2020 году в АО «Водоканал» (Якутия). По итогам внедрения были созданы системы Личный кабинет и CRM-система. Этот проект мы реализовали совместно с Савиновым Николаем Афанасьевичем. Именно тогда состоялось первое 100%-е импортозамещение Oracle на первую версию нашей платформы.

Хочется подчеркнуть, что произошла естественная эволюция платформы, ее создание не было связано с импортозамещением. И на сегодня XSQUARE-LCDP качественно значительно превосходит Oracle Application по производительности и отчасти по функционалу.

Итак, мы переходим непосредственно к преимуществам платформы. За счет чего XSQUARE-LCDP превосходит технологический стек разработчика Oracle?

Константин Ващенков: Ядро сервера приложений построено на компилируемом Си-подобном языке программирования. У нас табу на использование таких языков как Java, C#, PERL, интерпретируемых языков или языков с промежуточным слоем исполнения из-за их крайне низкой производительности. В результате мы смогли создать систему, эффективно работающую при низком потреблении вычислительных ресурсов. Например, в информационных системах НПФ «Благосостояние» (дочерняя структура ПАО РЖД) обрабатываются данные полутора миллионов человек, при этом объем потребляемой оперативной памяти системы, находящейся в промышленной эксплуатации, составляет всего 120-150 Мб оперативной памяти.

Аналогичная ситуация в части требований к пропускной способности сети. Мы написали специальный веб-контроллер, обращающийся к серверу приложений только за метаданными по страницам. Сборка страницы осуществляется полностью в браузере и поэтому требования к пропускной способности канала, необходимого для генерации и передачи трафика, составляет от 1 до 10 Кб. У нас есть проект по импортозамещению в НПФ Ростеха, где объем трафика, необходимого для запроса составляет 250 байт, а для рендеринга страниц — 10 Кб.

Не обернулась ли такая минимизация требований к пропускной способности канала неожиданными побочными эффектами?

Константин Ващенков: Конечно, обернулась. Мы портировались на «Эльбрус 2с» и «Repka-Pi» (смеется).

Вернемся к технологическому стеку Oracle. Его ядро — база данных Oracle Database, аналога которой не было создано. Какую СУБД компания предлагает взамен?

Константин Ващенков: В качестве базы данных мы используем ванильный PostgreSQL, а также его коммерческие форки, представленные на российском рынке, — СУБД Postgres Pro, Tantor, Pangolin, Jatoba. У платформы имеются сертификаты соответствия на совместимость со всеми этими четырьмя СУБД. Так же XSQUARE-LCDP имеет сертификаты соответствия с большинством отечественных ОС, а именно Astra Linux, RED OS, Alt Linux, Rosa

Но PostgreSQL уступает Oracle по ряду параметров. Как решается эта проблема?

Константин Ващенков: Действительно, ванильная PostgreSQL уступает Oracle Database по производительности и главное — по масштабируемости. Условно говоря, при нагрузке более тысячи одновременных сессий начинаются проблемы. Чтобы решить проблему недостаточной производительности Postgres при высоких нагрузках, было предпринято следующее. Во-первых, мы разделили базу данных приложений (Application DB) и метабазу (Metabase), разместив их в разных инсталляциях Postgres. Во-вторых, мы сделали так, чтобы лоукод-компоненты платформы могли обращаться сразу к нескольким базам данных — реализовали так называемый логический шардинг. На уровне сервера приложений мы ввели такое понятие, как источник данных (Data Source), так что абсолютно любой компонент на странице может подключаться к разным источникам данных.

Как это работает на практике?

Константин Ващенков: Например, вы создаете заявку по клиенту. Для этого обращаетесь к базе данных клиентов, где получаете их список, затем — к базам данных заявок, с адресами и сопутствующими сервисами. Соответственно, компоненты на странице с необходимыми правами доступа стучатся в разные базы и получают требуемую информацию. Таким образом, если имеется большое, высоконагруженное приложение с несколькими тысячами страниц, работающее на Oracle, то при миграции на наш технологический стек программист распределяет по разным базам данных, делается требуемое количество репликаций баз данных PostgreSQL. С точки зрения программиста сохраняется монолитная среда разработки, как он и привык работать в Oracle Forms и Oracle Apex, только разные фрагменты коды исполняются в разных базах данных, а от него требуется только корректно выбрать источник данных (Data Source). Таким образом, мы сделали логическое фрагментирование данных (шардинг) или, другими словами, монолитное приложение с горизонтальным масштабированием.

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

Что это дает?

Константин Ващенков: В СУБД PostgreSQL после одной тысячи одновременных сессий начинаются проблемы, которые в каком-то объеме решают коммерческие форки Postgres. Сервер приложений, получив информацию о том, как работает интеграционный сервис, XSQUARE-PGHS может ходить в другое приложение посредством RESTful API, не беспокоя базу данных. А XSQUARE-PGHS масштабируется/кластеризуется одним кликом мышки.

Какие еще проблемы имеются у базы данных Postgres?

Константин Ващенков: Postgres не любит смешанную нагрузку. Например, операционисты работают в условной учетной системе — делают проводки, выписки и так далее, и зачастую становится необходим некий большой аналитический отчет. Формирование этого отчета может занять почти весь ресурс базы данных. Эта проблема решается тем же способом — для программиста и пользователя XSQUARE-LCDP остается монолитом, но транзакционные операции выполняются в одной БД, а аналитические — в другой (обычно реплике с какой-то задержкой).

Какое максимальное количество репликаций баз данных при логическом шардинге встречалось на практике?

Константин Ващенков: Пятнадцать.

Какие-либо преимущества платформы XSQUARE еще остались за бортом нашей беседы?

Константин Ващенков: Сервер приложений XSQUARE-PGHS может быть отмасштабирован горизонтально, фактически неограниченно, «спрятан» за Apache или Nginx, которые выполняют балансировку нагрузки. Таким образом, у нас получается древовидная структура: берем Apache или Nginx, за ним устанавливаем ферму приложений, а за ними — ферму из баз данных.

Как долго происходит процесс обучения программиста?

Константин Ващенков: Когда мы говорим про импортозамещение, один из основных моментов — необходимость сохранить команду разработчиков Oracle и отраслевую компетенцию. Команды разработчиков на Oracle Apex переходят на стек XSQUARE-LCDP в течение двух дней, на Oracle Forms — за неделю.

Какие процессоры поддерживает XSQUARE-LCDP?

Константин Ващенков: XSQUARE-LCDP поддерживает различные аппаратные платформы. На Западе в качестве основной облачной серверной платформой используется ARM (Advanced RISC Machine), и мы ее полностью поддерживаем, в том числе — Baikal. Из отечественных архитектур поддерживаем Эльбрус. И третья поддерживаемая нами архитектура — x86-64.

Платформа XSQUARE-LCDP уже используется во многих крупных ведомствах и компаниях. В чем особенность проекта внедрения в АО НПФ «Альянс»?

Константин Ващенков: В рамках проекта в НПФ «Альянс» мы брали на тестирование «Эльбрус 2с», «Эльбрус 8с», и на последнем достигли производительности в 200 RPS, что означает одновременную работу двухсот пользователей.

Де-факто в НПФ «Альянс» произошло почти полное импортозамещение Oracle, и системы уже работают в промышленной эксплуатации. В первом или втором квартале будет осуществлена миграция публичного личного кабинета на платформу «Эльбрус 8с». Тестовая миграция уже осуществлена, нагрузочные испытания пройдены, в настоящее время идут работы по запуску в боевую эксплуатацию в виде публичного сервиса на отечественном микропроцессоре.

Основной вопрос, который сейчас решается, — это смешанное функционирование программного продукта на двух платформах. Если процессор «Эльбрус» вдруг выходит из строя, система должна продолжить функционировать на архитектуре x86, верно и обратное, причем переключение должно произойти незаметно для пользователя.

Все тестовые процедуры пройдены в конце прошлого года. Мы получили сертификаты МЦСТ о совместимости XSQUARE-LCDP с процессорами Эльбрус. Сейчас идет закупка оборудования для ЦОД, по сути — организационные мероприятия.

Вернемся к самой платформе XSQUARE. Уточните, пожалуйста, библиотеки свободного кода вообще не использовались при создании XSQUARE?

Константин Ващенков: Сервер отчетов REPORTS и XDAC мы написали полностью самостоятельно, не используя ни одной библиотеки Open Source. И сделали так абсолютно сознательно, поскольку не хотим зависеть от форков открытых продуктов, ведь их использование задает платформе вектор развития. В сервере приложений XSQUARE-PGHS и среде разработки XRAD присутствуют свободные компоненты, но их количество минимально. Если открытый компонент можно переписать, то мы его переписываем, и это одна из основных задач 2024 года. Этим мы, во-первых, защищаемся от зависимости, во-вторых, — от вредоносных закладок, и в-третьих, выстраиваем внутреннюю компетенцию, а не паразитируем на чужой.

Как работаете с клиентами, напрямую или через партнеров?

Константин Ващенков: С клиентами мы работаем и напрямую, и через партнеров, но основной канал — все-таки партнерский. Среди партнеров присутствуют ОТР, РДТЕХ и ряд других из числа компаний, ранее активно работавших с Oracle. Список партнеров представлен на сайте.

Планы на этот год по развитию платформы, реализации новых кейсов?

Константин Ващенков: У платформы четыре вектора развития. Первый — создание нового функционала, 30% которого появляется на основании запросов наших партнеров, транслирующих пожелания заказчиков, или тех, которые мы получаем от заказчиков напрямую. Второй вектор — внутренняя дорожная карта, в которой тоже выделяется несколько направлений. И третий большой вектор в наших планах — локализация продуктов на платформе Эльбрус. Четвертый вектор развития — мультиязычность, которую платформа поддерживает на уровне ядра. Добавление нового языка, например, — французского, занимает пару дней. На сегодня поддерживается два языка, английский и русский.

Расскажите о направлениях развития по внутренней дорожной карте.

Константин Ващенков: Во-первых, мы улучшаем среду разработки XRAD. Сейчас программисту требуется пять минут, чтобы сделать небольшое приложение, а мы хотим, чтобы это делалось за одну минуту. Это даст существенное ускорение в разработке больших приложений, насчитывающих несколько сотен страниц. Ускорение разработки информационных систем напрямую влияет на маржинальность нашего партнера, и для нас это безусловный приоритет. Второе направление в рамках внутренней дорожной карты — множественность источников данных в виде разных баз данных. И третье — развитие партнерской сети с целью увеличения количества типовых коробочных продуктов, работающих на платформе XSQUARE.

Мы начали беседу с того, что на сегодня остается еще много ведомств, крупных предприятий, продолжающих работать на системах Oracle. Это их устраивает и может еще долго устраивать, по разным причинам — инертность мышления или бизнес-интересы интеграторов, внедрявших решение. На Ваш взгляд, почему технологический стек Oracle все-таки необходимо менять? Основные побудительные причины?

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

Риски миграции, страхи все равно остаются, и проблемы — попробуй-ка переписать тысячи форм, созданных в Oracle. Как их преодолеть?

Константин Ващенков: На примере АО НПФ «Альянс» и ряде других заказчиков нами был выбран следующий подход: в качестве внешних источников данных используется не только Postgres, но и Oracle Database. Собственно, технология множественности источников данных создавалась нами, в том числе, и для этого — чтобы иметь возможность подключать Oracle Database/MS SQL /DB 2 вторым, третьим и так далее источником данных.

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

Ознакомиться с продуктами линейки XSQUARE-LCDP можно на сайте.