Настройка деплоя сайта на Azure (App Service)

Ручные загрузки файлов и ночные падения сайта — знакомая боль? Мы настраиваем деплой на Azure App Service так, что код попадает на production автоматически и без простоев. Наша команда реализует проект под ключ — от выбора плана до CI/CD с Deployment Slots, обеспечивая стабильную работу и последующую поддержку.

Разработка и обслуживание любых видов сайтов:

Информационные сайты или веб-приложения
Сайты визитки, landing page, корпоративные сайты, онлайн каталоги, квиз, промо-сайты, блоги, новостные ресурсы, информационные порталы, форумы, агрегаторы
Сайты или веб-приложения электронной коммерции
Интернет-магазины, B2B-порталы, маркетплейсы, онлайн-обменники, кэшбэк-сайты, биржи, дропшиппинг-платформы, парсеры товаров
Веб-приложения для управления бизнес-процессами
CRM-системы, ERP-системы, корпоративные порталы, системы управления производством, парсеры информации
Сайты или веб-приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, конструкторы сайтов, порталы предоставления электронных услуг, видеохостинги, тематические порталы

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

Услуги, которые мы предлагаем
Показано 1 из 1Все 2062 услуг
Настройка деплоя сайта на Azure (App Service)
Средний
~2-3 дня
Часто задаваемые вопросы

Настройка деплоя сайта на Azure (App Service)

Представьте: вы push'ите код в main, через минуту он уже на production без единой секунды простоя. Никаких ручных FTP-загрузок, никаких 502 ошибок посреди ночи. Именно так выглядит правильно настроенный деплой на Azure App Service. Мы видели десятки проектов, где мелкие ошибки в конфигурации — неверный runtime, отсутствие переменных окружения, кривой CI/CD — приводили к часам даунтайма. Рассказываем, как этого избежать.

Правильная настройка Azure App Service включает несколько ключевых компонентов: выбор подходящего плана, автоматизация сборки и деплоя, организация окружений через Deployment Slots и настройка автоскейлинга. Ниже — конкретные шаги, которые мы применяем в каждом проекте.

Создание App Service

App Service Plan — это основа. Для продакшена выбираем уровень B2 или выше, чтобы обеспечить запас производительности под PHP 8.3 или Node.js. Команда Azure CLI:

az group create --name myapp-rg --location westeurope
az appservice plan create \
  --name myapp-plan \
  --resource-group myapp-rg \
  --sku B2 \
  --is-linux
az webapp create \
  --name myapp-prod \
  --resource-group myapp-rg \
  --plan myapp-plan \
  --runtime "PHP|8.3"

Первый деплой можно сделать через FTP или zip, но мы рекомендуем сразу настроить непрерывную интеграцию.

Как настроить CI/CD через GitHub Actions?

GitHub Actions — оптимальный выбор для автоматизации. Мы подготовили универсальный workflow, который адаптируем под любой стек:

# .github/workflows/azure-deploy.yml
name: Deploy to Azure
on:
  push:
    branches: [main]
jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Setup PHP
        uses: shivammathur/setup-php@v2
        with:
          php-version: '8.3'
      - name: Install dependencies
        run: composer install --no-dev --optimize-autoloader
      - name: Build frontend
        run: npm ci && npm run build
      - name: Deploy to Azure Web App
        uses: azure/webapps-deploy@v3
        with:
          app-name: myapp-prod
          publish-profile: ${{ secrets.AZURE_WEBAPP_PUBLISH_PROFILE }}
          package: .

Важный момент: publish-profile хранится в секретах GitHub — никаких паролей в репозитории. Workflow запускается автоматически при каждом push в main, и через 2–3 минуты новая версия уже на сервере.

Почему Deployment Slots — must have для production?

Deployment Slots — это изолированные окружения внутри одного App Service. Вы деплоите новую версию в staging, тестируете, затем мгновенно переключаете (swap) на production. Swap занимает секунды, пользователи не замечают переключения. Если что-то пошло не так — откат одним действием.

# Создать staging slot
az webapp deployment slot create \
  --name myapp-prod \
  --resource-group myapp-rg \
  --slot staging

# Деплой в staging
az webapp deploy \
  --name myapp-prod \
  --resource-group myapp-rg \
  --slot staging \
  --src-path deployment.zip

# Swap staging → production (мгновенно, zero-downtime)
az webapp deployment slot swap \
  --name myapp-prod \
  --resource-group myapp-rg \
  --slot staging \
  --target-slot production

