Sberbank International: работа в платформенной команде разработки
Всем привет! Многие IT-компании, да и мы в Сбере пытаемся принять на работу лучших сотрудников. Часто наши HR-специалисты отмечают, что у кандидата возникают дополнительные вопросы в части задач и технического стека платформенной команды в SBI (Sberbank International). Так вот, данная статья раскрывает немного деталей о SBI Platform Team, чтобы у кандидата сразу было представление о том, над чем мы работаем.
Я Артём Соковец, руковожу платформенной командой в Sberbank International. До этого был TeachLead&ProductOwner продукта Platform V Studio. Прошёл путь от специалиста по автоматизации тестирования до лидера SDETs, а в 2018 году сменил профиль на разработку и двигаюсь в этом направлении дальше с заплывом в смежные области — DevOps и MobileDev.
Давайте погрузимся в нашу специализацию. Сейчас есть три основных направления, о которых далее пойдёт речь:
Адаптация Platform V под дочерние банки в других странах.
Разработка новых бизнес-приложений с использованием Platform V.
Разработка интеграционного слоя с использованием Synapse.
Кому интересно узнать детали, прошу под <cut>.

1. Platform V в другие страны
Чтобы стандартизировать процесс разработки и уменьшить T2M (time to market) вывода новых продуктов и их TCO (total cost of ownership), в Сбере используется технологическая платформа Platform V. А что такое, собственно, платформа? Это готовая среда разработки, компоненты, инструменты и набор паттернов для создания и исполнения приложений любой сложности в облаке. Компоненты образуют 4 основных слоя платформы: фронтальные сервисы, сервисы аналитической платформы (т. н. «фабрика данных»), сервисы интеграционной платформы, сервисы для построения бэкенда. В плане функционала компоненты можно поделить на 8 основных групп:

