0Pricing
DevOps Bootcamp · Урок

Управление облачными ресурсами

Автоматизируйте развёртывание и обновление облачных ресурсов, например AWS, Azure и GCP, используя принципы IaC и GitHub Actions.

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

Введение в автоматизацию облачных ресурсов

Добро пожаловать! На этом уроке мы рассмотрим, как автоматизировать развертывание и обновление облачных ресурсов с использованием принципов инфраструктуры как кода (IaC) и GitHub Actions.

Ручное управление облачными ресурсами может быть медленным и приводить к ошибкам. Автоматизация обеспечивает согласованность и скорость.

Почему GitHub Actions подходит для облачной IaC?

GitHub Actions предоставляет мощную платформу для автоматизации задач облачной инфраструктуры. Вот почему это отличный выбор:

  • Контроль версий: Код инфраструктуры хранится вместе с кодом приложения.
  • Автоматизация: Развертывания автоматически запускаются при изменениях кода.
  • Наглядность: Статус развертывания можно видеть непосредственно в GitHub.
  • Интеграция: Платформа легко подключается к основным облачным поставщикам.

Подключение к облачному поставщику

Для управления облачными ресурсами GitHub Actions требуется разрешение на взаимодействие с вашим облачным поставщиком, например AWS, Azure, GCP и т. д. Обычно это делается одним из следующих способов:

  • Ключи доступа и субъекты-службы: учетные данные для программного доступа.
  • OpenID Connect (OIDC): более безопасный метод аутентификации без ключей.

На этом уроке мы сосредоточимся на безопасном использовании учетных данных.

Безопасное хранение облачных учетных данных

Никогда не прописывайте конфиденциальные учетные данные непосредственно в файлах рабочего процесса. GitHub Actions предоставляет для этого секреты.

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

  • Перейдите в Settings своего репозитория.
  • Откройте раздел Secrets and variables > Actions.
  • Нажмите New repository secret, чтобы добавить ключи доступа к облаку.

Базовая структура рабочего процесса развертывания IaC

Типичный рабочий процесс GitHub Actions для IaC включает следующие шаги:

  1. Получение кода: получить файлы IaC.
  2. Настройка учетных данных: задать переменные окружения для облачного поставщика.
  3. Установка инструмента IaC: например, AWS CLI, Azure CLI, Terraform или Pulumi.
  4. Выполнение команд IaC: спланировать изменения, применить их или удалить ресурсы.

Рассмотрим общий пример.

Универсальный рабочий процесс применения облачной инфраструктуры

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

Обратите внимание, как secrets.AWS_ACCESS_KEY_ID используется для доступа к сохраненному секрету.

name: Deploy Cloud Resources

on: push

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout code
        uses: actions/checkout@v4

      - name: Configure AWS Credentials
        uses: aws-actions/configure-aws-credentials@v4
        with:
          aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
          aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
          aws-region: us-east-1

      - name: Run IaC Apply Command
        run: |
          # Replace with your actual IaC tool command (e.g., terraform apply, aws cloudformation deploy)
          echo "Running cloud resource deployment..."
          # aws s3 mb s3://my-unique-coddykit-bucket-123

Пример: развертывание корзины AWS S3

Вот простой пример создания корзины S3 с помощью AWS CLI. Он показывает, как интегрировать в рабочий процесс команды для конкретного облака.

Если Вы решите попробовать этот пример, не забудьте заменить my-unique-coddykit-bucket-123 на глобально уникальное имя корзины!

name: Deploy S3 Bucket

on: push

jobs:
  create-s3:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout code
        uses: actions/checkout@v4

      - name: Configure AWS Credentials
        uses: aws-actions/configure-aws-credentials@v4
        with:
          aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
          aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
          aws-region: us-east-1

      - name: Create S3 Bucket
        run: |
          aws s3 mb s3://my-unique-coddykit-bucket-123
          echo "S3 bucket created successfully!"

Пример: развертывание группы ресурсов Azure

Аналогично, для Azure используется Azure CLI. Этот рабочий процесс выполняет вход в Azure и создает группу ресурсов.

Вам потребуется настроить AZURE_CLIENT_ID, AZURE_TENANT_ID и AZURE_SUBSCRIPTION_ID как секреты GitHub, часто с использованием субъекта-службы.

name: Deploy Azure Resource Group

on: push

jobs:
  create-rg:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout code
        uses: actions/checkout@v4

      - name: Azure Login
        uses: azure/login@v1
        with:
          client-id: ${{ secrets.AZURE_CLIENT_ID }}
          tenant-id: ${{ secrets.AZURE_TENANT_ID }}
          subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}

      - name: Create Azure Resource Group
        run: |
          az group create --name coddykit-rg --location eastus
          echo "Azure Resource Group created!"

Управление обновлениями и откатами

После развертывания ресурсов Вам потребуется управлять обновлениями. При использовании IaC и GitHub Actions это означает следующее:

  • Обновление файлов IaC: измените конфигурацию (например, добавьте новый экземпляр EC2).
  • Отправка изменений: зафиксируйте изменения и отправьте их в свой репозиторий.
  • Автоматическое развертывание: рабочий процесс запускается и применяет обновления.

Для отката обычно возвращают файлы IaC к предыдущей версии и повторно запускают развертывание.

Проверка безопасности управления облаком

При автоматизации управления облачными ресурсами с помощью GitHub Actions какой способ считается наиболее безопасным для работы с конфиденциальными облачными учетными данными?

Итоги: управление облачными ресурсами

Вы узнали, как GitHub Actions может автоматизировать развертывание и обновление облачных ресурсов с использованием принципов IaC.

  • GitHub Actions предоставляет надежную платформу для автоматизации IaC.
  • GitHub Secrets имеют решающее значение для безопасного управления облачными учетными данными.
  • Рабочие процессы интегрируют специализированные для облачных платформ интерфейсы командной строки (AWS CLI, интерфейс командной строки Azure) для взаимодействия с поставщиками.
  • Обновления выполняются путем изменения файлов IaC и повторного применения конфигурации рабочим процессом.

Продолжайте практиковаться, чтобы создавать автоматизированные облачные конвейеры!

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

Урок «Управление облачными ресурсами» бесплатный?

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

Чему я научусь в уроке «Управление облачными ресурсами»?

Автоматизируйте развёртывание и обновление облачных ресурсов, например AWS, Azure и GCP, используя принципы IaC и GitHub Actions. Ты практикуешь DevOps Bootcamp с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

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

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

Сколько времени занимает урок «Управление облачными ресурсами»?

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

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

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

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

  1. IaC с Terraform и GitHub Actions
  2. Управление облачными ресурсами
  3. Автоматизация обновлений инфраструктуры
  4. Управление состоянием Terraform и удалёнными серверными модулями
← Назад к DevOps Bootcamp