Эта статья была спонсирована AppFog . Спасибо за поддержку спонсоров, которые делают возможным использование SitePoint.
Есть несколько шагов, связанных с созданием крупномасштабного веб-приложения. Одним из наиболее сложных этапов этого процесса является развертывание. Ваша команда инженеров часто сталкивается с ситуациями, когда код должен быть отправлен быстро, а ваша производственная среда должна обновляться как можно скорее. В такой среде процесс развертывания должен быть достаточно плавным, чтобы не нарушать работу пользователя, но достаточно быстрым, чтобы избежать простоев и сохранить бизнес-цели.
Команда AppFog понимает, насколько важно иметь сильную архитектуру для поддержки поддержки и масштабирования вашего приложения, поэтому они создали инструмент, позволяющий вам сосредоточиться на написании кода, в то же время обрабатывая детали, связанные с инфраструктурой. С AppFog такие вещи, как среды выполнения, балансировка нагрузки и создание отчетов, больше не являются проблемами, которые отнимают так много времени. AppFog может даже помочь вам беспрепятственно развернуть ваше приложение, независимо от того, сколько у вас пользователей, или насколько велики ваши развертывания.
Если вы когда-либо испытывали трудности с тем, чтобы предоставить своей команде разработчиков стратегию развертывания без особых усилий, то методика развертывания Blue-Green, предоставляемая AppFog, может подойти вам и вашей команде.
Что такое методология сине-зеленого развертывания?
Известную проблему, связанную с автоматическим развертыванием, часто называют «переключением», которое относится к переносу программного обеспечения с финальной стадии тестирования на живое производство. Переключение должно происходить быстро, чтобы время простоя было предотвращено или, по крайней мере, минимизировано. Стратегия развертывания Blue-Green обеспечивает безопасное развертывание, гарантируя, что ваше приложение имеет две отдельные производственные среды, максимально близкие к идентичным. В любое время одна из этих сред работает, а другая не получает пользовательский трафик. Если ваша «голубая» среда активна, то тестирование перед развертыванием будет проходить в «зеленой» среде. После того, как ваши тесты пройдут в среде Green, вы перенаправите свой трафик из среды Blue в среду Green, в которой теперь есть обновленный код, прошедший все проверки качества и другое тестирование.
Стратегия развертывания Blue-Green обеспечивает немедленный откат в случае обнаружения ошибки в реальной среде, поскольку вы можете просто перенаправить свой трафик на любую из двух идентичных производственных сред, которая неактивна. Вы можете прочитать больше о методологии развертывания Blue-Green здесь.
Как начать работу с AppFog
Как описано в нашей предыдущей статье, посвященной AppFog и 12-факторной методологии приложений , AppFog — это продукт для управления сетевыми ресурсами, промежуточным программным обеспечением, операционными системами, виртуализацией, серверами, хранилищем и средой выполнения. Все, что вам нужно сделать, это сосредоточиться на написании кода. AppFog построен CenturyLinkand и использует универсальную платформу Cloud Foundry с открытым исходным кодом.
Чтобы включить AppFog на панели управления CenturyLink, зайдите на https://control.ctl.io , войдите в систему, и вы увидите «AppFog», перечисленный в выпадающей панели навигации:
Затем включите развертывание в регионах AppFog, на востоке США и / или на западе США. У каждого региона есть своя кнопка «Добавить регион», чтобы включить ее в вашем AppFog:
После включения AppFog в своей учетной записи вы можете управлять членством в регионах и пространствах, входить в систему с терминала и развертывать приложение.
Используя CLI Cloud Foundry, развертывание так же просто, как переход к каталогу, в котором находится и работает ваш исходный код:
cf push [name of app]
Обновление этого приложения с соблюдением стратегии развертывания Blue-Green требует нескольких дополнительных шагов.
После первоначального развертывания вашего приложения, обновление вашего приложения может быть развернуто с помощью команды:
cf push myapp-Green -n myapp-temp
Эта команда сообщает Cloud Foundry, чтобы она передавала ваш код на временный маршрут, а не на основной, и при условии, что ваше приложение находится в восточном регионе AppFog, URL-адрес для доступа к этому временному пути будет следующим:
myapp-temp.useast.appfog.ctl.io
Пока у нас есть среда Blue, которая представляет собой приложение, которое в данный момент активно и еще не обновлено, и среда Green, которая является только что развернутой временной средой.
Теперь, когда две среды существуют, мы можем привести временную среду в ротацию, что означает, что AppFog автоматически уравновешивает нагрузку, так что трафик будет доставляться в одну из двух сред.
Для этого мы запустим:
cf map-route myapp-Green useast.appfog.ctl.io -n myapp
Как только новая обновленная версия приложения будет работать так, как ожидается, мы можем перенаправить весь трафик на эту версию, что в терминах развертывания Blue-Green будет означать перенаправление трафика из среды Blue в недавно обновленную среду Green:
cf unmap-route myapp-Blue useast.appfog.ctl.io -n myapp.
После того, как сине-зеленый переключатель был сделан, мы можем удалить временный маршрут, выполнив:
cf unmap-route myapp-Green useast.appfog.ctl.io -n myapp-temp
Чтобы узнать больше о сине-зеленых развертываниях с AppFog, см. Их документацию . В частности, ознакомьтесь с соображениями, которые следует учитывать при работе со службами данных или службами, предоставляющими состояние, — это сложная проблема, к которой следует подходить с осторожностью.
Вывод
Хотя запуск успешного крупномасштабного веб-приложения сопряжен с множеством проблем, развертывание не обязательно должно быть одной из них. Удачная методология развертывания Blue-Green может помочь отличить успешный продукт с нулевым временем простоя и продуктом с проблемами. Инструменты AppFog позволят вам развернуть Blue-Green всего за четыре команды, чтобы вы могли вернуться к созданию удивительного продукта.