0Pricing
Azure Fundamentals · Урок

Применение шаблонов WAF в реальных архитектурах

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

«Применение шаблонов WAF в реальных архитектурах» — бесплатный урок Azure Fundamentals на CoddyKit. Это урок 4 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Azure Fundamentals, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Azure Fundamentals содержит 4 уроков всего.

Проверка архитектуры как практика

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

Оценка монолитной архитектуры

Рассмотрим традиционное монолитное веб-приложение: одна VM, на которой вместе работают веб-сервер и база данных, за общедоступным IP-адресом. По основам WAF такая архитектура получает низкие оценки по всем пяти направлениям: отсутствует избыточность (надёжность), база данных размещена на том же узле, что и веб-уровень (безопасность), VM постоянно работает независимо от трафика (затраты), отсутствует CI/CD (эффективность эксплуатации) и поддерживается только вертикальное масштабирование (эффективность производительности).

Повышение надёжности с помощью избыточности

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

# Deploy VMs across availability zones:
az vm create \
  --resource-group myRG \
  --name webVM1 \
  --zone 1 \
  --image Ubuntu2204LTS

az vm create \
  --resource-group myRG \
  --name webVM2 \
  --zone 2 \
  --image Ubuntu2204LTS

Усиление безопасности на всех уровнях

Для аспекта безопасности разместите веб-уровень и базу данных в разных подсетях и настройте правила NSG, разрешающие веб-уровню подключаться только к порту базы данных. Храните строку подключения к базе данных в Azure Key Vault, а в веб-приложении используйте управляемое удостоверение для получения этой строки во время выполнения — так учётные данные не будут жёстко прописаны в коде приложения и конфигурационных файлах.

Снижение затрат с помощью масштабирования и выбора подходящего размера

Для оптимизации затрат замените постоянно работающие VM на набор масштабирования Virtual Machine, который уменьшает число экземпляров в часы низкой нагрузки. Для базы данных выясните, будет ли управляемая служба PaaS, например Azure SQL Database с подходящим уровнем DTU, дешевле полноценной VM с SQL Server. Приобретите зарезервированные экземпляры для базовой ёмкости, которую можно спрогнозировать за 12 месяцев вперёд.

Операционное совершенство с помощью IaC и CI/CD

Повышайте операционное совершенство, описывая всю инфраструктуру с помощью шаблонов Bicep или ARM, хранящихся в системе контроля версий. Создайте конвейер CI/CD в Azure Pipelines или GitHub Actions, который автоматически развёртывает изменения инфраструктуры и код приложения. Добавьте этапы контроля развёртывания — автоматические дымовые тесты и ручное утверждение — прежде чем изменения попадут в рабочую среду.

# Deploy infrastructure via Bicep:
az deployment group create \
  --resource-group myRG \
  --template-file main.bicep \
  --parameters @parameters.json

Повышение производительности с помощью кэширования и CDN

Для эффективности производительности добавьте Azure Cache for Redis перед базой данных, чтобы кэшировать часто выполняемые запросы и снизить нагрузку на базу данных. Развёртывайте статические ресурсы (изображения, CSS, JavaScript) через Azure CDN, чтобы предоставлять их с пограничных узлов, расположенных близко к пользователям по всему миру. После каждого изменения выполняйте нагрузочное тестирование приложения, чтобы убедиться, что улучшения измеримы.

Документирование компромиссов

Каждое архитектурное изменение связано с компромиссом. Например, переход к архитектуре с несколькими зонами повышает надёжность, но увеличивает затраты (две зоны = две VM). Добавление кэширования Redis повышает производительность, но усложняет эксплуатацию (появляется ещё одна служба, которую нужно отслеживать и обслуживать). В хорошей архитектурной документации эти компромиссы явно зафиксированы, чтобы будущие архитекторы понимали причины принятых решений.

Подход на основе итеративных улучшений

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

Использование эталонных архитектурных решений

Microsoft публикует эталонные архитектуры для распространённых шаблонов рабочих нагрузок в Azure Architecture Center. Среди них — архитектуры веб-приложений, микрослужбы на AKS, конвейеры аналитики данных и многие другие решения. Каждая эталонная архитектура уже оценена по аспектам WAF и содержит примечания о компромиссах, сделанных для соответствующего шаблона.

Обсуждение архитектурных решений

Используйте записи архитектурных решений (ADR), чтобы документировать важные архитектурные решения, контекст, в котором они были приняты, рассмотренные альтернативы и последствия для аспектов WAF. ADR, хранящиеся в системе контроля версий вместе с кодовой базой, создают проверяемую историю, которая помогает новым участникам команды понять, почему архитектура устроена именно так.

Быстрая проверка

Проверьте своё понимание концепций Microsoft Azure Fundamentals (AZ-900) из этого урока.

Итоги урока

В этом уроке Вы узнали: шаблоны WAF применяются посредством оценки каждого архитектурного решения по всем пяти аспектам; улучшения можно вносить итеративно, начиная с проблем, оказывающих наибольшее влияние; а компромиссы необходимо документировать, чтобы будущие архитекторы понимали логику решений. Далее мы рассмотрим SLA Azure и способы расчёта составных SLA для архитектур с несколькими службами.

Часто задаваемые вопросы

Урок «Применение шаблонов WAF в реальных архитектурах» бесплатный?

Да — полный текст урока «Применение шаблонов WAF в реальных архитектурах» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Azure Fundamentals, подпишись на CoddyKit PRO. Курс Azure Fundamentals содержит 4 уроков всего.

Чему я научусь в уроке «Применение шаблонов WAF в реальных архитектурах»?

Перепроектируйте монолитную архитектуру Azure, чтобы выполнить требования WAF для каждого столпа, и документируйте компромиссы между затратами, сложностью и отказоустойчивостью. Ты практикуешь Azure Fundamentals с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Azure Fundamentals?

Предыдущий опыт не требуется. Azure Fundamentals на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 4 из 4.

Сколько времени занимает урок «Применение шаблонов WAF в реальных архитектурах»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Azure Fundamentals?

Да. Каждый урок Azure Fundamentals включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Объяснение пяти столпов
  2. Проведение проверки Azure Well-Architected
  3. Azure Advisor
  4. Применение шаблонов WAF в реальных архитектурах
← Назад к Azure Fundamentals