На первый взгляд может показаться, что компонентный состав платформы Сбера повторяет те же Google App Engine или Cloud Foundry, предлагая инструменты автоматизации пайплайна CI/CD, журналирования, мониторинга, AI, работы с реляционными БД, вычислениями в памяти и интеграций.
В действительности всё несколько сложнее: Сбер включил в платформу целый ряд сервисов и библиотек для решения задач построения отказоустойчивых, масштабируемых, управляемых приложений. Именно с их помощью и реализуются паттерны, предлагаемые платформой, будь то скоростная прикладная репликация, application sharding или авторизация межмодульных вызовов в защищённом периметре.
Если кратко пробежаться, то, пожалуй, отмечу:
платформа позволяет строить вычисления на виртуалках, по модели container-as-a-service, в k8s, serverless, через оркестрацию процессов или систему бизнес-правил в BRMS;
из коробки доступен service mesh, управляемые событийные кластеры, поддерживается потоковая обработка событий через Flink;
есть готовый фреймворк для горизонтального масштабирования приклада по паттерну application sharding;
с данными можно работать и в реляционной, и в NoSQL-модели. Для удобства есть готовый сервис построения масштабируемой отказоустойчивой модели данных со встроенной скоростной репликацией, авторизацией доступа к данным, интеграции со слоем аналитики и другими свистелками;
в аналитической платформе можно решать любые задачи современного BI, DW, рассказ о ней заслуживает отдельной статьи;
есть полноценный набор инструментов для организации CI + CDL + CDP, тестирования, своих репозиториев кода, докер-контейнеров и pro-шная IDE для разработки;
есть готовые сервисы для решения типовых задач — PIM, документооборот, справочники и т.п.
Более детальное описание продуктов вы можете найти здесь.
А для чего нужна платформа? В среднем, по нашей оценке, на продуктивную разработку специалист тратит не более 15% своего времени. В остальную часть дня он выполняет важные вспомогательные задачи: развернуть, настроить системное ПО, развернуть, настроить БД, средства мониторинга, логирования, аудита, передачу сообщений и многое другое. Platform V позволяет забрать у разработчика всю рутину, дать ему возможность сфокусироваться на бизнес-логике и сделать его работу более продуктивной.
Взять и установить платформу, как она есть, в дочерний банк невозможно. У каждой организации есть свой IT-ландшафт, с которым необходимо выполнить интеграцию, свои бизнес-процессы и другие бизнес- и технические заморочки. Здесь вступаем в игру мы как платформенная команда. Требуется адаптировать платформу: заменить определённые сервисы/продукты, дополнить новыми сервисами, протестировать новый функционал, провести нагрузочное тестирование, убедиться, что мы ничего не сломали, разработать скрипты деплоя и итогом вывести всё в промышленную эксплуатацию.
Так, например, в связи с локальными особенностями авторизации и аутентификации в одном из дочерних банков нашей платформенной команде потребовалось создать отдельный сервис, который отвечает за управление сессиями клиента и интегрирован с существующими системами дочерних банков. Для сбора продуктового профиля клиента потребовалось полностью переработать существующий платформенный сервис, т. к. интеграционное взаимодействие с IT-системами и логика работы кардинально отличаются от реализации в головном Сбере.
Процесс адаптации платформы для использования в дочерних банках выстроен следующим образом: сначала мы проводим презентационную встречу, выявляем потребности заказчика, доносим ценность каждого платформенного дистрибутива (solutions), определяем состав сервисов для адаптации — и отправляемся в путь. IT-команда заказчика обычно обращается уже со сформированными потребностями и требованиями, включая юридические особенности работы.
Но наши задачи не заканчиваются только работой с Platform V, перейдём к следующему направлению.
2. Разработка новых бизнес-приложений с использованием Platform V
Кроме адаптации платформенных сервисов, есть и разработка бизнес-приложений с нуля. Например, продукт «Кобраузинг», когда клиенты могут продемонстрировать сотруднику контакт-центра экран своего устройства, то есть оператор дистанционно подключается и видит экран клиента в интернет-банке СберБизнес, СберБанке Онлайн и в других приложениях. Сервис не требует дополнительной установки программного обеспечения. Благодаря этому инструменту сотрудники банка своими глазами видят проблему клиента и сразу же приступают к устранению технических ошибок, помогают в навигации по приложению. Мы такой продукт разработали для коллег из Беларуси на базе нашей платформы. Ниже приведена краткая архитектурная схема.

Суть такая: на странице (WEB) уже встроен JS Bundle, который реализует логику обращения и помощи клиента. В части бэка есть два сервиса — клиент и оператор (разбили на два микросервиса для легковесности и чтобы не перегружать лишней логикой). Оба реализованы на Java 11. Они хранят в себе всю бизнес-логику (создание и управление сессиями, координация обмена сообщениями между клиентом и оператором, логирование и т. д.). Для доставки сообщений между клиентом и оператором используется брокер сообщений Kafka в двух имплементациях — основной и резервной. Для хранения кросс-сессий клиента и оператора используется база данных PostgresSQL. Ignite используется для хранения файлов ресурсов, которые передаются с фронта клиента на фронт оператора для корректного отображения страницы клиента. Необходимо это из-за того, что довольно много ресурсов автоматизированных систем СберБанк Онлайн (СБОЛ) и СберБанк Бизнес Онлайн (СББОЛ) хранится на сервере статики во внешней сети, а оператор работает из внутренней сети банка, откуда нет доступа к внешним серверам. Platform V IAM (Identity & Access Management) хранит пользователей и их привилегии (ролёвки), а стартовый менеджер используется для создания сессии оператора в платформе. Фронт оператора реализован на React, Redux, TypeScript и имплементируется в CRM Siebel.
Для наглядности процесса приведём схему последовательности вызовов сервисов для клиента:

Вначале скачиваются настройки — правила маскирования, правила работы с DOM-моделью и пр. Далее создаётся клиентская сессия (в БД сохраняется кросс-сессия) или возвращаются данные уже созданной сессии, если сеанс был прерван. В дальнейшем для каждого сообщения генерится уникальный токен. Он содержит ряд параметров, по которым будет осуществляться верификация пользователя. Затем, чтобы оператор видел полную картину, ему передаются ресурсы с сервера статики фронт-приложения клиента, которые бэк кладёт в Ignite. После осуществляется регулярный (несколько раз в секунду) обмен сообщениями, в которых отправляются действия клиента и приходят действия оператора, если они были. При этом происходит маскирование личной информации клиента — то есть оператору не передаются и не отображаются личные данные клиента: номера карт, остатки на счетах и пр. Обмен сообщениями происходит до тех пор, пока клиент или оператор не завершит работу, после чего сессия клиента и кросс-сессия закрываются.
Для оператора схему приводить не будем, она аналогичная.
Ещё одним примером бизнес-приложения с нуля является микросервис «Платежи», который реализует логику создания платежа более чем по 5600 видам услуг. При этом при добавлении нового вида платежа модификация исходного кода не требуется. За основу был взят микросервис, разработанный в Сбере. Он доработан с учётом новых программных сценариев и локальной специфики страны. Сервис развёрнут для мобильной и web-платформ и является для дочернего банка высокодоходным и business-critical. Мастер-система дочернего банка представляет собой собственный биллинговый модуль, поддерживающий интеграции как с основными государственными сервисами, рынком платёжных операторов, так и с конечными поставщиками услуг. Поиск платежа проводится пользователем через каталог, QR-код, штрих-код и по диплинк. Для пользователя доступны подписки на получение счетов по повторяющимся платежам с уведомлением, а также создание и управление автоплатежами. Реализован сервис оплаты административных штрафов с просмотром оригинальных протоколов в формате pdf и налоговых начислений с упрощённым для пользователя UI при оформлении платёжного поручения. Оплата мобильной связи реализована с использованием интеграции с MNP базой данных операторов СНГ, что позволяет снизить риск ошибки при оплате мобильной связи.
Мы гибко подходим к выбору методологии производства, широко используем и Scrum и Kanban. Проводим кросс-командное Code Review. Используем quality gates для проверки выпускаемых дистрибутивов. Стоить отметить, что помимо разработки бэка и фронта (web), также есть и мобильная разработка под Android и iOS, где мы используем модульный подход и мобильную платформу, в которую включены фреймворки дизайн-системы, сетевого слоя, утилит и backend driven UI-механизма, позволяющего безрелизно доставлять фичи до пользователей. Это всё позволяет нам максимально переиспользовать кодовую базу, создавать новые экраны и фичи, словно из кубиков лего.
Когда сервисы и приложения реализованы, приходит время подумать над маршрутизацией и оптимизацией коммуникаций. С этим нам поможет Service Mesh.
3. Разработка интеграционного слоя с использованием Synapse
В части интеграционного слоя мы используем продукт Platform V Synapse Service Mesh (далее — SSM). SSM является частью интеграционной платформы Synapse и обеспечивает интеграцию приложений с использованием подхода service mesh, или «сервисная сетка». Данный подход предполагает реализацию интеграционной логики на выделенных проксирующих компонентах (service proxy или сервисный прокси), развёрнутых в непосредственной близости от прикладного кода в режиме sidecar (контейнеры с проксирующим компонентом и прикладным кодом разворачиваются в одном pod). Подробное описание подхода service mesh можно найти по ссылке.
В целом Synapse — интеграционная платформа. Это решение на базе технологии service mesh уровня enterprise, то есть подходящее для больших корпораций. Для банка оно обеспечивает возможность отказа от решений вендоров и перехода на продукты, построенные с использованием open-source технологий. Synapse строится на базе Istio-решения, которое является одной из имплементаций архитектуры service mesh.

А ещё он поддерживает EDA (event-driven architecture).
Из преимуществ Synapse, пожалуй, отмечу:
по-человечески сопровождаемый дистрибутив istio без завязки на фичи от RedHat;
из коробки доступны инструменты предиктивного скейлинга и фейловера;
готовые компоненты для событийной обработки, в том числе с возможностью репликации событий между кластерами kafka и потоковой обработки через Flink;
при необходимости для всех интеграций можно активировать авторизацию взаимодействий.
Далее вы найдёте «простенькие» примеры блоков кода из интеграционных адаптеров, которые мы разрабатываем. В примере ниже приведён Java-код адаптера, реализованного на SpringBoot, отвечающий за run-time-реконфигурацию логирующего HTTP прокси-сервера.
Этот пример, написанный на Go (да, на нём мы тоже разрабатываем адаптеры), предназначен для перекладки определённых параметров из тела сообщения в заголовок.
Итого мы с вами рассмотрели три основных направления, над которыми работаем в платформенной команде. Наш стек:
Backend — SpringBoot, Java 8-11/Kotlin/Go, Maven/Gradle, Istio;
Frontend — Redux, React, TypeScript;
DB — Apache Ignite, PostgresSQL, Oracle;
MQ — IMB MQ, Kafka;
CI/CD — Jenkins, Ansible, Docker, OpenShift, Kubernetes;
Environment — Jira, Adaptavista для тестирования, Nexus, Bitbucket.
На собеседованиях у нас есть блок live coding на 30 минут, где мы просим кандидата открыть любимую IDE или блокнот и решить задачку с нашими подсказками. Приведу пример фронтовой задачки:
Кому интересно попробовать себя в международном блоке Сбера в качестве разработчика, системного аналитика, DevOps-инженера и специалиста по функциональному тестированию — приходите к нам.
Platform V
Synapse

