Изменить

Поделиться через


WordPress в Служба Azure Kubernetes

Кэш Azure для Redis
Azure Front Door
Служба Azure Kubernetes (AKS)
Azure Load Balancer
Azure NetApp Files

В этой статье описывается решение контейнера для размещения крупной, интенсивной установки WordPress в Azure. Решение обеспечивает максимальную масштабируемость и безопасность. К ключевым компонентам относятся Azure Front Door, Служба Azure Kubernetes (AKS) и Azure NetApp Files.

Архитектура

Схема архитектуры развертывания WordPress AKS. Azure NetApp Files хранит статическое содержимое. Частные конечные точки предоставляют доступ к другим службам.

Скачайте файл Visio для этой архитектуры.

Примечание.

Это решение можно расширить, реализуя советы и рекомендации, которые не относятся к определенному методу размещения WordPress. Общие советы по развертыванию установки WordPress см. в разделе WordPress в Azure.

Поток данных

  • Пользователи получают доступ к интерфейсным веб-сайту через Azure Front Door с поддержкой Azure Брандмауэр веб-приложений.
  • Azure Front Door использует внутренний экземпляр Azure Load Balancer в качестве источника. Внутренняя подсистема балансировки нагрузки является скрытым компонентом AKS. Azure Front Door извлекает данные, которые не кэшируются.
  • Внутренняя подсистема балансировки нагрузки распределяет трафик входящего трафика к модулям pod в AKS.
  • Azure Key Vault хранит секреты, такие как закрытый ключ, который является сертификатом X.509.
  • Приложение WordPress использует частную конечную точку для доступа к гибкому экземпляру сервера База данных Azure для MySQL. Приложение WordPress получает динамические сведения из этой управляемой службы базы данных.
  • Все статическое содержимое размещено в Azure NetApp Files. Решение использует драйвер интерфейса хранилища контейнеров Astra Trident (CSI) с протоколом NFS.

Компоненты

  • Azure Front Door — это современная сеть доставки содержимого в облаке. В качестве распределенной сети серверов Azure Front Door эффективно предоставляет веб-содержимое пользователям. Сети доставки содержимого свести к минимуму задержку путем хранения кэшированного содержимого на пограничных серверах в местах присутствия рядом с конечными пользователями.
  • Azure виртуальная сеть предоставляет возможность взаимодействия между развернутыми ресурсами, интернетом и локальными сетями. Виртуальные сети обеспечивают изоляцию и сегментацию. Они также фильтруют и маршрутизирует трафик и позволяют устанавливать подключения между различными расположениями. В этом решении две сети подключены через пиринг между виртуальными сетями.
  • Защита от атак DDoS Azure предоставляет расширенные функции защиты от атак DDoS. При сочетании этих функций с рекомендациями по проектированию приложений они помогают защититься от атак DDoS. Необходимо включить защиту от атак DDoS в виртуальных сетях периметра.
  • Группы безопасности сети используют список правил безопасности, чтобы разрешить или запретить входящий или исходящий сетевой трафик на основе исходного или целевого IP-адреса, порта и протокола. В подсетях этого сценария правила группы безопасности сети ограничивают поток трафика между компонентами приложения.
  • Load Balancer распределяет входящий трафик на основе правил и результатов проверки работоспособности. Подсистема балансировки нагрузки обеспечивает низкую задержку и высокую пропускную способность. Распределяя трафик между несколькими серверами, подсистема балансировки нагрузки добавляет масштабируемость для приложений протокола управления передачей (TCP) и протокола пользовательской диаграммы данных (UDP). В этом сценарии подсистема балансировки нагрузки распределяет трафик из сети доставки содержимого на внешние веб-серверы.
  • AKS — это полностью управляемая служба Kubernetes, которую можно использовать для развертывания, управления и масштабирования контейнерных приложений.
  • Azure NetApp Files предоставляет полностью управляемое решение для хранения данных с высокой производительностью и задержкой. В этом решении Azure NetApp Files размещает все содержимое WordPress, чтобы все модули pod имели доступ к данным.
  • Кэш Azure для Redis — это хранилище данных в памяти. Вы можете использовать Кэш Azure для Redis для размещения кэша "ключ-значение" в этом решении. Этот кэш используется для всех модулей pod и используется для подключаемых модулей оптимизации производительности WordPress.
  • Key Vault сохраняет и управляет доступом к паролям, сертификатам и ключам.
  • База данных Azure для MySQL — гибкий сервер — это реляционная служба баз данных, основанная на ядре СУБД MySQL с открытым исходным кодом. Гибкий вариант развертывания сервера — это полностью управляемая служба, которая обеспечивает детализированный контроль и гибкость над функциями управления базами данных и параметрами конфигурации. В этом сценарии База данных Azure для MySQL хранит данные WordPress.

Альтернативные варианты

  • Вместо использования управляемой службы Кэш Azure для Redis можно использовать локальный модуль pod в кластере AKS в качестве кэша.
  • Вместо использования управляемого решения для хранения, например Azure NetApp Files, можно использовать локальное решение, например хранилище Rook-Ceph. Дополнительные сведения см. в статье об использовании новичка Ceph на Служба Azure Kubernetes.

Подробности сценария

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

Потенциальные варианты использования

  • Блоги с высоким трафиком, использующие WordPress в качестве системы управления содержимым
  • Веб-сайты для бизнеса или электронной коммерции, использующие WordPress

Рекомендации

Эти рекомендации реализуют основные принципы платформы Azure Well-Architected Framework, которая является набором руководящих принципов, которые можно использовать для улучшения качества рабочей нагрузки. Дополнительные сведения см. в статье Microsoft Azure Well-Architected Framework.

Надежность

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

