Содержание


Введение в IBM Bluemix DevOps Services: часть 4. Aвтоматическое развертывание приложения в Bluemix с помощью конвейера выпуска

Comments

Эта серия руководств из четырех частей демонстрирует читателю, как использовать Bluemix DevOps Services для планирования, разработки и развертывания приложений. В Части 1 было показано, как развернуть простое приложение и вносить в него изменения. В Части 2 объяснялось, как развернуть приложение, в котором используется служба IBM Bluemix. В Части 3 говорилось о том, как использовать возможности планирования Bluemix DevOps Services для планирования и отслеживания своего приложения, как добавить в приложение новую службу Bluemix и как написать код, использующий службу Bluemix. Наконец, из части 4 (настоящего руководства) вы узнаете, как использовать службу Delivery Pipeline для автоматического развертывания своего приложения в Bluemix всякий раз, когда вы или кто-то из вашей группы поместил код в репозиторий вашего проекта.

В качестве бонуса ко всем знаниям, накопленным в процессе работы с примерами из этих руководств, вы получите приложение, которое проверяет цены на товары в интернет-магазинах, избавляя вас от необходимости прочесывать Интернет, чтобы узнать, не появилось ли то, что вы ищете. (Вы, наверное, уже догадались, что я обожаю шопинг?)

Темы Части 4

Из этого руководства вы узнайте:

  • как настроить многоступенчатый конвейер развертывания в соответствии с методом разработки программного обеспечения DevOps;
  • как автоматически настраивать процесс развертывания всякий раз, когда вы или кто-то из вашей группы помещает код в репозиторий проекта.

О приложении

Начните с приложений Lauren's Lovely Landscapes и Fabulous Price Finder, которые построили читатели, изучая предыдущие руководства этой серии.

Как вам известно из Части 2 и Части 3, в приложении Fabulous Price Finder используются службы Bluemix MongoLab и Twilio.

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

Что нужно для начала работы

Часть 4 служит продолжением частей 1, 2 и 3. Если вы еще не освоили эти части, сделайте это, а затем вернитесь сюда. Для всех четырех частей нужны учетные записи в Bluemix и Bluemix DevOps Services, а также один из следующих браузеров:

  • Firefox 15-й или более поздней версии;
  • Chrome 21-й или более поздней версии;
  • Internet Explorer 10-й или более поздней версии;
  • Safari 7-й или более поздней версии.

Запустить приложение Получить код

Шаг 1. Создание среды эксплуатации

В Bluemix организационными единицами инфраструктуры Cloud Foundry, которую можно использовать для хранения и отслеживания ресурсов приложений, служат организации и пространства. Организация состоит из доменов, пространств и пользователей; пространство содержит приложения и службы.

Когда вы входите в Bluemix в первый раз, для вас, по умолчанию создается пространство dev (разработки). Для целей этого руководства пространство dev можно представить себе как место, где можно тестировать код в среде промышленного качества, не помещая его в реальную среду эксплуатации. (Иногда его называют пространством проверки качества или пространством тестирования).

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

  1. Войдите в Bluemix и откройте панель инструментов, если вы еще не сделали этого.
  2. Нажмите кнопку Create a Space в меню слева.
  3. В диалоговом окне Create a Space введите prod в качестве имени пространства и нажмите кнопку CREATE.

Шаг 2. Создание служб для развертывания в пространстве dev

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

Начнем с создания служб для пространства dev.

  1. Откройте панель инструментов Bluemix, если вы еще не сделали этого.
  2. Выберите CATALOG из главного меню.
  3. Создайте службу MongoLab:
    1. прокрутите список вниз, пока не увидите службу MongoLab. (Совет: ищите раздел Data Management. Каталог постоянно пополняется новыми службами.)
    2. Выберите службу MongoLab.
    3. В поле Space диалогового окна Add Service выберите из списка dev.
    4. В поле App выберите из списка Leave unbound.
    5. В поле Service либо оставьте значение по умолчанию, либо замените его любым другим именем по своему выбору, которое начинается с mongo (потому что в коде эта служба называется именно так). Запишите выбранное имя, так как оно понадобится вам позднее.
    6. Нажмите кнопку CREATE.
  4. Создайте службу Twilio.
    1. Перейдите в каталог, если вы еще не сделали этого.
    2. Прокрутите список вниз, пока не увидите службу Twilio. (Совет: ищите раздел Mobile.)
    3. Выберите службу Twilio.
    4. В поле Space диалогового окна Add Service выберите dev.
    5. В поле App выберите Leave unbound.
    6. В поле Service либо оставьте значение по умолчанию, либо замените его любым другим именем по своему выбору, которое начинается с twilio (потому что в коде эта служба называется именно так). Запишите выбранное имя, так как оно понадобится вам позднее.
    7. В поля Account SID и Auth Token введите значения Twilio AccountSID и AuthToken со своей страницы Twilio Account Settings.
    8. Нажмите кнопку CREATE.