Synapse – это единая платформа для решения всех задач интеграции
8 ключевых модулей
Synapse Service Mesh
Надежная интеграция и оркестрация микросервисов в облаке
Synapse EDA
Продукт Platform V для потоковой обработки событий
Synapse Nerve (ex File Exchange)
Файловая интеграция бизнес-сервисов друг с другом и c внешними системами
SynAI
Предиктивное управление трафиком, обогащаемое искусственным интеллектом и машинным обучением
Synapse API Management
Шлюзы API с интерфейсом публикации
Application Sharding
Горизонтальное масштабирование слоя данных и маршрутизации запросов
SynGX
Web- и обратный прокси-сервер на базе Nginx с дополнительной функциональностью
Synapse Messaging
Передача сообщений в шаблоне интеграции Message queue
Зачем переходить на Platform V Synapse
Обеспечьте технологическую независимость
- Получить возможность real-time обработки данных
- Обеспечить пропускную способность для современных задач
- Снять ограничения по масштабированию
- Снизить связанность систем
- Возможность создания сложной композитной логики с помощью сервисов оркестрации и API-менеджмента
Получите экономию от внедрения
- Уменьшить стоимость владения
- Снижение затрат на интеграцию между продуктовыми командами
- Повышаем скорость масштабирования без доп затрат
- Повышаем производительность
Преимущества Platform V Synapse
Кейс Сбера
всех транзакций проходят через Synapse
3+ года
в промышленной эксплуатации
100 000+
50 → 8 мс
сокращение стоимости разработки
в 6 раз
Российская замена корпоративных сервисных шин
Внедрение Platform V Synapse
Уберем высокую связанность систем
Проведем бесшовную миграцию на микросервисную архитектуру с независимым развертыванием множества облачных сервисов
Подготовим персонал на готовых курсы для обучения
План миграции
Создание кластера Synapse
Прохождение обучения Synapse в Bootcamp
Проведение Пилота с нагруженным сервисом
Анализ и планирование миграций по АС
Разбор шины, отказ от лицензий и поддержки
Пообщайтесь с экспертом
Оставьте запрос на консультацию — свяжемся с вами и ответим на вопросы
Новости Platform V Synapse
Forbes: как Platform V стала основой для технологического лидерства Сбера
Как продукты Platform V помогают снижать зависимость от западного «железа» и экономить, рассказал в Forbes гендиректор «СберТех» Максим Тятюшев
СберТех и Digital Design помогут бизнесу перейти на российское ПО
Интервью директора по развитию Platform V «СберТеха» Матвея Ульянычева CNews
Forbes: как Platform V стала основой для технологического лидерства Сбера
Как продукты Platform V помогают снижать зависимость от западного «железа» и экономить, рассказал в Forbes гендиректор «СберТех» Максим Тятюшев
СберТех и Digital Design помогут бизнесу перейти на российское ПО
Интервью директора по развитию Platform V «СберТеха» Матвея Ульянычева CNews
О чем нужно помнить при создании мультикластерных сервисов в Kubernetes
Как мы меняли шину данных, а создали интеграционную платформу
Корпорации испытывают наибольшую потребность в импортозамещении СУБД
Антон Атоян, «СберТех»: Импортозамещение корпоративной сервисной шины — хороший повод снять архитектурные ограничения
Максим Тятюшев, СберТех: Наш подход позволил клиентам быстро замещать решения ушедших вендоров
Андрей Белевцев: «Платформенные решения позволяют быстро и качественно провести цифровую трансформацию бизнеса»
Почему Platform V Synapse
Современные бизнес-системы генерируют и отслеживают миллионы событий в секунду. Обработка такого массива информации требует особого подхода к процессу интеграции внутри IT-ландшафта. Нужна архитектура, которая будет отвечать новым требованиям:
- обеспечит простоту интеграции;
- выдержит высокие нагрузки на ключевые системы и обеспечит real-time обработку событий;
- позволит вести историю изменений и сохранять security updates;
- упростит обновление систем и вывод новой функциональности в промышленную эксплуатацию.
Решение — микросервисная архитектура, при которой каждое приложение строится из множества облачных сервисов меньшего размера, поддерживающих независимое развертывание.
С помощью микросервисной архитектуры компании могут сосредоточиться на разработке бизнес-функциональности, ускорении time-to-market и использовании данных в принятии решений. Cloud-native и микросервисы делают интеграции одним из ключевых процессов в IT-ландшафте и обеспечивают бизнес неоспоримыми преимуществами. Такой принцип работы лежит в основе Platform V Synapse — комплекса облачных продуктов для интеграции и оркестрации микросервисов. Синапс обеспечивает работу микросервисного подхода и бесшовную миграцию на него с соблюдением высоких требований к надежности и производительности. Синапс помогает командам разработки упростить создание и взаимодействие микросервисов, добиться надежности, прозрачности, масштабируемости и безопасности в гетерогенных средах сloud и on-premises.
Overview of Synapse as a Data Service
![]()
This article provides an overview of the technical implementation of using Synapse as a task handler to fetch data for a business or technical process. Wanna dive right in? Skip to the example.
Synapse, as a task engine, provides robust support for technical capability through Handlers. Synapse also treats the data that goes in and comes out of tasks as a first-class citizen. This a important differentiator of Synapse, and core to its usefulness in the enterprise.
Using the Part Interface
The Synapse Controller /part/ interface is designed to allow selection of one or more individual Plan elements, serialized into a specific format. This is useful when using Synapse a data service, or when seeking efficiency of data interrogation.
For details of the URI GET/POST options, read the docs.
- GET: /synapse/execute/
/ /part/?elementPath= &serializationFormat=
Syntax
Selecting Plan elements requires a rooted path, expressed as shown below. If an element is part of a list, use a index specifier.
Examples:
Serialization Format
To return “native” data formats from the Synapse Controller API, specify the serialization format as:
- YAML
- JSON
- XML
- Unspecified
YAML/JSON/XML will attempt to parse the element data into the specified format before returning it. “Unspecified” will return the data, as-is.
Example
Plan: jsonSimple.yaml
Script: jsonSimple.ps1
Input JSON: plain text:
CLI call to Start Plan: Input JSON is base64 encoded:
Result Plan: jsonSimple_636297562058437364.yaml
And finally, to fetch the JSON doc back from the Result Plan as JSON data, use “/part/”:
Что такое synapse интеграция
Apache Synapse — это простая, легкая и высокопроизводительная служебная шина предприятия (ESB) с открытым исходным кодом и механизм посредничества. Он начал инкубацию в Apache Software Foundation 22 августа 2005 г. и стал подпроектом проекта веб-служб Apache 2 января 2007 г. После реализации обширной поддержки интеграции устаревших систем он перешел в проект верхнего уровня Apache. Software Foundation 5 февраля 2008 г. Apache Synapse выпущен под лицензией Apache .
Synapse поддерживает создание прокси-сервисов, которые позволяют пользователям создавать виртуальные сервисы на уровне ESB для поддержки существующих сервисов. Существующие службы могут быть службами SOAP , POX / REST через HTTP / S , а также SOAP или устаревшими службами через файловые системы JMS , Apache VFS (например, SFTP , FTP , файл, zip / tar / gz , webdav , SMB и т. Д.) , почтовые системы (например, POP3 , IMAP , SMTP ), Обмен финансовой информацией (FIX), Hessian , AMQP и т. д. Прокси-сервисы позволяют переключать транспорт, интерфейс (WSDL / Схема / Политика), формат сообщения (SOAP 1.1, 1.2 / POX / REST, текстовый, двоичный / Hessian и т. Д.), QoS (WS-Addressing, WS-Security, WS-Reliable Messaging) и оптимизация сообщений (MTOM / SwA) и т. Д.
Synapse реализовал реализацию неблокирующего транспорта HTTP / S через модуль Apache HttpComponents / NIO для обработки тысяч одновременных запросов с использованием небольших ресурсов и потоков. Эта реализация способна регулировать соединение для управления скоростью чтения и обработки больших сообщений и, таким образом, может обрабатывать тяжелые одновременные нагрузки больших сообщений с использованием постоянной памяти.
Synapse поддерживает кластерные развертывания с поддержкой балансировки нагрузки, регулирования и кэширования по сравнению с кластерными развертываниями. Интеграция с внешним реестром / репозиторием позволяет Synapse использовать внешние ресурсы для посредничества, а также сохранять свою конфигурацию во внешнем реестре / репозитории для управления SOA . Synapse можно расширить с помощью пользовательских расширений Java или классов POJO или с помощью языков сценариев Apache BFS, таких как Javascript, Ruby, Groovy и т. Д. Synapse поставляется с более чем 50 образцами.
Что такое synapse интеграция
Apache Synapse is a lightweight and high-performance Enterprise Service Bus (ESB). Powered by a fast and asynchronous mediation engine, Apache Synapse provides exceptional support for XML, Web Services and REST. In addition to XML and SOAP, Apache Synapse supports several other content interchange formats, such as plain text, binary, Hessian and JSON. The wide range of transport adapters available for Synapse, enables it to communicate over many application and transport layer protocols. As of now, Apache Synapse supports HTTP/S, Mail (POP3, IMAP, SMTP), JMS, TCP, UDP, VFS, SMS, XMPP and FIX.
Apache Synapse is free and open source software distributed under the Apache Software License 2.0. Apache Synapse, Synapse, Apache, the Apache feather logo, and the Apache Synapse project logo are trademarks of The Apache Software Foundation
Version 3.0.1
New in Version 3.0.0
- High-performing PassThrough HTTP transport support for all mediation scenarios
- Ultra-fast, low latency mediation of HTTP requests
- Supporting a very large number of inbound (client -> ESB) and outbound (ESB -> server) connections concurrently
- Intelligently handle message content and content awareness built into the engine with shared buffer for handling data
- Automatic throttling and graceful performance degradation in the presence of slow or faulty clients and servers
- Support for adding/removing transport headers
- url-encode xpath function
- Access system properties from get-property function
- base64 decode function
- Resequencing Message Processor
- New blocking client implementation
- Support for injecting a message to Proxy services
- Support for injecting a message to named sequences
- Support for WS-Security
- Inline Endpoint support
- Ability to dynamically set the EPR using ‘To’ header
- NTLM support
- Support for removing properties
- Transport level access restriction
Key Features
- Proxy services — facilitating transport, interface (WSDL/Schema/Policy), message format (SOAP 1.1/1.2, POX/REST, Text, Binary), QoS (WS-Addressing/ WS-Security/WS-RM) and optimization switching (MTOM/SwA)
- Non-blocking HTTP/S transports for fast HTTP interactions and support for thousands of concurrent connections
- VFS transport for file manipulation and interaction with FTP, SFTP, CIFS and WEBDAV
- JMS support for binary, plain text, XML and SOAP payloads
- Mail transport with extensive support for POP3, IMAP and SMTP
- Support for industry driven Financial Information eXchange (FIX) protocol
- Built-in Registry/Repository, facilitating dynamic reloading of the configuration and associated resources (e.g. XSLTs, XSD, JS, ..)
- Built-in support for scheduling tasks using the Quartz scheduler
- Load-balancing (with or without sticky sessions) and fail-over routing
- Support for many Web Services standards including WS-Addressing, WS-Security and WS-Reliable Messaging
- Policy based message throttling and caching (with special support for clustered environments)
- Message splitting and aggregation
- Database lookup and update support with database connection pooling
- Fine grained statistics collection over sequences, endpoints and proxy services
- JMX monitoring and management
- Easily extendable with Java, Spring, or BSF Scripting languages (Javascript, Ruby, Groovy, etc.)
High Level Architecture
Apache Synapse is designed to be lightweight and fast. The non-blocking HTTP transport, the multi-threaded mediation engine and the streaming XML infoset combine to ensure that Synapse can mediate very high volumes of messages through the service bus with minimum delay and resource usage. Synapse also comes with comprehensive logging capabilities, statistics collection and JMX monitoring support which are crucial in production deployments.

