ibso цфт что это

Миграция данных или как мы поменяли АБС в РСХБ. Часть 1

Hello, world! Меня зовут Руслан, я работаю в отделе внедрения АО «Россельхозбанк» и в этой статье поделюсь с вами, как мы переносили данные из АБС «БИСквит» в систему ЦФТ-Банк. Если вы так же, как и мы когда-то, задумаетесь о смене основной банковской системы или уже находитесь в этом процессе, то вам, определенно, сюда!

В случае с нашим банком сам по себе непростой процесс миграции с одной АБС на другую был усложнен большим объемом переносимых данных: более 12 миллионов клиентов, 25 миллионов депозитов и 2-х миллиардов документов. Сейчас в банке работают 68 региональных филиалов, размещенных централизованно в одной автоматизированной банковской системе (АБС) с единой клиентской базой. Для достижения такого результата потребовалось около восьми лет: начиная с централизации разрозненного набора самостоятельных региональных филиалов и заканчивая миграцией в ЦФТ. Стоит отметить, что у каждого из филиалов банка был отдельный «БИСквит» с особенностями ведения тех или иных продуктов/состояний базы данных (БД).

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

1. Особенности выбора и подготовки инструментов миграции.

Из-за децентрализации системы «БИСквит» в разных филиалах использовался разный набор таблиц базы данных, а также разнились подходы к ведению бизнес-данных. Поэтому первый вопрос, на который предстояло ответить нашей команде, звучал так: «Данные из каких таблиц нужно переносить из одной АБС в другую?». Для решения этой задачи был проведен анализ существующих в банке продуктов, собрана статистика по количеству записей в таблицах БД в разрезе филиалов и определен перечень значимых сущностей для миграции.

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

Ко всему прочему нам нужно было ограничить объем данных для миграции, учитывая количество филиалов в банке и большое количество бизнес-данных. Поэтому волевым решением определили, что в новую АБС переносим только действовавшие в текущем году объекты/договоры (кредиты, депозиты и т.п.) и данные по балансу (документы и счета) с глубиной в 3 года от даты миграции.

Как уже упоминалось выше, в нашем банке используется система ЦФТ-Банк. Систему ЦФТ-Ритейл-банк нам заменила подсистема «R2 – Розница» (это отдельная большая история, которая потянет на еще один рассказ 🙂 ). Для миграции большего объема данных продуктов физиков (относительно юриков) технология инструментов миграции была разделена на следующие части:

1. Миграция продуктов «R2 – Розница»: кредиты, депозиты, карты, страховки, резервирование физических лиц. Отличие миграции продуктов Розницы от остальных продуктов заключается в миграции данных в несколько этапов:

— заполнение миграционных таблиц (так называемые M#);

— подготовка и перенос данных в таблицы-прототипы (так называемые P#);

— перенос в целевые таблицы.

Во время самого переноса из таблиц-прототипов (P#) в целевые таблицы (Z#) предполагается отключение всех пользователей от БД, отключение индексов и ограничений.

Применение такого подхода к миграции продуктов Розницы связано исключительно с их большим объемом (60-65% от общего объема мигрируемых данных) и необходимостью выполнения ряда преобразований (из-за различий в структуре таблиц БИСквит и ЦФТ).

2. Миграция всех остальных сущностей: пользователи, клиенты ФЛ и ЮЛ, кассы, депозиты и кредиты юридических лиц и пр. Миграция этого типа продуктов выполнялась с помощью стандартного инструмента загрузки данных в ЦФТ-Банк – «универсального импорта», при помощи которого данные из файлов загружались в таблицы универсального импорта, а затем сразу в целевые таблицы.

2. Тестирование и отладка инструментов миграции.

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

— выгрузка некорректных данных в отчет по определенному алгоритму (в зависимости от вида ошибок) с последующим ручным исправлением. Подход применим как для источника, так и для приемника;

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

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

Читайте также:  Что значит чихуа хуа

Итак, миграция в ЦФТ разделялась на:

· миграцию Ядровой части и ЦФТ-Банк (так называемое ИБСО, через универсальный импорт);

· миграцию продуктов Розницы.

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

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

1) Файлы выгрузки всех розничных объектов собираются в единый каталог;

2) Запускается инструмент, группирующий файлы по определенным маскам имени файлов и приводящий их имена к единообразию;

3) Запускается инструмент, формирующий файл с перечнем имен файлов, реквизитами из этих файлов и порядковым номером реквизита в файле (назовем его «FB_METADATA.EXP»).

Первым при импорте Розницы загружается файл FB_METADATA.EXP. Таким образом, решаются следующие задачи:

а) сверяется структура выгруженных таблиц с предсозданными таблицами M# в БД Oracle, что позволяет выявить ошибки экспорта или настройки таблиц M#;

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

