Статьи

Лучшие практики хостинга веб-приложений в Alibaba Cloud

Эта статья была первоначально опубликована на Alibaba Cloud . Спасибо за поддержку партнеров, которые делают возможным использование SitePoint.

Развертывание высокодоступного и масштабируемого веб-приложения в традиционном центре обработки данных является сложным и дорогостоящим мероприятием. Нужно вкладывать много сил и ресурсов в управление мощностями. Но чаще всего это приводит к чрезмерному или недостаточному предоставлению ресурсов, что приводит к неэффективным инвестициям в недостаточно используемое оборудование. Для решения этой проблемы Alibaba Cloud предлагает надежную, масштабируемую и высокопроизводительную облачную инфраструктуру для самых требовательных сценариев развертывания веб-приложений. В этом документе представлены практические решения и рекомендации, касающиеся масштабирования вашего веб-приложения в Alibaba Cloud.

Традиционное решение для общего хостинга веб-приложений

В традиционном веб-хостинге разработка масштабируемой архитектуры всегда является сложной задачей. На диаграмме ниже представлена ​​традиционная модель веб-хостинга. Цель этой диаграммы — помочь вам сравнить ее с аналогичной архитектурой, размещенной в облаке.

Традиционный веб-хостинг обычно следует трехуровневому дизайну, который разделяет архитектуру на уровни представления, приложений и персистентности. Конструкция обеспечивает масштабируемость за счет включения дополнительных серверов на каждом из этих уровней. Архитектура также имеет встроенные функции высокой доступности. В приведенном ниже разделе рассматриваются способы развертывания этого традиционного веб-хостинга в Alibaba Cloud.

Простая архитектура размещения веб-приложений в Alibaba Cloud

На диаграмме ниже показано, как выглядит традиционная архитектура веб-хостинга при развертывании с использованием различных продуктов и услуг Alibaba Cloud:

Ключевые компоненты этой архитектуры включают в себя:

  • Elastic Compute Service (ECS) — построенная на собственной крупномасштабной распределенной вычислительной системе Alibaba Cloud, Elastic Compute Service или ECS является масштабируемой и высокоэффективной службой облачных вычислений. Alibaba Cloud ECS поможет вам быстро создавать более стабильные и безопасные веб-приложения для адаптации к потребностям вашего бизнеса в режиме реального времени.
  • Служба хранения объектов (OSS) — Alibaba Cloud предлагает различные варианты хранения, доступа и резервного копирования ваших данных в облаке. Для статического хранилища он предоставляет Object Storage Service (OSS), чтобы упростить автоматическую репликацию данных и восстановление после сбоев.
  • ApsaraDB для RDS — служба реляционных баз данных или RDS — это стабильная, надежная, гибкая и высокопроизводительная онлайн-служба баз данных, основанная на собственной распределенной системе Alibaba Cloud. Он поддерживает MySQL, SQL Server, PostgreSQL и PPAS. Кроме того, он предоставляет полный набор функций, включая аварийное восстановление, резервное копирование данных, мониторинг и миграцию.
  • DNS — облачный DNS-сервис Alibaba предоставляет высокодоступный и масштабируемый DNS-сервис для управления вашим доменом. Он автоматически перенаправляет запросы вашего домена на ближайший DNS-сервер.
  • Server Load Balancer (SLB) — Server Load Balancer — это служба распределения веб-трафика, которая максимизирует и расширяет возможности внешних служб ваших веб-приложений. Благодаря плавному распределению трафика между несколькими облачными серверами и устранению отдельных точек отказа SLB повышает надежность, удобство использования и доступность ваших приложений.

Использование облака для хостинга веб-приложений

При развертывании веб-приложения в Alibaba Cloud вы должны рассмотреть возможность внесения изменений в свое развертывание, чтобы в полной мере использовать преимущества облака. Ниже приведены некоторые основные соображения о размещении приложения в Alibaba Cloud.

Несколько центров обработки данных в регионе

В определенном регионе Alibaba Cloud обычно работает как минимум в двух дата-центрах, называемых зонами доступности (AZ). Elastic Compute Service (ECS) в разных AZ разделены логически и физически. Облако Alibaba предоставляет простую в использовании модель для развертывания ваших приложений на нескольких АЗ для повышения доступности и надежности.

Высокая безопасность для веб-приложений и серверов

Безопасность веб-приложений является одной из главных задач современных организаций, поскольку более 90% приложений уязвимы для атак безопасности. Эти атаки могут использовать веб-сайты и внутренние серверы, что подвергает компании риску финансовых потерь. Чтобы защитить ваши веб-приложения от таких атак, Alibaba Cloud предоставляет набор служб безопасности сети и приложений, таких как Anti-DDoS (Basic и Pro), Firewall Web Application Firewall (WAF) и Server Guard .

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

  • Для кластера веб-серверов группа безопасности брандмауэра разрешает доступ только через порты 80 и 443 (HTTP и HTTPS).
  • Для защиты кластера серверов приложений группа безопасности разрешает доступ только с веб-серверов.
  • Для сервера БД его группа безопасности разрешает доступ к запросам данных приложений с серверов приложений. Кроме того, группа безопасности для серверов БД разрешает доступ только с уровня приложения. Для обеспечения полной безопасности доступ к порту 22 (SSH) для прямого управления хостом разрешен только с включенных в белый список IP-адресов, настроенных в правилах брандмауэра группы безопасности.

Рассматривая ECS как динамические ресурсы

Для создания и размещения отказоустойчивого и масштабируемого приложения в Alibaba Cloud вам потребуется гибкая система, учитывающая динамический характер ECS. Важно понимать, что облачные ресурсы могут стать недоступными или потерянными в случае сбоя. Более того, после подготовки нового виртуального сервера вы не можете предполагать, что ему назначен IP-адрес. Для обработки таких сценариев Alibaba Cloud позволяет выбирать местоположение ресурсов и предоставляет Elastic IP-адреса . Они приобретаются для сохранения IP-адреса ресурса как статического. Если вы предоставляете новый экземпляр ECS, вы можете сопоставить тот же EIP с новым экземпляром.

Учитывая все эти факторы, давайте рассмотрим некоторые из лучших практик развертывания ваших веб-приложений на основе конкретных сценариев.

Лучшая практика # 1: хостинг приложений с доставкой контента

До этого момента вышеприведенная архитектура веб-приложений лучше всего подходила для обслуживания всех пользовательских запросов из единого центрального местоположения. Однако в случае большого объема трафика Content Delivery Network (CDN) помогает оптимизировать производительность вашего веб-приложения, обеспечивая бесперебойную работу.

Эталонная архитектура

С помощью Alibaba Cloud CDN растущая сеть глобальных периферийных местоположений отвечает за кэширование статического и потокового контента. CDN извлекает исходный контент из OSS и кэширует контент на пограничных узлах. После кэширования будущие запросы автоматически направляются в ближайший крайний пункт, чтобы обеспечить доставку контента с максимально возможной производительностью. Этот процесс, в свою очередь, освобождает дополнительную нагрузку от серверов из-за трафика, попадающего на серверы напрямую, что позволяет эффективно использовать вычислительные ресурсы.

Следующая диаграмма архитектуры иллюстрирует типичный хостинг веб-приложений с CDN.

Alibaba Cloud CDN также может беспрепятственно работать с любым сервером происхождения, отличным от Alibaba Cloud. Также нет никаких финансовых обязательств по использованию Alibaba Cloud CDN — вы платите только за столько или мало контента, который фактически доставляется через сервис.

Лучшая практика # 2: хостинг веб-приложений с автоматическим масштабированием

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

Эталонная архитектура

В Alibaba Cloud веб-приложение может использовать предоставление дополнительных серверов по требованию или корректировку в сторону понижения в течение меньшего периода трафика, чтобы минимизировать стоимость коммунальных услуг. Все это выполняется сервисом автоматического масштабирования Alibaba Cloud автоматически . Вместо модели прогнозирования трафика для предоставления серверов впереди, Alibaba Cloud Elastic Compute Service (экземпляры ECS предоставляются на лету в соответствии с набором триггеров для масштабирования парка и обратно. Добавление или удаление серверов, управляемых автоматическим масштабированием с сервера Балансировщик нагрузки происходит автоматически, что делает этот вариант развертывания по-настоящему надежной настройкой.На схеме ниже показан типичный хостинг веб-приложений вместе с автоматическим масштабированием:

Давайте теперь кратко обсудим ключевой компонент этой архитектуры, Auto Scaling. Вы можете настроить триггеры автоматического масштабирования в зависимости от данных метрик, полученных непосредственно из Alibaba Cloud Monitor . Например, вы можете настроить автоматическое масштабирование на запуск, если загрузка ЦП в течение последних пяти минут составляла 75% или выше или если ваше текущее приложение использует до 35% памяти. Кроме того, вы также можете предоставить определенное количество экземпляров в определенное время в соответствии с ожидаемой нагрузкой и требованиями вашей организации.

Лучшая практика # 3: хостинг веб-приложений с более высокой производительностью ввода-вывода

Перед лицом растущих требований бизнеса крайне важно поддерживать высокую производительность вашего приложения. Даже самые незначительные сбои могут привести к чрезвычайному времени отклика и затруднить работу пользователя. Традиционной структуры базы данных с одним экземпляром может быть недостаточно для удовлетворения большого объема запросов ввода-вывода.

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

В этой архитектуре есть два ключевых компонента:

  • ApsaraDB для Memcache: это онлайн-сервис открытого кэширования, который обеспечивает высокоскоростной доступ к запросам и данным при доступе к данным горячей точки. Кроме того, он поддерживает базы данных ключ-значение и совместим со службой ECS. Вы можете сохранить данные горячей точки и уменьшить нагрузку на базу данных, чтобы сократить время отклика при чтении.
  • ApsaraDB для RDS только для чтения: если запросы на чтение превышают запросы на запись, один экземпляр не сможет их обработать, что повлияет на производительность приложения. Чтобы добиться более плавного чтения и записи, ApsaraDB может создавать реплики основных экземпляров с учетными записями только для чтения для RDS в конкретном регионе. Это предлагает более быстрый ответ на запросы чтения / записи. Кроме того, реплики обрабатывают запросы на чтение, в то время как главный экземпляр обслуживает только запросы на запись.

Рекомендация № 4: хостинг веб-приложений с аварийным восстановлением нескольких контроллеров

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

Эталонная архитектура

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

Давайте рассмотрим ключевые аспекты хостинга облачных веб-приложений Alibaba и аварийного восстановления на нескольких контроллерах.

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

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

Рекомендация № 5. Хостинг веб-приложений с мультирегиональным развертыванием

Для предприятий, работающих в разных странах или планирующих глобальное расширение, наличие гибкой ИТ-архитектуры имеет важное значение для роста бизнеса. Такие компании нуждаются в высокостабильных сетях высшего качества, чтобы идти в ногу с технологиями и меняющимися требованиями. Для таких фирм основная проблема связана с острой необходимостью в эффективной и безопасной сети, через которую они могут соединить свои глобальные предприятия. Лизинговые линии от поставщиков телекоммуникационных услуг могут быть дорогостоящим вариантом для малых или средних предприятий. Для решения этой проблемы Alibaba Cloud предлагает простой и экономичный способ связи с различными регионами мира по выделенным линиям. Он также предоставляет несколько других решений для репликации / синхронизации данных по регионам.

Эталонная архитектура

Приведенная ниже архитектура соответствует потребностям развертывания нескольких узлов в разных регионах. Приложение, развернутое в Китае, также может быть развернуто в регионе США одновременно. Эти два приложения взаимодействуют друг с другом на уровне обслуживания и данных. Используя Alibaba Cloud Express Connect , два VPC в нескольких регионах соединяются через выделенную линию. Это обеспечивает безопасное соединение через Интернет между инстанциями ECS, расположенными в регионе Китая, и инстанциями, расположенными в регионе США. Несмотря на то, что они находятся в разных местах, два экземпляра RDS также могут синхронизировать данные в режиме реального времени. Alibaba Cloud OSS позволяет выполнять межрегиональную репликацию данных, чтобы удовлетворить потребности большого объема репликации данных через Интернет.

Развертывание в нескольких регионах на основе этой архитектуры является простым и экономически эффективным. Пользователи могут быстро создавать свои многорегиональные приложения и поддерживать все облачные ресурсы по всему миру с помощью единой учетной записи Alibaba Cloud. Alibaba Cloud также предлагает несколько решений для передачи данных для удовлетворения потребностей большинства бизнес-сценариев пользователей.

Вывод

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

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

В отличие от этого, облачный веб-хостинг предлагает множество преимуществ, которые могут принести значительные выгоды для бизнеса. Кроме того, облачный веб-хостинг гарантирует SLA, которые обещают высокую доступность для вашего сайта. Кроме того, он позволяет вам оплачивать ресурсы без каких-либо скрытых затрат, что позволяет эффективно планировать ИТ-бюджет.