Применение шаблонов WAF в реальных архитектурах
Перепроектируйте монолитную архитектуру Azure, чтобы выполнить требования WAF для каждого столпа, и документируйте компромиссы между затратами, сложностью и отказоустойчивостью.
«Применение шаблонов WAF в реальных архитектурах» — бесплатный урок Cloud & IT Cert Prep на CoddyKit. Это урок 4 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Cloud & IT Cert Prep, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Cloud & IT Cert Prep содержит 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) и разблокировать остальной курс Cloud & IT Cert Prep, подпишись на CoddyKit PRO. Курс Cloud & IT Cert Prep содержит 4 уроков всего.
Чему я научусь в уроке «Применение шаблонов WAF в реальных архитектурах»?
Перепроектируйте монолитную архитектуру Azure, чтобы выполнить требования WAF для каждого столпа, и документируйте компромиссы между затратами, сложностью и отказоустойчивостью. Ты практикуешь Cloud & IT Cert Prep с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Cloud & IT Cert Prep?
Предыдущий опыт не требуется. Cloud & IT Cert Prep на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 4 из 4.
Сколько времени занимает урок «Применение шаблонов WAF в реальных архитектурах»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Cloud & IT Cert Prep?
Да. Каждый урок Cloud & IT Cert Prep включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Объяснение пяти столпов
- Проведение проверки Azure Well-Architected
- Azure Advisor
- Применение шаблонов WAF в реальных архитектурах