4) После генерируются скрипты для загрузки данных с FIO с помощью SQLLoader в три этапа:

1. импорт данных из файла в техническую таблицу (T#);

2. вставка данных из технических таблиц в таблицы миграции (M#);

3. удаление созданной технической таблицы.

5) На заполненных M# создаются заранее определенные индексы и выполняются ручные проверки данных на корректность (скриптами с помощью SQLDeveloper). На этапе заполнения таблиц миграции мы имеем в базе «плоские» данные (данные, в которых не восстановлена ссылочная целостность).

После проверки выгруженных данных и подтверждения их корректности можно приступать к подготовке к переносу в конечные таблицы, который состоит из ряда этапов:

1) Заполнение таблиц прототипов (P#) с резервированием идентификаторов (ID) для новых записей;

2) Восстановление ссылок на записи (таблицы R#) и на массивы (таблицы C#) для новых ID;

3) Восстановление ссылок на уже существующие в БД записи (таблицы E#).

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

3. Внедрение пилотного филиала.

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

Дальше нас ждала подготовка к миграции филиала с наличием архивного «БИСквита» (в результате слияния двух «БИСквитов») и к миграции нескольких филиалов за раз одновременно! Но об этом, а также об особенностях миграции в новую АБС карточек клиентов, поговорим в следующий раз.

Источник

Микросервисная архитектура

Возможность работы 24х7:

Платформа 1

Платформа 2 MCA

Неограниченная масштабируемость

Трехуровневая архитектура Платформы 2 МСА обеспечивает неограниченные возможности масштабирования и централизации. Масштабируемость возможна как на уровне серверов приложений, так и на уровне серверов БД.

За счет разделения прикладной логики и базы данных реализована возможность масштабировать систему не серверами класса high-end, а серверами уровня middle-range или даже серверами нижнего уровня. В качестве сервера базы данных используется сервер middle-range, а система масштабируется серверами приложений, суммарная процессорная мощность которых будет стоить банку в 10 раз дешевле, чем high-end сервер такой же мощности.

БАЗОВЫЕ ПРИНЦИПЫ ПОСТРОЕНИЯ

Мультиплатформенность

Преемственность Платформ ЦФТ

Для банков, где уже установлены банковские системы ЦФТ на Платформе 1 переход на Платформу 2 МСА – это всего лишь перенос прикладной части систем на новое технологическое ядро.

Феноменальная производительность

Платформа 2 МСА обеспечивает одновременное обслуживание до 100 000 пользователей и поддержку до 100 000 000 счетов клиентов в единой базе данных в режиме реального времени.

Высокие показатели производительности и масштабируемости технологической платформы подтверждены в рамках тестирования информационного банковского комплекса ЦФТ-Банк (Платформа 2 MCA), развернутого на сервере баз данных на основе платформы HP Superdome с СУБД Oracle 10g.

Анализировалась зависимость производительности аппаратно-программного комплекса от количества сессий. Начальные показатели:

В процессе тестирования анализировались следующие параметры загрузки аппаратных ресурсов системы:

Результаты сравнения ЦФТ-Платформа 2 MCA и ЦФТ-Платформа 1

Проведенные испытания продемонстрировали большие возможности масштабирования систем на базе технологического ядра нового поколения Платформа 2 MCA с обеспечением более чем пятикратного увеличения производительности используемого оборудования.

Источник

Как в ЦФТ реализовать то, что мы всегда делали в Бисквите (с примерами)

Прошло еще 10 лет и от Бисквита стали банки отказываться. И вот в 2019 году я оказался в крайне неприятной ситуации: я отлично знаю только то, что уже мало кому нужно. Осенью 2019 года я получил отличное предложение от РСХБ-ИНТЕХ, где я сейчас и работаю. Я устроился туда выполнять задачи по разработке в системе Бисквит и одновременно изучать систему ЦФТ на языке программирования Pl Plus. Уже на испытательном сроке мне назначили 14 учебных курсов на учебном портале ЦФТ и стали давать элементарные задачки по разработке в системе ЦФТ. А примерно с лета 2020 года я полностью перешел на разработку в системе ЦФТ (и этому очень рад).

Эта статья о том, как сделать в ЦФТ то, что мы привыкли делать в Бисквите. Начинал я ее писать только для себя, чтобы упорядочить свои знания. Однако потом оказалась, что эта тема важна для всех разработчиков, которые переходят на ЦФТ и не только с Бисквита. Именно поэтому я решил разместить ее на Хабре.

Покажу на примерах

MESSAGE “Hello world”.

MESSAGE “Hello world” VIEW-AS ALERT-BOX.

+ (для цифр) +

+ (для строк) || (конкатенация)

= (для сравнения) =

= (для присваивания) :=

Источник

Не так страшен черт, как его малюют: как мы перевели разработку ЦФТ-Банк на платформу CFT Platform IDE (Admin 2.0)

Финансовые компании находятся в поисках лучших решений, которые оптимизируют внутренние процессы разработки, разовьют IT-инфраструктуру в соответствии с требованиями бизнеса и позволят им выводить на рынок лучшие конкурентные продукты. Так, два года назад мы ступили на путь перевода разработки ЦФТ-банк на платформу CFT Platform IDE. Среди коллег по цеху ходят слухи, что это процесс невероятной сложности, ввиду чего не решаются приступить к делу. На своем примере мы докажем, что это вполне подъемный процесс и для вашей команды.

Процесс разработки ПО в НРД в большинстве случаев характерен наличием нескольких команд разработчиков, которые лавируют между проектами, занимаясь разными модулями одной или даже разных систем. В работе у нас постоянно большое количество доработок и приходится держать несколько dev и test-контуров с разными версиями системы. Таким образом, всегда есть необходимость доступа к централизованному хранилищу кода с поддержкой версионности, обеспечением автоматической сборки и установки. Для системы ЦФТ-Банк на протяжении многих лет таких возможностей не было.

ЦФТ-Банк – это автоматизированная банковская система ЗАО «Центр финансовых технологий». Она характерна использованием собственного языка программирования pl/plus и, как следствие, возможностью применения только собственных средств разработки, предлагаемых вендором системы. Код системы открытый, с ограниченными возможностями модификации дистрибутивных модулей и с широкими возможностями создания своих собственных модулей.

Это порождало лишние затраты на подготовку сборок, merge-изменений и т.д. Часто возникали случаи порчи программного кода, т.к. следить за правильностью версиии той или иной программной компоненты могли только сами разработчики в полностью ручном режиме. Однако поменять подход к разработке для системы ЦФТ-Банк было невозможно ввиду существования безальтернативной среды разработки для этой системы, по своему интерфейсу и возможностям отставшей от жизни лет на 15.

Решение наших проблем было предложено ЦФТ с выводом на рынок в 2018 г. новой платформы разработки для своих систем, которая называется CFT Platform IDE (она же Admin 2.0, или сокращённо A2).

Ключевые отличия новой платформы разработки

Внешне разработчик получает среду, реализованную на основе Eclipse Platform, которая гораздо симпатичнее архаичного Администратора словаря данных.

Для сравнения редактирование кода в старой среде (Администратор словаря данных):

Редактирование кода в Admin 2.0:

Но основным преимуществом новой платформы разработки для нас явилась возможность хранения программного кода системы, а также экранных форм, описаний типов и прочего в виде множества текстовых файлов. Именно это позволяет выгружать код в систему контроля версий (в нашем случае Git) со всеми её возможностями, которых нам так недоставало ранее при разработке для ЦФТ-Банк.

Таким образом, разработчикам ЦФТ-Банк стала доступна возможность комфортно отслеживать историю изменений каждого объекта, включая не только время редакции, но и сравнение старой и новой версий через встроенный компонент либо с помощью любого внешнего средства типа Araxis Merge. Тому, кто не знаком с ЦФТ-Банк, это покажется удивительным, но ранее о таком приходилось только мечтать, храня историю изменений лишь в виде комментариев в коде.

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

Отмечу, что новый админ оказался в хорошем смысле более привередлив к синтаксическим конструкциям в коде. Среди наших локальных доработок были выявлены очень странные выражения, например, что-то наподобие:

Непонятно, как Администратор словаря «переваривал» подобное без ошибок. Причём, если первые 2 примера представляют собой безобидный мусор, то последнее — явная ошибка, которая приведёт к некорректной работе программы.

И ещё одной особенностью Admin 2.0 является, благодаря интеграции с Git, функционал получения списка изменений на основе сравнения 2-х веток.

Это позволяет выполнять развёртывание этих изменений в целевую БД. Затем изменения из БД можно выгрузить по тому же списку элементов, используя старый Администратор проектов, в mdb-файл, если их необходимо передать для установки в БД, куда разработчик не имеет прямого доступа. Однако более интересным вариантом является подготовка и развёртывание изменений в новом формате. Он представляет из себя zip-архив, внутри которого находятся текстовые файлы с кодом, а также некоторая метаинформация. Побочным эффектом является возможность просмотреть и даже изменить код в передаваемой поставке без установки в какую-то БД, что в случае с mdb-форматом было невозможно. Но самое основное – сохранение в этот новый формат из Git-репозитория и развёртывание в БД Admin 2.0 предусматривает делать и в безинтерфейсном режиме, что позволяет настроить автосборку и автоустановку, т.е. наконец говорить о CI/СD в применении к доработкам ЦФТ-Банк. Правда, данную тему я планирую подробно раскрыть уже в следующей статье.

Особенности перехода на новую платформу

Материальный вопрос

Первое, с чем пришлось столкнуться — получение лицензий на рабочие места. На каждое рабочее место разработчика требуется отдельная лицензия, которая привязана сразу и к железу ПК, и к учётной записи пользователя. Если у вас в компании тоже несколько изолированных сетей, где есть сервера с ЦФТ-Банк, и ведётся разработка на них, то на одного разработчика потребуется купить несколько лицензий Admin 2.0. Стоимость одной лицензии на момент написания статьи составляет 125 у.е./мес., или около 8 тыс. руб. по внутреннему курсу. За первоначальную покупку на данный момент деньги не взимаются. Лицензии распространяются в виде файлов, а не смарт-ключей, что позволяет без проблем развернуть среду даже на виртуальной станции.

До покупки можно договориться о предоставлении тестовых лицензий. В нашем случае были получены 6 лицензий со сроком действия — 4 месяца на бесплатной основе. Условия обсуждаются с персональным менеджером индивидуально.

Настройка рабочих мест и БД

Серверную часть IDE можно устанавливать и в рабочее время, но правильней будет, если в момент установки не будут открыты на редактирование программные объекты ЦФТ, т.к. основное в обновлении — это новый механизм соответствующих блокировок.

Клиентская часть — это, по сути, Eclipse с расширениями CFT Platform IDE, устанавливается без прав администратора ПК. Только заранее должна быть установлена JRE не ниже 8-й версии. Доступ к обновлениям IDE на сайте ЦФТ теперь открытый, без авторизации. Можно настроить обновления непосредственно через сайт, либо из локальной сети. Например, из сетевой папки или с использованием менджера репозиториев вроде Nexus. Мы выбрали вариант сетевой папки как самый простой в настройке, не требующий доступа в Интернет со всех рабочих мест, надёжный, что важно при настройке тяжелых обновлений, и гибкий ввиду возможности выкладывать обновления по своему расписанию.

Выгрузка кода локального приложения

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

Отмечу, что при большом объёме локального приложения среда разработки начинает тормозить, поэтому в такой ситуации необходимо будет деление исходников на актив и архив. К счастью, в лимит мы вписались при немалом объёме локала. Однако стоит учесть объём оперативной памяти рабочих станций. Согласно документации требуется не менее 16Гб, хотя некоторое время части наших разработчиков удавалось работать и на 8Гб памяти, надо было лишь отрегулировать объём памяти java-приложения в файле eclipse.ini.

Что касается выгрузки — процедура несложная, т.к. все необходимые скрипты, такие как для подсчёта объёма приложения, для получения списка объектов и другие входят в комплект поставки.

Адаптация кода

Адаптация заключалась в дополнении того, что не собрал скрип, например, прогрузились не все ссылки на таблицы в чистом Oracle, некоторые ТБП со сложным подчинением — в единичных случаях не подгрузились типы ссылок или массивы. Также надо было слегка подчистить код (см. примеры выше). Но самое главное — подстроить код под новые особенности:

Результат

Серьёзных проблем при адаптации не было. Нам посчастливилось «познакомиться поближе» со своим кодом. В процессе мы выявили недочёты в IDE и даже в технологическом ядре (в компиляторе), которые сейчас ЦФТ уже исправил.

Большую помощь нам оказали специалисты ЦФТ, которые оперативно реагировали на возникшие проблемы, а в случае замедления процесса внедрения с нашей стороны всячески нас стимулировали и поддерживали интерес. После всех этих подготовительных действий мы запросто настроили интеграцию Eclipse с Git и выгрузили в него код текущей версии.
Нам потребовалось создать регламент ведения разработок, т.к. разработчикам ЦФТ-Банк пришлось привыкать работать совершенно в ином стиле: правильно маркировать коммиты, работать в нужной версии и пр. Сама методика работы стала соответствовать общим стандартам разработки в IT-компании.

Несмотря на первоначальное снижение скорости разработки, Admin 2.0 был сразу встречен в нашем коллективе с большим энтузиазмом. За 1-2 месяца активной работы все привыкли к новой среде, а эффективность возросла.

Сегодня Admin 2.0 до сих пор находится на стадии активных доработок, но это гораздо менее сырой продукт, чем 2 года назад. Например, только недавно появилась поддержка работы с группами доступа, пока работающая с ошибками. Также развёртывание в безинтерфейсном режиме может завершаться с ошибками при наличии в коде макросов. Большинство недочетов, которые мы фиксируем, ЦФТ устраняет в пределах месяца. За эти 2 года мы использовали отличную возможность повлиять на развитие Admin 2.0. Сегодня компании, которые задумали подобный переход, смогут пройти этот путь ощутимо быстрее.

Источник

Читайте также:  что делать если в bluestacks не работает управление
Сказочный портал