Перемещение кода из разработки в производство не должно быть таким же подверженным ошибкам и трудоемким, как это часто бывает. Используя Buddy , инструмент непрерывной интеграции и доставки, который одновременно служит мощной платформой автоматизации, вы можете автоматизировать значительную часть вашего рабочего процесса разработки, включая все ваши сборки, тесты и развертывания.
В отличие от многих других инструментов CI / CD, у Бадди приятный и интуитивно понятный пользовательский интерфейс с плавной кривой обучения. Он также предлагает большое количество хорошо протестированных действий, которые помогут вам выполнять общие задачи, такие как компиляция источников и передача файлов.
В этом руководстве я покажу вам, как вы можете использовать Buddy для создания, тестирования и развертывания приложения Node.js.
Предпосылки
Чтобы иметь возможность следовать, на вашем сервере разработки должно быть установлено следующее:
1. Настройка приложения Node.js
Конечно, прежде чем погрузиться в Buddy, вам понадобится веб-приложение, которое вы можете создать и развернуть. Если у вас уже есть, не стесняйтесь перейти к следующему шагу.
Если у вас нет приложения Node.js, с которым вы можете поэкспериментировать, вы можете быстро создать его с помощью начального шаблона. Хорошим вариантом является использование популярного начального шаблона Hackathon, поскольку он обладает всеми характеристиками типичного приложения Node.js.
Создайте шаблон на GitHub и используйте git
чтобы загрузить его в свою среду разработки.
1
|
git clone https://github.com/hathi11/hackathon-starter.git
|
Стоит отметить, что Buddy используется с Git-репозиторием. Он поддерживает репозитории, размещенные на GitHub, BitBucket и других таких популярных хостах Git. У Buddy также есть встроенное решение для Git-хостинга, или вы можете так же легко использовать Buddy со своими собственными Git-серверами.
После завершения клонирования используйте npm
чтобы установить все зависимости веб-приложения.
1
2
|
cd hackathon-starter/
npm install
|
На этом этапе вы можете запустить приложение локально и исследовать его с помощью браузера.
1
|
node app.js
|
Вот как выглядит веб-приложение:
2. Создание проекта друзей
Если у вас еще нет аккаунта Buddy , сейчас самое время его создать. Buddy предлагает два уровня премиум и бесплатный уровень, все из которых основаны на облаке. Свободного уровня, который дает вам 1 ГБ оперативной памяти и 2 виртуальных процессора, пока будет достаточно.
После входа в учетную запись Buddy нажмите кнопку « Создать новый проект» , чтобы начать.
Когда будет предложено выбрать хостинг-провайдера Git, выберите GitHub и предоставьте Buddy доступ к своим репозиториям GitHub.
Теперь вы сможете видеть все свои репозитории GitHub на Buddy. Нажмите на репозиторий hackathon-starter, чтобы начать создавать для него автоматизацию.
Обратите внимание, что Buddy автоматически распознает наше приложение Node.js как приложение Express. Это потому, что наш начальный шаблон использует каркас веб-приложения Express.
3. Создание конвейера
На Buddy, конвейер — это то, что позволяет вам организовать и выполнить все ваши задачи. Всякий раз, когда вам нужно что-то автоматизировать с Buddy, вы либо создаете для него новый конвейер, либо добавляете его в существующий конвейер.
Нажмите кнопку Добавить новый конвейер , чтобы начать создание первого конвейера. В показанной ниже форме присвойте имя конвейеру и выберите « Нажать» в качестве режима триггера. Как вы уже догадались, выбор этого режима означает, что конвейер выполняется, как только вы отправляете свои коммиты на GitHub.
Следующим шагом является добавление действий в ваш конвейер. Чтобы помочь вам начать, Buddy разумно генерирует список действий, которые наиболее актуальны для вашего проекта.
Сейчас выберите действие Node.js , которое загружает контейнер Docker, на котором установлен Node.js. Мы будем использовать это действие для создания нашего веб-приложения и запуска всех его тестов. Итак, на следующем экране, вперёд и введите следующие команды:
1
2
|
npm install
npm test
|
4. Присоединение Сервиса
Наше веб-приложение использует MongoDB в качестве базы данных. Если при запуске не удается установить соединение с сервером MongoDB, он завершится с ошибкой. Поэтому наш контейнер Docker на Buddy должен иметь доступ к серверу MongoDB.
Buddy позволяет вам легко подключать разнообразные базы данных и другие сервисы к своим контейнерам Docker. Чтобы подключить сервер MongoDB, перейдите на вкладку « Службы » и выберите MongoDB . В показанной ниже форме вы сможете указать такие данные, как имя хоста, порт и версия MongoDB, которую вы предпочитаете.
Запишите введенные данные и нажмите кнопку « Сохранить это действие» .
Затем вы должны настроить веб-приложение для использования URI сервера MongoDB Бадди. Для этого вы можете либо изменить значение поля MONGODB_URI в файле .env.example , либо использовать переменную окружения в Buddy. А пока давайте продолжим с последним вариантом.
Так что переключитесь на вкладку Variables и нажмите кнопку Add a new variable . В появившемся диалоговом окне установите в поле « Ключ» значение MONGODB_URI, а в поле « Значение» — допустимую строку подключения MongoDB, основанную на имени хоста, которое вы выбрали ранее. Затем нажмите кнопку Создать переменную .
Официальная документация содержит гораздо больше информации об использовании переменных среды в конвейере Buddy .
5. Запуск трубопровода
Наш конвейер уже работает, хотя у него есть только одно действие. Чтобы запустить его, нажмите кнопку « Выполнить конвейер» .
Теперь вы попадете на экран, где вы можете следить за ходом конвейера в режиме реального времени. Кроме того, вы можете нажать любую из Кнопки журналов (есть одна для каждого действия в конвейере), чтобы более внимательно посмотреть на фактический вывод команд, которые выполняются.
Конечно, вы также можете запустить конвейер, отправив коммит в ваш репозиторий GitHub. Я предлагаю вам внести несколько изменений в веб-приложение, например изменить его заголовок, изменив файл views / partials / header.pug , а затем выполнить следующие команды:
1
2
3
|
git add .
git commit -m «changed the header»
git push origin master
|
Когда последняя команда завершится, вы сможете увидеть новое выполнение запуска конвейера автоматически.
6. Перемещение файлов
Когда сборка прошла успешно и все тесты пройдены, вы, как правило, захотите перенести свой код в рабочий процесс. У Buddy есть предопределенные действия, которые помогут вам безопасно передавать файлы в несколько популярных хостинговых решений, таких как Google Cloud Platform, DigitalOcean и Amazon Web Services. Кроме того, если вы предпочитаете использовать свой собственный частный сервер с SFTP или FTP, Buddy также может напрямую использовать эти протоколы.
В этом руководстве мы будем использовать экземпляр Google Compute Engine, который представляет собой виртуальную машину, размещенную в облаке Google, в качестве нашего рабочего сервера. Поэтому переключитесь на вкладку Actions конвейера и нажмите кнопку + , показанную под действием Build and test, чтобы добавить новое действие.
На следующем экране прокрутите вниз до раздела Google Cloud Platform и выберите опцию Compute Engine .
В появившейся форме вы должны указать IP-адрес вашей виртуальной машины. Кроме того, чтобы разрешить Buddy подключаться к виртуальной машине, необходимо указать имя пользователя и выбрать режим аутентификации.
Самый простой режим аутентификации, на мой взгляд, это ключ SSH Бадди . Когда вы выбираете этот режим, Buddy отображает открытый ключ RSA, который вы можете просто добавить в список авторизованных ключей вашей виртуальной машины.
Чтобы убедиться, что введенные вами учетные данные действительны, вы можете нажать кнопку « Проверить действие» . Если ошибок нет, вы должны увидеть протокол теста, который выглядит следующим образом:
Затем выберите репозиторий GitHub в качестве источника файлов и используйте поле « Удаленный путь», чтобы указать каталог назначения на виртуальной машине Google Cloud. Кнопка « Обзор» позволяет просматривать файловую систему ВМ и выбирать правильный каталог.
Наконец, нажмите кнопку Добавить это действие .
7. Использование SSH
После того, как вы скопировали код на свой рабочий сервер, вы должны снова собрать и установить все его зависимости. Вы также должны перезапустить веб-приложение, чтобы изменения в коде вступили в силу. Для выполнения таких разнообразных задач вам понадобится оболочка. Действие SSH дает вам один, поэтому добавьте его как последнее действие вашего конвейера.
В появившейся форме вы должны снова указать IP-адрес вашей виртуальной машины и учетные данные для входа. Затем вы можете ввести команды, которые хотите запустить. Вот быстрый способ установить зависимости и перезапустить сервер Node.js:
1
2
3
4
5
6
7
|
pkill -HUP node #stop node server
cd my_project
npm install #install dependencies
export MONGODB_URI=
nohup node app.js > /dev/null 2>&1 & #start node server
|
Как показано в приведенном выше коде Bash, необходимо сбросить переменную среды MONGODB_URI
. Это делается для того, чтобы ваш производственный сервер подключался к своему собственному экземпляру MongoDB, а не к сервису Buddy MongoDB.
Нажмите кнопку Add this action еще раз, чтобы обновить конвейер.
На этом этапе конвейер выполняет три действия, которые выполняются последовательно. Это должно выглядеть так:
Нажмите кнопку « Выполнить конвейер» , чтобы запустить ее. Если ошибок нет, Buddy может понадобиться всего минуту или две для создания, тестирования и развертывания веб-приложения Node.js на виртуальной машине Google Cloud.
Вывод
Возможность мгновенно публиковать новые функции, исправления ошибок и улучшения в ваших веб-приложениях дает вам определенное преимущество над конкурентами. Из этого руководства вы узнали, как использовать конвейеры Buddy, предопределенные действия и подключаемые сервисы для автоматизации и ускорения выполнения общих задач, таких как создание, тестирование и развертывание приложений Node.js.
Платформа Buddy может многое сделать. Чтобы узнать больше об этом, обратитесь к его обширной документации .