Работа по настройке, которую вы больше не делаете
Развёртывание базы данных обычно означает подготовку сервера, установку движка, создание пользователей и грантов, настройку лимитов соединений, открытие нужных портов и поддержание всего в актуальном патче. Для одного приложения это огромный объём неспецифичной работы ещё до того, как вы напишете строчку бизнес-логики. cdn.com.tr разворачивает экземпляр MySQL, MariaDB, PostgreSQL или Redis за вас и возвращает готовые к использованию учётные данные, так что вы сразу переходите к подключению приложения.
Учётные данные как окружение, а не как код
Платформа генерирует имя пользователя и пароль и внедряет хост, порт, базу данных, пользователя и пароль в привязанное приложение как переменные окружения. Это важно и для безопасности, и для операций: секреты никогда не попадают в вашу историю Git или образ Docker, а поскольку приложение читает их во время выполнения, ротация пароля — это обновление привязки, а не изменение кода. Это сохраняет разделение конфигурации и кода по принципу twelve-factor, не заставляя вас строить эту сантехнику самим.
Выбор между MySQL, MariaDB и PostgreSQL
Большинство стеков WordPress и классического PHP ожидают MySQL или его совместимого собрата MariaDB, и любой из них — безопасный выбор по умолчанию для таких приложений. PostgreSQL — правильный выбор, когда ваш фреймворк или схема опираются на специфичные для Postgres типы, расширения или более строгое поведение SQL. Поскольку все три предлагаются как управляемые дополнения с одним и тем же процессом привязки и внедрения, решение зависит от того, что ожидает ваше приложение, а не от того, насколько сложно каждым управлять — все они разворачиваются одинаково.
Для чего на самом деле нужен управляемый Redis
Redis — это хранилище в памяти, и на платформе он обычно выполняет одну из трёх задач: кэширование дорогих результатов запросов и отрендеренных фрагментов, хранение пользовательских сессий, чтобы они переживали смену реплик контейнера, и работу в роли объектного кэша WordPress, чтобы сократить повторные обращения к базе данных на загруженных страницах. Поскольку он живёт вне контейнера приложения, масштабированный сервис делит один кэш и одно хранилище сессий вместо того, чтобы каждая реплика держала своё собственное. Именно это заставляет горизонтальное масштабирование корректно работать для функций, чувствительных к состоянию.
Объектный кэш Redis для WordPress
Сайт на WordPress под нагрузкой тратит удивительно много времени на повторное выполнение одних и тех же запросов к базе данных для построения каждой страницы. Направление WordPress на управляемое дополнение Redis в качестве объектного кэша означает, что эти результаты отдаются из памяти вместо базы данных, что снижает нагрузку запросов и стабилизирует время ответа при всплесках трафика во время кампании. В паре с кэшем CDN для статических ресурсов Redis берёт на себя динамическую сторону, так что база данных не становится узким местом.
Ротация, сброс и совместное использование
Пароли не должны жить вечно, а иногда они утекают в лог или скриншот. Процесс reset/rotate генерирует свежие учётные данные, и привязанные приложения получают их через свою привязку, так что вам не приходится гоняться за жёстко заданным паролем по нескольким кодовым базам. Когда несколько сервисов действительно разделяют одну базу данных, привязка одного и того же дополнения к каждому держит их согласованными, а статус платформы даёт единое место, чтобы подтвердить здоровье уровня данных после любого изменения.
Как настроить, шаг за шагом
Выберите нужный вашему приложению движок
В панели откройте раздел Add-ons и создайте базу данных. Выберите MySQL или MariaDB для большинства нагрузок PHP и WordPress, или PostgreSQL для приложений, ожидающих специфичных для Postgres возможностей. Для кэширования, сессий или объектного кэша WordPress создайте дополнение Redis. Каждое разворачивается за вас с именем базы данных, пользователем и сгенерированным паролем.
Привяжите его к приложению
Из дополнения или из настроек самого приложения привяжите базу данных к Container App, PHP Platform или сайту на WordPress. Привязка подключает реквизиты соединения в приложение вместо того, чтобы копировать их вручную, и одно и то же дополнение могут разделять сервисы, которым оно реально нужно.
Читайте учётные данные из окружения
После привязки хост, порт, имя базы данных, имя пользователя и пароль приходят в приложение как переменные окружения. Ваш код читает их во время выполнения — например DSN для PDO или клиент Redis, построенный из этих переменных окружения, — так что ничего чувствительного не зашивается в образ и не коммитится в репозиторий.
Дайте WordPress и PHP настроиться самостоятельно
Для сайта на WordPress платформа заполняет подключение к базе данных во время настройки, так что вам не нужно вручную редактировать wp-config, а дополнение Redis может обеспечивать объектный кэш. Для кастомного PHP-приложения направьте конфигурацию базы данных и кэша вашего фреймворка на внедрённые имена env — и вы подключены.
Ротируйте или сбрасывайте по необходимости
Если учётные данные были скомпрометированы или вы просто ротируете по расписанию, используйте процесс reset/rotate на дополнении. Генерируется новый пароль, и привязанные приложения подхватывают обновлённое значение через свою привязку, так что ротация не означает ручной поиск по нескольким сервисам для передеплоя.
Следите за здоровьем и автоматизируйте через cdnctl
Используйте статус платформы, чтобы подтвердить, что дополнение доступно и работает, и запускайте рутинные задачи — создание дополнения, привязку, запуск ротации — из cdnctl, так что разворачивание окружения вписывается в скрипты и CI, а не в ручные клики.
Примеры сценариев
Контентный сайт разворачивается с управляемой базой данных MySQL при настройке и дополнением Redis в качестве объектного кэша, так что страницы рендерятся из памяти и переживают всплески трафика, не нагружая базу данных.
API на Laravel привязывает управляемое дополнение PostgreSQL и дополнение Redis для очередей и кэша, читая оба набора реквизитов подключения из внедрённых переменных окружения без администрирования сервера.
Контейнерное приложение, масштабированное до нескольких реплик, хранит сессии в управляемом Redis, так что пользователь остаётся залогиненным независимо от того, какая реплика обслуживает следующий запрос.
Команда ротирует пароль базы данных из панели каждый квартал; привязанные приложения получают новый секрет через свою привязку, избегая ручной проверки конфигурационных файлов.
Часто задаваемые вопросы
Какие движки баз данных я могу развернуть?
MySQL, MariaDB и PostgreSQL доступны как управляемые дополнения баз данных, а Redis доступен как управляемое дополнение кэша. Выбирайте MySQL или MariaDB для типичных приложений WordPress и PHP, и PostgreSQL, когда ваше приложение конкретно ожидает Postgres.
Как моё приложение получает реквизиты подключения?
Когда вы привязываете дополнение к приложению, хост, порт, имя базы данных, имя пользователя и пароль внедряются как переменные окружения. Ваш код строит из этих переменных DSN или клиент Redis во время выполнения, так что никакие учётные данные не живут в образе или репозитории.
Redis — это замена базы данных или кэш?
Это кэш и хранилище в памяти, а не замена вашей основной базы данных. Используйте его для кэширования запросов и фрагментов, сессий, которые должны разделяться между репликами, и в качестве объектного кэша WordPress — пока ваши устойчивые данные остаются в MySQL, MariaDB или Postgres.
Как ротировать пароль базы данных, не сломав приложения?
Используйте процесс reset/rotate на дополнении. Генерируется новый пароль, и привязанные приложения подхватывают его через свою привязку, так что вам не нужно редактировать конфигурацию в каждой кодовой базе. Подтвердите здоровье после этого через статус платформы.
Могут ли несколько приложений разделять одну базу данных или экземпляр Redis?
Да. Привяжите одно и то же дополнение к каждому сервису, которому оно реально нужно, и они будут делить экземпляр и оставаться согласованными. Для изоляции разверните отдельное дополнение под каждое приложение — оба паттерна используют один и тот же процесс привязки и внедрения.
Нужна ли WordPress ручная настройка базы данных?
Нет. Платформа заполняет подключение к базе данных во время настройки WordPress, так что вам не нужно вручную редактировать wp-config, а дополнение Redis можно подключить в качестве объектного кэша, чтобы сократить повторные запросы к базе данных на загруженных страницах.