При развертывании этого решения рассмотрите следующие рекомендации.

  • Решение использует модули pod в AKS и подсистему балансировки нагрузки для распределения трафика входящего трафика. Этот подход обеспечивает высокий уровень доступности, даже если произошел сбой pod.
  • Решение поддерживает несколько регионов, репликацию данных и автомасштабирование. Компоненты распределяют трафик к модулям pod. Пробы работоспособности используются таким образом, чтобы трафик распределялся только для работоспособных модулей pod.
  • Все сетевые компоненты находятся под управлением Azure Front Door. Этот подход делает сетевые ресурсы и приложения устойчивыми к проблемам, которые в противном случае могут нарушить трафик и повлиять на доступ конечных пользователей.
  • Azure Front Door — это глобальная служба, которая поддерживает масштабируемые наборы виртуальных машин, развернутые в другом регионе.
  • При использовании Azure Front Door для кэширования всех ответов вы получаете небольшое преимущество доступности. В частности, если источник не отвечает, вы по-прежнему можете получить доступ к содержимому. Но кэширование не обеспечивает полное решение для доступности.
  • Чтобы повысить доступность, реплицируйте хранилище Azure NetApp Files между парными регионами. Дополнительные сведения см. в разделе репликации между регионами с помощью Azure NetApp Files.
  • Чтобы повысить доступность База данных Azure для MySQL, следуйте параметрам высокого уровня доступности, которые соответствуют вашим потребностям.

Безопасность

Безопасность обеспечивает гарантии от преднамеренного нападения и злоупотребления ценными данными и системами. Дополнительные сведения см. в разделе "Общие сведения о компоненте безопасности".

При развертывании этого решения рассмотрите следующие рекомендации.

  • Используйте Брандмауэр веб-приложений в Azure Front Door, чтобы защитить трафик виртуальной сети, который передается на уровень интерфейсных приложений. Дополнительные сведения см. в статье azure Брандмауэр веб-приложений в Azure Front Door.
  • Не разрешайте исходящий интернет-трафик передаваться с уровня базы данных.
  • Не разрешайте общедоступный доступ к частному хранилищу и отключать общедоступный доступ к ресурсам. Используйте частные конечные точки для База данных Azure для MySQL, Кэш Azure для Redis, Key Vault и Реестр контейнеров Azure. Дополнительные сведения см. в разделе Приватный канал Azure.

Дополнительные сведения о безопасности WordPress см. в статье "Общие советы по безопасности и производительности WordPress" и документация по безопасности Azure.

Оптимизация затрат

Оптимизация затрат заключается в поиске способов уменьшения ненужных расходов и повышения эффективности работы. Дополнительные сведения см. в разделе Обзор критерия "Оптимизация затрат".

Ознакомьтесь со следующими рекомендациями по затратам при развертывании этого решения:

  • Ожидания трафика (ГБ/месяц). Объем трафика — это фактор, который оказывает наибольшее влияние на стоимость. Объем получаемого трафика определяет количество необходимых узлов AKS и стоимость исходящей передачи данных. Объем трафика также напрямую коррелирует с объемом данных, предоставляемых вашей сетью доставки содержимого, где затраты на передачу исходящих данных дешевле.
  • Объем размещенных данных. Важно учитывать объем размещенных данных, так как цены на Azure NetApp Files основаны на зарезервированной емкости. Чтобы оптимизировать затраты, зарезервируйте минимальную емкость, необходимую для данных.
  • Процент записи. Рассмотрим, сколько новых данных вы записываете на веб-сайт и стоимость хранения. Для развертываний с несколькими регионами объем новых данных, записываемых на веб-сайт, сопоставляется с объемом данных, зеркальным отображением в разных регионах.
  • Статический и динамический контент. Отслеживайте производительность и емкость хранилища базы данных, чтобы определить, поддерживает ли ваш сайт более дешевый номер SKU. База данных хранит динамическое содержимое, а сеть доставки содержимого кэширует статическое содержимое.
  • Оптимизация кластера AKS. Чтобы оптимизировать затраты на кластер AKS, следуйте общим советам по AKS, таким как руководство по размеру виртуальной машины и резервированиям Azure. Дополнительные сведения см. в статье "Оптимизация затрат AKS".

Оптимизация производительности

Уровень производительности — это способность вашей рабочей нагрузки эффективно масштабироваться в соответствии с требованиями, предъявляемыми к ней пользователями. Дополнительные сведения см. в разделе "Общие сведения о эффективности производительности".

В этом сценарии используются модули pod в AKS для размещения внешнего интерфейса. При использовании функции автомасштабирования количество модулей pod, на которых выполняется интерфейсный уровень приложений, может автоматически масштабироваться в ответ на запрос клиента. Они также могут масштабироваться на основе определенного расписания. Дополнительные сведения см. в разделе "Параметры масштабирования" для приложений в Служба Azure Kubernetes (AKS).

Внимание

Для обеспечения оптимальной производительности необходимо подключить постоянный том, использующий протокол NFS версии 4.1. В следующем примере YAML показано, как настроить PersistentVolume объект для этой цели. Обратите внимание на значение mountOptions поля.

kind: PersistentVolume
...
    accessModes:
    - ReadWriteMany
    mountOptions:
    - vers=4.1
    nfs:
      server: xx.xx.xx.xx

Соавторы

Эта статья поддерживается корпорацией Майкрософт. Первоначально он был написан следующими участниками.

Автор субъекта:

Другие участники:

  • Адриан Калинеску | Старший архитектор облачных решений

Чтобы просмотреть неопубликованные профили LinkedIn, войдите в LinkedIn.

Следующие шаги

Документация по продукту:

Модули обучения Майкрософт: