Привет, хабровчане. В рамках набора в группу курса "PostgreSQL" подготовили для вас перевод материала.

Приглашаем также на открытый demo-урок на тему
«Блокировки». На занятии вы узнаете, как работают блокировки; научитесь находить проблемные места в работе БД. Рассмотрим темы: блокировки объектов, блокировки строк, блокировки в памяти.


Гибридное Облако (Hybrid Cloud) — это общий архитектурный дизайн в любой компании. Эта концепция сочетает в себе публичное облако, частное облако и даже локальные решения, что позволяет компаниям иметь гибкость в отношении того, где хранить и как использовать свои данные. Она также помогает при реализации среды высокой доступности (High Availability environment). Проблема заключается в том, что развертывание такой среды может быть сложной и трудоемкой задачей. В этом блоге мы увидим, что такое гибридное облако, рассмотрим некоторые соображения, которые необходимо принять во внимание, прежде чем использовать его, а также то, как развернуть эту среду с помощью ClusterControl.

Что такое Гибридное Облако?

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

Вопросы в области применения баз данных гибридных облаков (Hybrid Cloud Databases Considerations)

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

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

  • Совместимость: Убедитесь, что вы выбрали поставщика, который специализируется в вашей отрасли и знаком с особенностями требований, которые должны быть соблюдены, будь то HIPAA, FISMA, PCI, или любые другие правила, на которые подписывается ваша компания. В конечном счете, ваша стратегия управления базой данных должна определяться тем, какая архитектура будет наилучшим образом соответствовать потребностям вашего бизнеса и масштабу по мере вашего роста.

  • Рабочая нагрузка: Каждая база данных имеет различные рабочие нагрузки. Некоторые из них будут лучше работать в публичном облаке, другие — в локальном варианте установки, а какие-то — в частном облаке. Знание своей рабочей нагрузки необходимо для нахождения оптимального сочетания ваших баз данных.

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

Как разместить PostgreSQL в среде гибридного облака

Предположим, что у вас запущена инсталляция ClusterControl и вы уже создали два разных аккаунта Cloud Provider, или одну учетную запись, если вы используете публичное и частное облако в одном Cloud Provider, или если вы используете комбинацию облачных (Cloud) и локальных (On-prem) сред.

Подготовка вашей облачной среды

Во-первых, необходимо создать свою среду в основном облачном провайдере. В этом случае мы будем использовать AWS (Amazon Web Services) с 2 узлами PostgreSQL :

Убедитесь, что у вас есть SSH (Secure Shell) и PostgreSQL трафик, который разрешён с вашего сервера ClusterControl, посредством редактирования группы безопасности (Security Group):

Затем перейдите к следующему облачному провайдеру (Cloud Provider), или к Частным (Private) или Локальным (On-prem) серверам, и создайте, по крайней мере, одну виртуальную машину, которая будет резервным узлом.

И снова, убедитесь, что вы разрешаете SSH и PostgreSQL трафик с вашего сервера ClusterControl:

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

Развертывание Кластера PostgreSQL

Зайдите на сервер ClusterControl и выберите опцию "Deploy (Развернуть)". Если у вас уже запущен экземпляр PostgreSQL, то вам нужно выбрать "Import Existing Server/Database (Импортировать Существующий Сервер/Базу данных)".

При выборе PostgreSQL, вы должны указать User (Пользователь), Key (Ключ) или Password (Пароль), а также порт для подключения по SSH к вашим узлам PostgreSQL. Вам также нужно имя вашего нового кластера и если вы хотите, ClusterControl установит и настроит для вас соответствующее программное обеспечение.

Пожалуйста, ознакомьтесь с пользовательскими требованиями ClusterControl для получения более подробной информации об этом этапе.

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

При добавлении ваших серверов вы можете ввести IP или имя хоста. На этом шаге также можно добавить узел, размещенный во вторичном облаке (Cloud Provider) или локально (on-prem), так как ClusterControl не имеет никаких ограничений по использованию сети, однако для большей ясности мы добавим его в следующем разделе. Единственным требованием здесь является наличие SSH-доступа к узлу.

На последнем шаге вы можете выбрать, будет ли ваша репликация Синхронной (Synchronous) или Асинхронной (Asynchronous).

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

Вы можете отслеживать статус процесса создания в мониторе активности ClusterControl.

После того, как задача будет выполнена, вы сможете увидеть ваш новый кластер PostgreSQL на главном экране ClusterControl.

Добавление удаленного узла ожидания (Remote Standby Node)

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

Перейдите к действиям кластера и выберите "Add Replication Slave (Добавить ведомое устройство репликации)":

Давайте используем опцию "Добавить новый ведомый узел репликации (Add new Replication slave)", так как мы предполагаем, что удаленный узел является новой установкой, если нет, то вы можете использовать опцию "Импортировать существующий ведомый узел репликации (Import existing Replication Slave)".

Здесь вам нужно только выбрать основной сервер (Primary server), ввести IP-адрес вашего нового резервного сервера и порт базы данных. Затем вы можете выбрать, если вы хотите, чтобы ClusterControl инсталлировал программное обеспечение, и должна ли репликация быть Синхронной (Synchronous) или Асинхронной (Asynchronous). Опять же, если вы добавляете узел в другом месте (другой облачный провайдер или локально установленный), вы должны использовать асинхронную репликацию, чтобы избежать проблем, связанных с производительностью сети. 

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

Вы можете контролировать создание узла репликации в мониторе активности ClusterControl.

И проверьте свою окончательную топологию в разделе Topology View Section.

Заключение

Эти функции ClusterControl позволят вам быстро настроить репликацию в среде гибридного облака, между различными облачными провайдерами или даже между облачным провайдером и локальной (On-prem) средой для базы данных PostgreSQL (и других различных технологий), а также управлять настройкой простым и удобным способом. Обмен данными между облачными провайдерами или между Частным (Private) и Публичным (Public) облаками из соображений безопасности должен ограничивать трафик и использовать только известные источники, чтобы снизить риск несанкционированного доступа к вашей сети.


Узнать подробнее о курсе "PostgreSQL".

Смотреть вебинар «Блокировки».