Кейс банка VTB: отказоустойчивый интернет-банкинг на новой инфраструктуре

Дочерний банк группы ВТБ, которая является одним из лидеров международного рынка финансовых услуг, обратился с задачей модернизировать инфраструктуру для нового интернет-банкинга. Ниже рассказываем, чем и как мы помогли.

Задача

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


Также службы безопасности банка всегда принимают меры предосторожности и запрещают интернет на серверах, поэтому Kubernetes в их структуре должен быть развернут без интернета.

Решение

Для решения задач банка мы подняли Kubernetes, настроили отказоустойчивый кластер с помощью фреймворка Patroni и CI/CD. Но обо всем по порядку.

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


Для этого нам пригодился Patroni — это демон на Python, который автоматически обслуживает кластеры PostgreSQL с различными типами репликации и автоматическим переключением ролей. Для поддержания актуальности кластера и выборов мастера используются распределенные DCS хранилища (поддерживаются Zookeeper, etcd, Consul). Кластер легко интегрируется в любую систему. Огромный плюс в том, что всегда можно выяснить, кто в данный момент мастер, или какой статус серверов запросами в DCS.


Чтобы настроить Kubernetes без интернета мы стягивали и разворачивали бинарные артефакты через свои сервера. И только потом загружали их на новую инфраструктуру.


Следущим шагом стала настройка CI/CD пайплайнов на GitLab.

Результат

В результате настройки процесса CI/CD разработчикам стало жить проще и комфортнее. Мы погрузились в проект клиента и автоматизировали весь процесс. Команда банка теперь просто отправляет commit в систему, после чего все автоматом улетает в нужный контур. В итоге вся цепочка CI/CD была настроена максимально эффективно.


Для плавного хода работы мы все время были на связи с разработчиками в рабочих чатах и решали и их, и наши вопросы довольно быстро.


Главным результатам стал развернутый на серверах интернет-банкинг, отказоустойчивый и безопасный.

Cтек технологий

  • Java
  • GitLab
  • Kubernetes
  • PostgreSQL
  • Patroni