Рост производительности и надежности благодаря разделению систем

Россия
Обновлено: 2024-12-07

В апреле 2014 г. в рамках кластера «ВИК-СТОП-лист» стратегической программы «Надежность 99.99» специалистами ЦСIT и ЦК «Биллинг и процессинг» Департамента развития фронтальных систем и электронных каналов обслуживания Сбербанк Технологии было реализовано решение по разделению автоматизированной системы «ВИК» на две отдельные системы – «СТОП-ЛИСТ» и «ВИК-Договоры».

Многослойный яркий фрукт

Источник фото: Lori Greig / CC BY-NC-ND

В августе был дополнительно проведен комплекс мероприятий по устранению узких мест в целевой архитектуре кластера «ВИК-СТОП-лист». В результате значительно вырос уровень надежности и доступности обеих систем, был обеспечен запас производительности для уверенного роста показателей бизнеса.

Предпосылки разделения системы

Система «ВИК» просуществовала в неизменном виде около 10 лет. Изначально планировалось, что эта система будет работать с небольшим количеством клиентов (юридическими лицами, физическими лицами и ИП).

К 2010 году из-за значительного увеличения числа клиентов, имеющийся комплекс технических средств перестал выдерживать нагрузку. Тогда же от бизнес-владельцев системы поступили требования реализации онлайн запросов к АС «СТОП-лист».

Крупные внешние системы, такие как ЕРИБ, Кредитная фабрика, Филиал Сбербанк, Инфобанк, не устраивало, что выгрузки информации проводились лишь 2-3 раза в день. Им постоянно была нужна самая актуальная информация для оперативного обслуживания клиентов, а также для исполнения Федеральных законов (ФЗ), требующих полную информацию о клиенте.

Требовалось также обеспечить обработку онлайн запросов к системе «ВИК-Договоры» из внешних систем (ФП ЗП АС Юпитер, ФП Выплаты АС Юпитер, CRM Розничный) для ускорения загрузки и получения информации по зарплатным, вкладным и карточным договорам.

Слагаемые успеха:

  • Четкое планирование сроков и трудозатрат
  • Выверенные архитектурные решения
  • Налаженное взаимодействие с отделом розничных бэкофисных систем Управления сопровождения платформы «Салют»
  • Максимальное использование возможностей оборудования (серверов приложений, баз данных)
  • Применение инновационных технологий обработки и хранения информации
  • Хорошо подобранная команда разработчиков проекта

Реализация проекта разделения систем

В октябре 2013 года было проведено нагрузочное тестирование, которое показало, что необходимо провести разделение систем «СТОП-лист» и «ВИК-Договоры» с одновременной модернизацией комплекса технических средств.

После проведения подготовительных работ 15 апреля 2014 года разделение было осуществлено. Было реализовано разделение единой базы данных на две – АС «СТОП-лист» и «ВИК-Договоры». Для линейного масштабирования нагрузки были созданы кластеры серверов приложений WebSphere Application Server 8.5.5 для каждой системы на отдельных КТС.

Итоги разделения «СТОП-ЛИСТ» и «ВИК-Договоры»:

  1. Обеспечена возможность онлайн-запросов к системе «СТОП-лист» из внешних систем. Сейчас система может обрабатывать 12 млн. запросов в сутки.
  2. Система «ВИК-Договоры» может обслуживать 153 тыс. зарплатных договоров.

«СТОП-лист» – централизованная автоматизированная система уровня mission-critical, которая осуществляет сбор и хранение массивов негативной информации по всем клиентам Сбербанка.

«ВИК-Договоры» – централизованная автоматизированная система уровня businesscritical, которая предназначена для хранения и обслуживания всех вкладных и карточных зарплатных, а также социальных договоров юридических лиц и ПБОЮЛ.

Перспективы

К концу 2014 года ППО обеих систем будет переведено на СУБД Oracle. В 2015 году будет обеспечена доступность 24х7 для «СТОПлист» и «ВИК-Договоры».

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


5.0/1

'); } else if( response.status ) { if( response.status == 'message_spam' ) { context.elem.text(uCoz.spam.sign.notSpam).attr('data-not-spam', '1'); var toggle = $('#report-spam-toggle-wrapper-' + response.message_id); if( toggle.length ) { toggle.find('.report-spam-toggle-text').text(uCoz.spam.sign.hidden); toggle.find('.report-spam-toggle-button').text(uCoz.spam.sign.show); } else { toggle = $('
' + uCoz.spam.sign.hidden + ' ' + uCoz.spam.sign.show + '
').hide().insertBefore(context.target); uCoz.spam.handleDOM(toggle); }; context.target.addClass('report-spam-hidden').fadeOut('fast', function() { toggle.fadeIn('fast'); }); } else if( response.status == 'message_not_spam' ) { context.elem.text(uCoz.spam.sign.spam).attr('data-not-spam', '0'); $('#report-spam-toggle-wrapper-' + response.message_id).fadeOut('fast'); $('#' + uCoz.spam.config.idPrefix + response.message_id).removeClass('report-spam-hidden').show(); } else if( response.status == 'admin_message_not_spam' ) { elem.text(uCoz.spam.sign.admSpam).attr('title', uCoz.spam.sign.admSpamTitle).attr('data-not-spam', '0'); } else if( response.status == 'admin_message_spam' ) { elem.text(uCoz.spam.sign.admNotSpam).attr('title', uCoz.spam.sign.admNotSpamTitle).attr('data-not-spam', '1'); } else { alert('uCoz.spam.report: unknown status: ' + response.status); }; } else { context.target.remove(); // no status returned by the server - remove message (from DOM). }; }, { elem: elem, target: target, height: height, margin: margin }); return false; }; uCoz.spam.handleDOM = function(within) { within = $(within || 'body'); within.find('.report-spam-wrap').each(function() { var elem = $(this); elem.parent().prepend(elem); }); within.find('.report-spam-toggle-button').not('.report-spam-handled').click(function(event) { if( event.preventDefault ) event.preventDefault(); var elem = $(this); var wrapper = elem.parents('.report-spam-toggle-wrapper'); var text = wrapper.find('.report-spam-toggle-text'); var target = elem.attr('data-target'); target = $(target); target.slideToggle('fast', function() { if( target.is(':visible') ) { wrapper.addClass('report-spam-toggle-shown'); text.text(uCoz.spam.sign.shown); elem.text(uCoz.spam.sign.hide); } else { wrapper.removeClass('report-spam-toggle-shown'); text.text(uCoz.spam.sign.hidden); elem.text(uCoz.spam.sign.show); }; }); return false; }).addClass('report-spam-handled'); within.find('.report-spam-remove').not('.report-spam-handled').click(function(event) { if( event.preventDefault ) event.preventDefault(); var messageID = $(this).attr('data-message-id'); del_item(messageID, 1); return false; }).addClass('report-spam-handled'); within.find('.report-spam-btn').not('.report-spam-handled').click(uCoz.spam.reportDOM).addClass('report-spam-handled'); window.console && console.log && console.log('uCoz.spam.handleDOM: done.'); try { if (uCoz.manageCommentControls) { uCoz.manageCommentControls() } } catch(e) { window.console && console.log && console.log('manageCommentControls: fail.'); } return this; }; uCoz.spam.handleDOM();
'); jQuery("form#socail_details input[name=social]").val(scurrent); jQuery("form#socail_details input[name=data]").val(data[scurrent]); updateSocialDetails(scurrent); }; jQuery('a#js-ucf-start').on('click', function(event) { event.preventDefault(); if (scurrent == 0) { window.open("//sys000.ucoz.net/cgi/uutils.fcg?a=soc_comment_auth",'SocialLoginWnd','width=500,height=350,resizable=yes,titlebar=yes'); } }); jQuery('.uauth-small-links a.login-with').on('click', function(event) { event.preventDefault(); var classList = jQuery(this).attr('class').split(' '); var social = providers[classList[1]]; if (typeof(social) != 'undefined' && social.enabled == 1){ if( social.handler ) { social.handler(social); } else {; //unetLoginWnd var newWin = window.open(social.url,"_blank",'width=640,height=500,scrollbars=yes,status=yes'); } } }); }); })(jQuery);