Автор оригинала: Mariusz Masztalerczuk.
Этот пост был Первоначально опубликовано На http://snoozy.ninja/.
Непрерывное развертывание (CD) – это подход программного обеспечения, в котором функциональные возможности программного обеспечения часто доставляются посредством автоматических развертываний.
Один из «последних» тенденций в ИТ-мире (более конкретно в DevOps Часть) – Непрерывное развертывание и Непрерывная доставка Отказ Google Trends иллюстрирует это довольно хорошо:
Процесс адаптации проекта к этой методологии требует изменения, связанных с самим кодом, а также к организации работы. Автоматизация и упрощение этапов доставки программного обеспечения является очень важным этапом. Сегодня я хотел бы показать вам, как легко настроить и запустить автоматический Развертывание приложения, написанного с использованием Vue Cli Отказ
Одним из этапов процесса разработки программного обеспечения является кодом Обзор Отказ На этом этапе человек, который не является автором кода, отзывы об этом и проверяет, есть ли какие-либо ошибки в коде. Во время этого процесса, особенно при создании веб-приложения, может быть очень полезно запустить новую версию приложения, чтобы увидеть, как это работает и выглядит так.
Конечно, вы можете скачать код, который был добавлен в потянуть запрос И запустите его самостоятельно, но очень часто используют приложение не принадлежат к тривиальным процессам (например, он может оказаться, что нам нужно запустить некоторые другие услуги). Вот почему лучше полностью автоматизировать этот процесс. Благодаря этому, каждый филиал будет иметь адрес, где будет доступна его встроенная и рабочая версия.
Процесс автоматизации очень тесно связан с инструментами, которые мы используем для тестирования и создания нашего приложения. В приведении ниже я решил использовать Gitlaba и Amazon S3 Отказ Конечно, вы можете заменить эти элементы другими услугами. Любой CI Инструмент, как Трэвис , Дженкинс может заменить gitlab. Вместо S3 вы можете использовать любой вид хостинга (рекомендую Github Pages которые можно использовать бесплатно).
Наш процесс будет выглядеть так:
- Разработчик создает новую ветвь локально и вносит изменения в код.
- Когда новая филиала «подталкивается» в наш репозиторий, наш трубопровод начинает работать. Трубопровод будет создавать и развернуть текущую версию к S3.
- Во время процесса обзора после каждого обновления нашего филиала (или запрос на тягу) новая версия будет автоматически добавлена. Старая версия все еще существует.
- Когда филиал удаляется или попадет в мастеру, наш трубопровод удалит больше не нужен пробную версию.
Создание нового ведра
Первый шаг будет создать место, где мы будем «загружать» новые версии нашего приложения. Поскольку мое приложение представляет собой простое приложение, которое было построено с использованием Vuecli, мы можем использовать S3. Если вы не знаете, что Amazon S3 (Amazon Simple Storage Storage) – это достаточно, чтобы вы знали, что это простой сервис, который позволяет вам сохранять файлы в облаке. Он имеет очень прост в использовании веб-интерфейс, который позволяет хранить и управлять своими данными. Количество сохраненных данных теоретически неограниченное. Однако вы должны знать, что все файлы будут публично доступны. Вы сможете просмотреть любой файл, который добавляется в S3. Если у вас есть некоторые «секреты» в вашем коде, не используйте S3 для хостинга вашего приложения!
Давайте начнем с создания нового «ведра». Ведро – это не что иное, как место, где будет храниться наше приложение. Имя ведра определит адрес, в котором будет доступна наша приложение. Помните, что если вы хотите использовать другой домен, вам нужно будет назвать ваше ведро, точно так же, как ваше доменное имя. В противном случае у вас возникнут проблема, если вы хотите использовать Market53 (Это еще один сервис AWS, который отвечает за DNS). Создание ведра мы можем сделать По этой ссылке Отказ Просто нажмите «Создать новое ведро» и введите его имя. Имя ведра должно быть доступно глобально (это связано с работами S3).
Окончательная версия нашего ведра должна выглядеть так:
Теперь мы должны сделать еще одну вещь – мы должны включить возможность, которая позволит нам разместить наши файлы. Это очень просто и сводится только к указанию файла, который будет отображаться по умолчанию (index.html). Варианты можно найти под вкладкой «Свойства»
Сейчас самое время добавить политику для нашего ведра. Мы хотели бы, чтобы это было только для чтения для каждого человека. Наша политика должна быть следующей:
Похищение
Добавление нового пользователя
Второй шаг – создать пользователь. Это будет пользователь, который будет использоваться для выполнения операций на S3. Мы установим права доступа пользователя, что позволит ему управлять нашим ведром. Он добавит файлы и удаляет их, когда они становятся ненужными. Новый пользователь должен иметь политику, которая выглядит так:
Похищение
Обратите внимание на строку 9. Измените его, чтобы соответствовать имени, которое вы использовали в качестве имени вашего ведра.
Последнее, что нужно сделать, это скачать ключевые ключи доступа. Они доступны под вкладкой «Учетные данные безопасности». Помните, что вы можете видеть их только один раз. Нам понадобится их при настройке нашего GitLab.
Процесс подготовки нашего трубопровода проще. Единственное, что нам нужно сделать, это скопировать этот файл и сохранить его как .gitlab-ci.yml
Отказ
Похищение
Мы должны помнить, чтобы добавить наши Учетные данные о безопасности
На настройки CI/CD в настройках GitLab.
Давайте теперь обсудим самые важные элементы этого файла.
Докер
Трубопроводы GitLab используют Docker Image, который помогает нам настроить среду, необходимую в процессе тестирования/создания приложения. Стоит отметить, что на каждом этапе они могут иметь свою собственную версию Docker (строка 31). Это полезно, потому что в процессе здания приложения нам понадобятся элементы, связанные с узлом, но во время развертывания нам понадобится изображение, которое установлено Python. Мы нуждаемся в этом, потому что мы будем использовать AWSCLI, который мы будем использовать для копирования наших файлов на удаленный сервис S3. Благодаря этой одной линии, в течение нескольких минут после добавления наших изменений в репозиторий мы можем проверить их в рабочей среде.
Просмотрите этап развертывания
Главная магия начинается в Deploy_review
раздел. На этом этапе наше применение (которое было построено в Constate Step), будет добавлена к S3. Давайте посмотрим на команду, которая копирует файлы.
AWS S3 CP SET S3://$ {Bucket_name}/$ {ci_commit_ref_slug}/$ {ci_commit_sha} –recursive
Наши переменные соответственно:
$ {Bucket_name}
это имя ведра.$ {Ci_commit_ref_slug}
это имя текущего ветви.$ {Ci_commit_sha}
это хеш нынешней головы.
Адрес, в котором наше приложение будет чем-то похожее на:
https://test5555.s3-website.us-east2.amazonaws.com/fix_123/${CI_COMMIT_SHA}
Для главной ветки у нас очень похожее поведение. Только то, что вместо имени разветвленных файлов будет скопировано по основным адресам (например, https://test5555.s3-website.us-east2.amazonaws.com).
После процесса обзора, когда ветка будет объединена или отклонена, мы хотели бы, чтобы наше приложение было удалено из S3. Кодекс между строками 48-59 несет ответственность за это.
Конфигурация приложения
Есть также одна вещь, чтобы помнить. Поскольку наша заявка будет доступна на разных адресах, ее следует учитывать в процессе здания. Переменная Vue_app_roouter_base
используется для этой цели. Определяет адрес где наша заявка будет найдена доступна. При строительстве версий из ветки установите его на ветвие имя.
Как мы могли видеть, настройка автоматического развертывания нашей тестовой версии очень проста и приводит вас только для правильной настройки хостинга и добавить .gitlab-Ci в наш проект. Такие пробные версии могут быть использованы для проверки приложения во время обзора, но вполне может быть первым шагом для создания интеграционных тестов, которые будут работать в нашем коде.