Обеспечение отказоустойчивости СУБД серверов

Обеспечиваем отказоустойчивость серверной IT-инфраструктуры. Специализируемся на СУБД серверах: PostgreSQL, MySQL и in-memory базы данных Tarantool (mail.ru), а также Aerospike/Cassandra
Наши партнеры

Обеспечиваем отказоустойчивость популярных СУБД серверов и in-memory баз данных за счёт кластеризации

Осуществим кластеризацию PostgreSQL с помощью Patroni, обеспечим переход со standalone MySQL на более производительную Percona XtraDB Cluster (PXC) для MySQL. Обеспечим отказоустойчивость Tarantool – СУБД разработки mail.ru, а также Aerospike/Cassandra

Попутно обеспечим отказоустойчивость

Контроллеров домена
Файловых серверов
Почты и сервера документооборота
Web-сервисов
Корпоративного портала
Интернет каналов
Шлюзов интернет и удаленного доступа
Прокси-серверов
Системы хранения данных
Аппаратных носителей
Терминальных серверов

Переход c Redis на PostgreSQL/Patroni

Высоконагруженный сервис: 2+ млн пользователей, 50К+ активных пользователей каждый день. Сервера находятся в Public Cloud (AWS, Mail.ru Cloud, etc): в работе постоянно 100+ различных серверов, из них больше половины — с базами данных

Backend — большое монолитное stateful-приложение на Java, которое держит постоянное websocket соединение с клиентом. Одновременная нагрузка - 10К запросов в секунду к базам. В данный момент используется Redis, где в пиковой нагрузке пишется по 80-100К запросов в секунду

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

Мы поможем:
– быстро и безопасно осуществить саму миграцию текущая СУБД -> PostgreSQL
– обеспечить нужный уровень отказоустойчивости

Как мы делаем последнее?
Мы используем Patroni - шаблон на Python для управления PostgreSQL c исходным кодом на GitHub

Почему Patroni?
– Описан каждый параметр конфигурации в документации
– Автоматический failover из коробки
– Полностью управляет PostgreSQL, позволяет менять конфигурацию сразу на всех нодах кластера, а если для применения новой конфигурации требуется перезапуск кластера, то это можно сделать опять же с помощью Patroni

Кейс перехода с MySQL на Percona Cluster

Кластеризация сервера большого web-приложения на СУБД Percona MySQL 5.

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

Задача: обеспечить приемлемую отказоустойчивость для СУБД

Стек технологий: Percona MySQL 5.7, кэширование в Redis и Memcached

Решение: MySQL Galera cluster

Почему Galera кластер?
Замена всей СУБД было бы сложным решением, т.к. приложение большое, во многих местах завязано на функционал или синтаксис mysql и миграция, например, на PostgreSQL займет кучу времени и ресурсов.

MySQL Group Replication не подойдёт, т.к. накладывает больше ограничений на приложение и схему БД, а значит произвести миграцию будет сложнее. Во-вторых Group Replication решает проблему отказоустойчивости и split brain, но репликация в кластере по-прежнему асинхронная. Galera позволяет полностью решить проблему с отказоустойчивостью MySQL и частично решить проблему с актуальностью данных на слейвах.

Техподдержка СУБД Tarantool

Мы одни из немногих, кто специализируется на дистанционной поддержке СУБД Tarantool (Mail.ru), и умеем обеспечивать отказоустойчивость, безопасность и производительность этой СУБД в облаке.

Если для вас жизненно важно не допустить отказов нагруженных серверов, то направление наших действий таково:
  • Профессиональная оценка рисков и снижение вероятности их возникновения
  • Разработка мероприятий по предотвращению или смягчению рисков
  • Построение модели угроз
  • Внедрение мероприятий
    «под ключ»
Мы обеспечим нужное Вам количество «nines» в availability и выведем на уровень отказоустойчивости:
99.9% — недоступность сервера не более 5 минут в неделю
99.99% — недоступность сервера не более 5 минут в месяц
99.999% — недоступность сервера не более 5 минут в год

Используемые программные продукты

Patroni
Шаблон для построения отказоустойчивых кластеров на базе PostgreSQL. Обеспечивает автоматическое переключение на резервный сервер при сбое ведущего сервера. Patroni управляет экземпляром базы данных PostgreSQL и использует внешние системы (ZooKeeper, etcd, Consul или Kubernetes) для хранения общей для всех узлов кластера информации, такой как список узлов кластера и положение ведущего сервера
etcd
Согласованное распределенное хранилище пар ключ-значение, обеспечивающее надежный способ хранения данных, к которым могут обращаться распределенная система или кластер машин
HAProxy
Прокси сервер TCP и HTTP трафика. Позволяет создать единую точку подключения к PostgreSQL, не зависящую от распределения ролей в кластерах PostgreSQL

Технологический стек

  • Frontend/backend балансировка и переключение инстансов
    – nginx
    – haproxy
  • Автоматизация процессов
    – backup
    – switchover
    – health-check
  • Высокие нагрузки
    – cpu/mem/disk/net отказы
    – профилирование нагрузки flamegraph
    – профилирование БД и запросов в БД
    – приоритезация процессов и трафика
  • Виртуализация
    – libvirt/kvm
    – vmware
    – smartos
  • Ручное и автоматизированное тестирование приложений и сервисов
    – ibm x-system
    – hp
    – supermicro
    – oracle/sun
    – cisco
    – dell
    – asus
  • Сетевая инфраструктура
    – cisco
    – juniper
    – extreme
    – hp
    – huawei
    – mikrotik
    – d-link
    – ubiquiti
    – eltex
  • Серверная инфраструктура и работа с hardware
    – ibm x-system
    – hp
    – supermicro
    – oracle/sun
    – cisco
    – dell
    – asus
  • Системы мониторинга и слежения за событиями сети
    – prometheus
    – alertmanager
    – grafana
    – zabbix
    – graphite
    – telegraf
    – node-exporter
  • Безопасность
    – iptables/ufw/firewalld
    – selinux
    – pentests
    – whitebox/graybox/blackbox
    – acl/exec bits
    – waf/spam
    – ddos атаки
  • Базы данных
    – postgres (dba)
    – mysql (dba)
    – mssql
    – oracle
    – redis
    – mongo
    – aerospike
    – cassandra
    – tarantool
  • Scm и автоматизированное управление инфраструктурой
    – ansible (>5 лет)
    – puppet
    – terraform
    – Microsoft system center
  • Системы индексации
    – elastic
    – solr
    – sphinx
    – MS Sql
  • Web серверы
    – nginx
    – openresty
    – apache2
    – tomcat
    – IIS
  • Кластеризация и отказоустойчивость
    – postgersql/pgbouncer/pgpool/patroni
    – mysql/percona/maxscale/sqlproxy
    – redis/sentinel
    – rabbitmq cluster
    – nginx
  • Голосовые технологии
    – asterisk
    – cisco call manager
    – huawei/avaya
  • Сетевые технологии
    – cdn/geoip
    – anycast/multicast
  • Рутинное обслуживание дата-центров и аппаратной части
    – ipvkm/ilo/idrac/lom/smb
    – мониторинг температуры, систем охлаждения и параметров питания
    – диагностика потерь пакетов и линков

Кейсы

Оставить заявку на услугу повышения отказоустойчивости IT-инфраструктуры

Наш специалист свяжется с вами для детального обсуждения задачи

Не пропустите последние новости. Подписывайтесь!