Synapse uses Apache Axis2 as the underlying Web Services engine. Therefore it has outstanding support for Web Services and related standards such as SOAP and WSDL. Tried and tested Axis2 modules like Apache Rampart and Apache Sandesha2 can be used with Synapse with no configuration overhead. Using such external modules, Apache Synapse supports a range of Web Services standards including WS-Security and WS-Reliable Messaging. Synapse also makes use of the Axis2 clustering framework to provide enterprise grade clustering support.
Synapse is configured using a simple, XML-based configuration language. The configuration language and the related functional components are designed with SOA best practices in mind. It is trivial to store configuration fragments in an external SOA registry and import them to the mediation engine on demand. Synapse ships with a large collection of mediators that can be used to implement even the most complex enterprise integration scenarios. If necessary, the mediation engine can be extended by developing custom mediators using Java or your favorite scripting language.
Что такое synapse интеграция
Apache Synapse Enterprise Service Bus (ESB)
Apache Synapse is a lightweight and high-performance Enterprise Service Bus (ESB). Powered by a fast and asynchronous mediation engine, Apache Synapse provides exceptional support for XML, Web Services and REST. In addition to XML and SOAP, Apache Synapse supports several other content interchange formats, such as plain text, binary, Hessian and JSON. The wide range of transport adapters available for Synapse, enables it to communicate over many application and transport layer protocols. As of now, Apache Synapse supports HTTP/S, Mail (POP3, IMAP, SMTP), JMS, TCP, UDP, VFS, SMS, XMPP and FIX.
Apache Synapse is free and open source software distributed under the Apache Software License 2.0. Apache Synapse, Synapse, Apache, the Apache feather logo, and the Apache Synapse project logo are trademarks of The Apache Software Foundation
Version 3.0.1
New in Version 3.0.0
- High-performing PassThrough HTTP transport support for all mediation scenarios
- Ultra-fast, low latency mediation of HTTP requests
- Supporting a very large number of inbound (client -> ESB) and outbound (ESB -> server) connections concurrently
- Intelligently handle message content and content awareness built into the engine with shared buffer for handling data
- Automatic throttling and graceful performance degradation in the presence of slow or faulty clients and servers
- Support for adding/removing transport headers
- url-encode xpath function
- Access system properties from get-property function
- base64 decode function
- Resequencing Message Processor
- New blocking client implementation
- Support for injecting a message to Proxy services
- Support for injecting a message to named sequences
- Support for WS-Security
- Inline Endpoint support
- Ability to dynamically set the EPR using ‘To’ header
- NTLM support
- Support for removing properties
- Transport level access restriction
Key Features
- Proxy services — facilitating transport, interface (WSDL/Schema/Policy), message format (SOAP 1.1/1.2, POX/REST, Text, Binary), QoS (WS-Addressing/ WS-Security/WS-RM) and optimization switching (MTOM/SwA)
- Non-blocking HTTP/S transports for fast HTTP interactions and support for thousands of concurrent connections
- VFS transport for file manipulation and interaction with FTP, SFTP, CIFS and WEBDAV
- JMS support for binary, plain text, XML and SOAP payloads
- Mail transport with extensive support for POP3, IMAP and SMTP
- Support for industry driven Financial Information eXchange (FIX) protocol
- Built-in Registry/Repository, facilitating dynamic reloading of the configuration and associated resources (e.g. XSLTs, XSD, JS, ..)
- Built-in support for scheduling tasks using the Quartz scheduler
- Load-balancing (with or without sticky sessions) and fail-over routing
- Support for many Web Services standards including WS-Addressing, WS-Security and WS-Reliable Messaging
- Policy based message throttling and caching (with special support for clustered environments)
- Message splitting and aggregation
- Database lookup and update support with database connection pooling
- Fine grained statistics collection over sequences, endpoints and proxy services
- JMX monitoring and management
- Easily extendable with Java, Spring, or BSF Scripting languages (Javascript, Ruby, Groovy, etc.)
High Level Architecture
Apache Synapse is designed to be lightweight and fast. The non-blocking HTTP transport, the multi-threaded mediation engine and the streaming XML infoset combine to ensure that Synapse can mediate very high volumes of messages through the service bus with minimum delay and resource usage. Synapse also comes with comprehensive logging capabilities, statistics collection and JMX monitoring support which are crucial in production deployments.

Synapse uses Apache Axis2 as the underlying Web Services engine. Therefore it has outstanding support for Web Services and related standards such as SOAP and WSDL. Tried and tested Axis2 modules like Apache Rampart and Apache Sandesha2 can be used with Synapse with no configuration overhead. Using such external modules, Apache Synapse supports a range of Web Services standards including WS-Security and WS-Reliable Messaging. Synapse also makes use of the Axis2 clustering framework to provide enterprise grade clustering support.
Synapse is configured using a simple, XML-based configuration language. The configuration language and the related functional components are designed with SOA best practices in mind. It is trivial to store configuration fragments in an external SOA registry and import them to the mediation engine on demand. Synapse ships with a large collection of mediators that can be used to implement even the most complex enterprise integration scenarios. If necessary, the mediation engine can be extended by developing custom mediators using Java or your favorite scripting language.
Synapse
По состоянию на 2020 год в Сбербанке ведется разработка инновационного интеграционного решения Synapse. В описании вакансий разработчиков в этот проект перечислены некоторые его детали.
Вот всего лишь несколько причин, почему стоит присоединиться к нашей команде:
— это шанс использовать самые современные software технологии и архитектурные паттерны;
— это возможность получить навык работы в облачной архитектуре с использованием OpenShift, Kubernetes, Istio, Envoy;
— это опыт создания нового интеграционного решения, на которое должна быть переведена вся интеграционная логика Банка.
Результатом твоих трудов станет решение, которое позволит выйти Банку выйти на новый уровень реализации интеграционной логики и значительно сократить время вывода новых продуктов!