# Swap Back если что-то пошло не так
az webapp deployment slot swap \
  --name myapp-prod \
  --resource-group myapp-rg \
  --slot production \
  --target-slot staging

Мы используем эту технику во всех продакшен-проектах. Один интернет-магазин после внедрения слотов перестал простаивать ночью — кеширование и подключения к БД не сбрасываются при swap, если настроено правильно.

Как подключить кастомный домен и SSL?

После деплоя нужно привязать свой домен. Azure App Service поддерживает бесплатные SSL-сертификаты от Let's Encrypt или собственные из Key Vault. Процесс:

  1. В портале Azure добавьте custom domain в разделе Custom domains.
  2. Привяжите SSL-сертификат (бесплатный или свой).
  3. Укажите привязку TLS/SSL для домена.

Совет: используйте Azure Key Vault для хранения сертификатов — это безопаснее, чем хранить их в файлах.

Автоскейлинг: когда сайт растёт

App Service Plan умеет автоматически масштабироваться по метрикам. Настройка через CLI:

az monitor autoscale create \
 --resource-group myapp-rg \
 --resource myapp-plan \
 --resource-type Microsoft.Web/serverfarms \
 --name autoscale-rule \
 --min-count 2 \
 --max-count 10 \
 --count 2
az monitor autoscale rule create \
 --autoscale-name autoscale-rule \
 --resource-group myapp-rg \
 --scale out 2 \
 --condition "Percentage CPU > 75 avg 5m"

При правильно настроенном автоскейлинге проект выдерживает рост трафика в 10 раз без ручного вмешательства. Например, наш клиент — сервис онлайн-бронирования — пережил Black Friday, когда нагрузка выросла в 15 раз, а приложение осталось отзывчивым.

Сравнение методов деплоя

Метод Время настройки Zero-downtime Подходит для
FTP/zip 30 минут ❌ Тестовые проекты
GitHub Actions 1 день ✅ (со слотами) Продакшен
Azure DevOps 1 день ✅ Enterprise
Terraform 3–4 дня ✅ Инфраструктура как код

GitHub Actions в 10 раз быстрее ручного FTP-деплоя и полностью исключает человеческий фактор. Для сравнения: при FTP вы тратите 10 минут на загрузку файлов, а при CI/CD — 2 секунды на commit.

Типичные ошибки и их решения

  • 502 Bad Gateway: чаще всего из-за несовместимости версий PHP или Node.js с runtime Azure. Проверьте az webapp config show и сравните с локальной средой.
  • Переменные окружения не подхватываются: задавайте их через az webapp config appsettings set, а не через .env-файл в архиве.
  • SSL-сертификат не работает: обязательно укажите привязку в портале Azure после добавления сертификата.

Что входит в настройку под ключ

Отметим: когда вы доверяете нам настройку деплоя на Azure App Service, мы:

  • Анализируем ваш проект и подбираем оптимальный план (мы работаем с Azure более 5 лет, настроили деплой для 50+ проектов)
  • Настраиваем CI/CD через GitHub Actions или Azure DevOps
  • Подключаем Deployment Slots с автоматическим swap и zero-downtime
  • Привязываем кастомный домен и SSL-сертификат
  • Настраиваем автоскейлинг и мониторинг
  • Документируем всю конфигурацию

Мы гарантируем, что после настройки вы сможете деплоить одной кнопкой. Свяжитесь с нами, чтобы обсудить ваш проект — мы оценим его за 1 день и предложим оптимальное решение.

Срок реализации

Этап Срок
Базовый деплой App Service + GitHub Actions 1–2 дня
Deployment Slots + swap +1 день
Terraform-описание всей инфраструктуры 3–4 дня

Не откладывайте — закажите консультацию, и мы сделаем ваш деплой надёжным и автоматическим.

Наши компетенции:

Последние работы

  • Разработка сайта компании B2B ADVANCE
    Разработка сайта компании B2B ADVANCE
    1542
  • Разработка веб-приложения для компании FEEDME
    Разработка веб-приложения для компании FEEDME
    1394
  • Разработка веб-сайта для компании БЕЛФИНГРУПП
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    1081
  • Разработка интернет магазина для компании FURNORO
    Разработка интернет магазина для компании FURNORO
    1368
  • Разработка веб-приложения для компании Enviok
    Разработка веб-приложения для компании Enviok
    1139
  • Разработка веб-сайта для компании ФИКСПЕР
    Разработка веб-сайта для компании ФИКСПЕР
    1060