2015-04-10 2 views
4

Я развертываю пакетный сервер свободы в Bluemix, который содержит мое приложение.Есть ли способ резервного копирования развертывания сервера Liberty в Bluemix?

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

Другими словами, что является лучшей практикой или рекомендуемым способом обновления веб-приложения, работающего на сервере Liberty в Bluemix. Я просто держу резервную копию zip, которую я нажал на Bluemix, и восстановить его, если что-то пойдет не так? Или имеется ли возможность управления Bluemix для резервного копирования и восстановления?

+1

Вы говорите, что у вас есть свобода в комплекте с вашим приложением? –

ответ

7

Понятно, что ручное резервное копирование сдвинутого почтового индекса является приемлемой стратегией. Кроме того, я нашел документацию Bluemix Blue-green deployments разумным решением, поскольку это метод развертывания, который использует непрерывную доставку и позволяет клиентам откатывать свое приложение в случае возникновения каких-либо проблем.

В статье Cloud Foundry Using Blue-Green Deployment to Reduce Downtime and Risk лаконично объясняет шаги развертывания (с Bluemix основан на Cloud Foundry, шаги аналогичны Пример: Используя КФ команду Карта-маршрут шаги в упоминаемой ранее Bluemix документации).

+3

Сине-зеленые развертывания - лучший подход –

5

Я согласен с рекомендацией Райана использовать подход «синий/зеленый», хотя этот термин может быть незнакомым для тех новых развертываний облачного сервера. Мартин Фаулер суммирует проблему, обращается в BlueGreenDeployment:

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

Решение этой проблемы является одним из основных преимуществ PaaS.

Это, в историческом контексте, стоит отметить, что эта сине-зеленая стратегия не является новой для облачных вычислений. Позвольте мне подробно остановиться на одном из «старых» способов решения этой проблемы:

Предположим, у меня есть сайт, размещенный на выделенном сервере, myexample.com. IP-адрес моего публичного сервера («синий») будет представлен в записи DNS «@» или как псевдоним CNAME; другой сервер («зеленый») будет размещать более новую версию приложения. Чтобы протестировать новое приложение публично, не влияя на производственную среду live, я просто обновляю /etc/hosts, чтобы сопоставить доменное имя верхнего уровня с IP-адресом зеленого сервера. Например:

129.42.208.183 www.myexample.com myexample.com 

После того, как я промывать локальные записи DNS и закройте все браузеры, все запросы будут направлены в зеленой среде предварительного производства.Как только я подтвержу все работы, как ожидалось, я обновляю запись DNS для живой среды (myexample.com в этом случае). Предполагая, что DNS имеет достаточно короткое значение TTL, равное 300 секундам, я обновляю значение записи A, если по IP или CNAME значение записи, если по псевдониму, и изменение будет передано DNS-серверам за считанные минуты. Чтобы подтвердить распространение новых значений DNS, я прокомментирую вышеупомянутое изменение /etc/hosts, сбросьте локальные записи DNS, а затем запустите traceroute. Предполагая, что он правильно решает локально, я выполняю заключительную двойную проверку, все хорошо в остальном мире со свободной онлайн-проверкой DNS (например, whatsmydns.net).

Приведенное выше предполагает обновление для сервера контента, ориентированного на общественность (например, сервер Apache, подключающийся к базе данных или серверу приложений); переход от предварительного производства к производству более активно, если обновление относится к центральной базе данных или аналогичному серверу транзакционных данных. Если это не слишком разрушительно для посетителей сайта, я отключу вход в систему и удаляю все активные сеансы, эффективно предоставляя сайт только для чтения. Затем я перехожу к обновлению бэкэнд-сервера примерно так же, как описано выше, т. Е. Переключению готового зеленого переднего конца для ссылки на репликацию в готовом зеленом бэкэнде, тест, затем, когда все проверяется, переключите зеленый передняя часть - синяя и снова включите логин. Вуаля.

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

Вместо этого вы создаете два приложения, одно из которых является «живым» («синим»), и одно, которое является предварительным («зеленый»). Вместо того, чтобы изменять записи DNS вашего сайта и ждать распространения распространения по всему миру, вы можете обновить свое предварительное приложение (cf push Green подталкивает новый код к вашему предварительному приложению), протестируйте его со своим собственным URL-адресом (Green.ng.mybluemix.net), и как только вы уверены, что готово к производству, добавьте приложение в таблицу маршрутизации (cf map-route Green ng.mybluemix.net -n Blue), после чего оба приложения «синий» и «зеленый» получат входящие запросы. Затем вы можете отключить предыдущую версию приложения, сняв ее (cf unmap-route Blue ng.mybluemix.net -n Blue).

Посетители сайта не будут испытывать никаких сбоев в работе и в отличие от «старого» способа, который я изложил ранее, команде развертывания (a) не придется укусить свои гвозди, ожидая, когда записи DNS будут распространяться по всему миру, прежде чем узнать, работа и (б) могут немедленно вернуться к предыдущей известной рабочей версии, если серьезная проблема обнаружена после развертывания.

0

Вы должны использовать какой-то source control, такой как Git или SVN. Bluemix прекрасно интегрирован с IBM DevOps Services (IDS), который может использовать git или внешний Github репо для управления вашим проектом. Когда вы открываете панель инструментов вашего приложения, вы должны увидеть ссылку в правом верхнем углу, в которой говорится «ADD GIT». Это автоматически создаст git-репо для вашего проекта в IDS.

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

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

Смежные вопросы