Начало работы с непрерывным развертыванием

В типичной парадигме разработки программного обеспечения; инженерные и продуктовые группы работают вместе, чтобы организовать выпуски по традиционному расписанию продукта. Эти расписания обычно имеют форму двухнедельного спринта, ежемесячных обновлений или ежеквартальных обновлений продуктов. За это время одновременно разрабатывается и запускается в производство множество нового кода. Этот процесс может привести к ужасным результатам как для разработчиков, так и для конечных пользователей. Разработчикам приходится отслеживать ошибки, которые не фиксируются QA, а конечным пользователям приходится испытывать разочарование, чтобы изучить новые функции и разобраться с этими ошибками. Вот почему команды разработчиков программного обеспечения переходят к конвейеру непрерывного развертывания.

Непрерывное развертывание - это популярный процесс DevOps, который позволяет командам разработчиков выпускать обновления несколько раз в день. Разбивая функции на минимально возможные куски, и как только фрагмент кода завершен, они развертывают его в производственной среде. Волшебство этого процесса в том, что он связан с текущим процессом разработки и делает путь разработчика плавным. Мы узнаем больше о чудесах непрерывного развертывания позже в этой статье.

В этой статье мы будем использовать службы приложений Azure и GitHub для настройки непрерывного развертывания с помощью приложения Node.js, предоставленного Major League Hacking. Мы внесем небольшие изменения, чтобы увидеть мощь Azure и преимущества настройки непрерывного развертывания в ваших приложениях.

Предпосылки

Прежде чем мы перейдем к настройке нашей среды непрерывного развертывания, давайте установим все необходимые условия. Чтобы следовать этому руководству, вам понадобится следующее:

  • Visual Studio Code (или IDE по вашему выбору) - я буду использовать Visual Studio Code в качестве редактора, потому что он предлагает несколько функций, которые интегрируются со службами приложений Azure, но вы можете свободно использовать то, что вам нравится. Вам также понадобится терминал, который встроен в Code.
  • Node.js Hacker Starter Guide - Разветвление Руководства для начинающих хакеров Node.js, предоставленное Major League Hacking
  • Учетная запись Microsoft Azure - Создайте учетную запись Microsoft Azure. Если вы студент, вы можете создать учетную запись Azure для студентов и запросить бесплатный кредит в размере 100 долларов США! Обратите внимание, что если вы не студент, Microsoft Azure требует номер кредитной карты для регистрации. Подробнее о стоимости использования Azure вы можете узнать здесь.
  • Учетная запись GitHub - если у вас нет учетной записи GitHub, обязательно создайте ее!
  • Node.js 10.15.3 LTS - Среда JavaScript для серверного кода.

Настройка стартового набора для хакеров Node.js

Node.js - это популярная среда выполнения для JavaScript, которая открывает возможность запуска JavaScript на сервере. Он отлично подходит для хакеров, знакомых с JavaScript и желающих покопаться в коде сервера. Мы предоставили шаблон для новых приложений Node.js, созданных Major League Hacking. Он предназначен для хакеров, которые хотят быстро приступить к работе над новым проектом в среде Node.js. Вы можете узнать больше о том, как использовать этот шаблон, прочитав README на нашей странице GitHub.

Для начала установите NPM, если вы еще этого не сделали. NPM обычно автоматически включается в Node напрямую.

После того, как вы разделили Node.js Hacker Starter, вы захотите продолжить и клонировать его локально, чтобы мы могли внести изменения в код и увидеть развертывание в действии.

Откройте свой терминал или интерфейс командной строки (CLI) и перейдите в каталог, в котором вы также хотите клонировать свое репо. Я обычно добавляю все свои файлы в свой корневой каталог, но не стесняйтесь добавлять его туда, где вам нравится.

Примечание. $ не является частью команды. Он просто сигнализирует о том, что вы должны вводить команды в своем Терминале. Не копируйте $ :)

$ git clone https://github.com/[Username]/mlh-hackathon-nodejs-starter.git
$ cd mlh-hackathon-nodejs-starter

Обязательно клонируйте разветвленную версию репозитория на рабочий стол, заменив [Username] своим именем пользователя GitHub.

Далее нам нужно установить зависимости проекта, которые перечислены в package.json.

$ npm install

Мы готовы запустить наш сервер, что очень просто:

$ npm start

Откройте http: // localhost: 5000, чтобы просмотреть его в браузере.

Приложение автоматически перезагрузится, если вы внесете изменения в код. Вы также увидите ошибки сборки и предупреждения в консоли.

Развертывание приложения Node с помощью Microsoft Azure и GitHub

Что такое непрерывное развертывание?

Теперь, когда у нас есть приложение Node.js, мы можем настроить непрерывное развертывание, но что это именно? Непрерывное развертывание - это стратегия, часто используемая в командах разработчиков программного обеспечения, когда код, переданный разработчиками, автоматически отправляется в производство. Этот процесс оптимизирует производственный процесс и автоматизирует различные этапы, ведущие к развертыванию. Проще говоря, когда код зафиксирован, сервер автоматически что-то с ним делает.

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

Azure обеспечивает непрерывное развертывание из вашего приложения через службы приложений Azure. Вы можете интегрироваться с несколькими источниками, такими как BitBucket, GitHub и Azure Repos, загрузив самые последние обновления из существующего репозитория. Azure также позволяет непрерывно развертывать различные среды выполнения, такие как ASP.net, HTML, PHP и другие. После того, как вы закончите это руководство по настройке с помощью приложения Node, вы должны узнать больше о других возможностях в Документации по непрерывному развертыванию Azure.

Чтобы настроить непрерывное развертывание с нашим приложением Node, нам сначала нужно настроить нашу учетную запись Azure.

Создать учетную запись Azure

Создайте учетную запись Azure, если у вас ее еще нет. Как упоминалось в предварительных требованиях, если вы студент, вы можете настроить учетную запись Azure для студентов и получить бесплатный кредит Azure в размере 100 долларов США. Если вы не студент, вы все равно можете использовать бесплатную пробную учетную запись и получить кредит в размере 200 долларов США на 30 дней! Выполнение этого руководства ничего не будет стоить вам, но вам нужно будет ввести кредитную карту при регистрации в Azure.

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

Azure предоставляет множество услуг через свои службы приложений, которые являются полностью управляемой платформой как услуга (PaaS). Эта служба позволяет интегрировать инструменты Microsoft Azure для подготовки, развертывания и размещения веб-и мобильных приложений за секунды.

Мы будем использовать службы приложений Azure для создания нового веб-приложения. Выберите «Создать новый ресурс» и выберите «Веб-приложение».

Затем нам нужно настроить наше веб-приложение и добавить его в группу ресурсов. Вот мои конфигурации:

ПРИМЕЧАНИЕ. Я использую классическую версию Web App Create Experience. Azure может автоматически перевести вас на новую версию, но настройки должны остаться прежними.

  • Имя приложения: MLHNodeApp (это имя, конечно, буду использовать я :))
  • Подписка: с оплатой по мере использования (если у вас бесплатная пробная версия, выберите эту подписку или версию для учащихся)
  • Группа ресурсов: mlh-node-app (создание новой группы ресурсов)
  • ОС: Linux
  • Служба приложений: FreeTestPlan (Примечание. Если вы используете план бесплатной пробной версии, он автоматически выберет правильный план. Я уже использовал план бесплатной пробной версии. Вы можете создать новый план, если не используете у вас его еще нет, но убедитесь, что вы выбрали бесплатную версию. При выборе Azure автоматически выбирает уровень S1, который НЕ БЕСПЛАТНЫЙ. Убедитесь, что вы изменили его на бесплатный план для демонстрации)
  • Стек выполнения: узел 10.14

Нажмите «Создать», чтобы завершить создание веб-приложения; это должно занять несколько секунд. Перейдите к Службы приложений слева, чтобы получить доступ к вновь созданной группе ресурсов.

Выбор ресурса предоставит вам доступ к различным настройкам и конфигурациям.

Когда вы впервые выбираете ресурс, вас приветствует Обзор ресурсов. Панель управления содержит важную информацию о вашем приложении, например его веб-адрес. Вы заметите, что под обзором есть много вкладок. Мы собираемся выбрать Центр развертывания.

Центр развертывания предлагает различные решения DevOps, которые мы будем использовать для обеспечения непрерывного развертывания с помощью Github.

Интеграция GitHub со службами приложений

Теперь давайте настроим наше приложение для непрерывного развертывания. Чтобы включить непрерывное развертывание с помощью GitHub, в левом меню нажмите Центр развертывания. Выберите GitHub ›Авторизовать.

Azure отобразит приглашение Github с просьбой авторизовать свою учетную запись GitHub, нажмите «Авторизовать», чтобы предоставить доступ. Затем мы собираемся выбрать нашего поставщика сборки, которым в данном случае будет служба сборки службы приложений. Задача поставщика услуг сборки будет заключаться в автоматической сборке вашего кода во время развертывания, когда это возможно, без дополнительной настройки. Нажмите Продолжить.

Затем мы настроим интеграцию GitHub, где мы сообщим Azure организацию, репозиторий и ветвь, которые мы будем использовать для создания нашего кода. Вот мои настройки (но обязательно используйте свои):

  • Организация: SalceMLH
  • Репозиторий: mlh-hackathon-nodejs-starter
  • Филиал: главный

Нажмите Продолжить ›Готово.

Вы успешно подключили свое приложение к службе приложений Azure! В левом меню выберите Обзор. Вы увидите свой собственный URL-адрес Azure, который должен выглядеть примерно так

Https://mlhnodeapp.azurewebsites.net

Перейдите по URL-адресу, чтобы увидеть свое приложение Node Live!

Внесение изменений в репозиторий GitHub с помощью Microsoft Azure

Отлично, теперь наше приложение работает через службы приложений Azure, но это не демонстрирует возможности непрерывного развертывания. Давайте внесем несколько изменений в приложение и разместим их в нашем репозитории GitHub.

Откройте VS Code или любой другой редактор и откройте Node.js Hackathon Starter. В каталоге проекта перейдите к Шаблоны ›главная› index.html.

Мы обновим домашнюю страницу нашего приложения и сделаем простые копии изменений.

Давайте обновим тег <h1>, который читает Hackathon Node.js Starter, и заменим его на все, что вам нравится. Я выбираю My Super Cool Node.js Starter Kit !, вот как он должен выглядеть

<div class=”mt-3 mb-4">
 <h1 class=”h1 mb-0">My Super Cool Node.js Starter Kit!</h1>
 <h2 class=”h4 text-gray font-weight-light”>Build your hackathon project faster.</h2>
</div>

Затем давайте обновим файл README.md и добавим дополнительный текст. В проекте перейдите на README.md и обновите раздел Введение. Вот что я добавил, но продолжайте и добавляйте то, что вам нравится!

# Introduction
This my Super Cool Node.js Starter Kit using Azure App Services and Continuous Deployment with GitHub!

Теперь, когда мы внесли некоторые изменения, откройте ваш терминал или интерфейс командной строки и введите следующую команду, чтобы подтвердить, что мы внесли некоторые изменения в проект.

$ git status

Мы должны получить следующий ответ, показывающий, что мы внесли некоторые изменения в наш файл!

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

Запустите сервер узла, введя

$ npm start

В браузере перейдите по адресу http: // localhost: 5000 / или к любому другому порту, который вам предоставляет терминал.

Теперь вы должны увидеть свои изменения локально!

Отправка изменений в GitHub и развертывание в Azure

А теперь давайте создадим волшебство и перенесем наши изменения на GitHub! Как только наши изменения будут зафиксированы и отправлены, Azure автоматически распознает эти изменения и зафиксирует их в нашей производственной среде. В терминале введите следующие команды, чтобы отправить наши изменения в GitHub. (Обязательно остановите сервер, если вы еще этого не сделали, нажав Ctrl+C)

$ git init
$ git add .
$ git commit -m “Commit using Azure Continuous Deployment”
$ git remote add origin <your git repo url>
$ git push -u origin master

Примечание: если вам нужна помощь в поиске URL-адреса репозитория GitHub, перейдите к репозиторию в своей учетной записи GitHub и нажмите зеленую кнопку «Клонировать или загрузить», чтобы получить его.

Мы разместили наши изменения на GitHub!

Откройте Azure и проверьте, распознал ли он изменения. Вернитесь в Центр развертывания в Службы приложений и просмотрите журналы. Вы должны заметить свой последний коммит!

Откройте свой URL-адрес Azure и наблюдайте за своими изменениями в режиме Производство! И вот так мы создали среду непрерывного развертывания с использованием Azure и GitHub.

Что дальше?

  • Теперь, когда вы создали рабочий процесс непрерывной разработки через GitHub, изучите возможности использования новых рабочих процессов через другие конвейеры, такие как Bitbucket, Local Git или Azure Repo.
  • Использование Azure Pipeline Services (бета-версия) в качестве поставщика сборки
  • Узнайте, как отменить изменения, внесенные ранее в коммит, с помощью служб Azure.