Шаг 3. Создание служб для развертывания в пространстве prod

Повторите Шаг 2, чтобы создать службы MongoLab и Twilio для развертывания в вашем пространстве prod. В поле Space вместо dev выберите prod.

Шаг 4. Настройка конвейера выпуска

Теперь можно настроить многоступенчатый конвейер сборки-развертывания для приложения Fabulous Price Finder.

  1. Откройте проект Fabulous Price Finder, созданный и обновленный в Части 2 и Части 3. Для этого откройте страницу Bluemix DevOps Services, войдите, если вы еще не авторизовались, и выберите свой проект на странице My Projects.
  2. Нажмите кнопку BUILD & DEPLOY в правом верхнем углу.
  3. Создайте ступень сборщика, который будет собирать ваше приложение.
    1. Нажмите кнопку ADD A STAGE.
    2. Нажмите кнопку MyStage в верхней части диалогового окна Stage Configuration и дайте имя ступени, набрав Build Stage.
    3. Обратите внимание, что по умолчанию в поле Input Type указано значение SCM Repository. Это означает, что входом для данной ступени будет ваш Git-репозиторий.
    4. Обратите внимание, что по умолчанию выбран пункт Automatically execute jobs when a change is pushed to Git. Это означает, что процесс сборки запускается автоматически всякий раз, когда вы или кто-то еще из вашей группы вносит код в репозиторий вашего проекта.
    5. Нажмите кнопку JOBS, чтобы открыть раздел Jobs диалогового окна Stage Configuration.
    6. Нажмите кнопку ADD JOB и выберите Build.
    7. Так как это приложение не требует компиляции (в отличие от Java-приложений), мы будем использовать тип построителя Simple. Обратите внимание, что можно выбирать из целого ряда построителей.
    8. По умолчанию выбран пункт Stop stage execution on job failure. Это означает, что в случае ошибки никакие задания следующих ступеней конвейера выполняться не будут и вся ступень будет помечена как неудавшаяся.
    9. Нажмите кнопку SAVE.
  4. Теперь добавьте в свое пространство dev операцию развертывания.
    1. Нажмите кнопку ADD A STAGE.
    2. Нажмите кнопку MyStage в верхней части диалогового окна Stage Configuration и дайте ступени имя, набрав Dev Deployment.
    3. Обратите внимание, что в поле Input Type указано Build Artifacts.. Это означает, что в качестве входа для этой ступени используются артефакты сборки, созданные предыдущей ступенью.
    4. Обратите внимание, что по умолчанию выбран пункт Automatically execute jobs when the previous stage completes successfully. Это настраивает конвейер так, чтобы всякий раз, когда кто-то помещает код в репозиторий вашего проекта, выполнялась ступень сборки и в случае успеха запускался процесс развертывания в среде разработки.
    5. Нажмите кнопку JOBS, чтобы открыть раздел Jobs диалогового окна Stage Configuration.
    6. Нажмите кнопку ADD JOB и выберите Deploy.
    7. Замените имя приложения именем, уникальным для вашего пространства Bluemix dev.
    8. По умолчанию система развертывания использует инструкции из манифеста. Нужно, чтобы ваше приложение было развернуто по подходящему URL-адресу, где разработчики вашей группы смогут проверять свой код — а не по адресу, состоящему из случайных символов. Поэтому в разделе Deploy Script после cf push "${CF_APP}" добавьте:

      -n whateverYouWantYourUrlToBe

      Примечание. URL-адрес должен быть уникальным среди всех Bluemix-приложений, так что проявите свои творческие способности.
    9. Под командой cf push добавьте две строки, которые связывают службы в вашем пространстве dev с приложением:

      cf bind-service "${CF_APP}" nameOfYourMongoLabService
      cf bind-service "${CF_APP}" nameOfYourTwilioService

    10. Добавьте команду для воссоздания приложения с вновь привязанными к нему службами:

      cf restage "${CF_APP}"

      Теперь раздел Deploy Script должен выглядеть следующим образом:

      cf push "${CF_APP}" -n fbf-lauren-dev 
      cf bind-service "${CF_APP}" MongoLab-dev 
      cf bind-service "${CF_APP}" Twilio-dev 
      cf restage "${CF_APP}" 
      # View logs 
      #cf logs "${CF_APP}" --recent
    11. Нажмите кнопку SAVE.
  5. Теперь добавьте ступень развертывания в свое пространство prod.
    1. Нажмите кнопку ADD A STAGE.
    2. Нажмите кнопку MyStage в верхней части диалогового окна Stage Configuration и дайте ступени имя, набрав Prod Deployment.
    3. Обратите внимание, что в поле Input Type указано Build Artifacts. Это означает, что в качестве входа для этой ступени используются артефакты сборки, созданные ступенью сборки.
    4. Обратите внимание, что по умолчанию выбран пункт Automatically execute jobs when the previous stage completes successfully. В этот конвейер не включены никакие автоматические тесты, так что автоматическое развертывание в среду эксплуатации может быть небезопасным. Поэтому выделите другой пункт: Only execute jobs when a user manually runs this stage.
    5. Нажмите кнопку JOBS, чтобы открыть раздел Jobs диалогового окна Stage Configuration.
    6. Нажмите кнопку ADD JOB и выберите Deploy.
    7. В поле Space выберите prod.
    8. Замените Application Name именем, уникальным для вашего пространства Bluemix prod.
    9. По умолчанию система развертывания использует инструкции из манифеста. Нужно, чтобы ваше приложение было развернуто по подходящему URL-адресу, где конечные пользователи смогут обращаться к вашему приложению, — а не по адресу, состоящему из случайных символов. Поэтому в разделе Deploy Script после cf push "${CF_APP}" добавьте:

      -n whateveryouwantyoururltobe

      Примечание. URL-адрес должен быть уникальным среди всех Bluemix-приложений, так что проявите свои творческие способности.
    10. Под командой cf push добавьте две строки, которые связывают службы в вашем пространстве dev с приложением:

      cf bind-service "${CF_APP}" nameOfYourMongoLabService
      cf bind-service "${CF_APP}" nameOfYourTwilioService

    11. Добавьте команду для воссоздания приложения с вновь привязанными к нему службами:

      cf restage "${CF_APP}"

      Теперь раздел Deploy Script должен выглядеть следующим образом:
      cf push "${CF_APP}" -n fbf-lauren  
      cf bind-service "${CF_APP}" MongoLab-prod 
      cf bind-service "${CF_APP}" Twilio-prod 
      cf restage "${CF_APP}" 
      # View logs 
      #cf logs "${CF_APP}" --recent
    12. Нажмите кнопку SAVE.

Шаг 5. Пуск конвейера

Теперь, когда конвейер выпуска настроен, его можно испытать! На странице Pipeline нажмите кнопку воспроизведения в области Build Stage, чтобы запустить первую ступень конвейера вручную.

Конвейер выпуска выполнит этапы сборки и развертывания. Если вам нравится то, что получилось в dev, то можно перетащить сборку из области Build Stage в область Prod Deployment, чтобы развернуть приложение в среде эксплуатации.

Что дальше?

Изучая это руководство, вы создали многоступенчатый конвейер и вручную запустили процесс сборки. Сборка также запустится после внесения изменений в код и его загрузки в репозиторий проекта. Затем посмотрите, как конвейер выпуска автоматически развернет приложение.

В качестве дополнительного задания подумайте о том, как реализовать процесс развертывания ответственных приложений без простоев. Подсказка: обратитесь к руководству Дэна Берга Автоматизация процесса развертывания приложений с помощью IBM DevOps Services for Bluemix.


Ресурсы для скачивания


Похожие темы


Комментарии

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

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=40
Zone=Облачные вычисления
ArticleID=1023484
ArticleTitle=Введение в IBM Bluemix DevOps Services: часть 4. Aвтоматическое развертывание приложения в Bluemix с помощью конвейера выпуска
publish-date=12072015