Подтвердить что ты не робот

Инструмент непрерывной интеграции, работающий на AppEngine

Существуют ли инструменты непрерывной интеграции, которые будут запущены в Google App Engine?

4b9b3361

Ответ 1

Я так не думаю. Безопасная среда песочницы Google App Engine не кажется совместимой с требованиями всех движков CI, которые я знаю (запись в файловую систему является основной потребностью любого двигателя для проверки источников, их компиляции, регистрации во время тестов, для создания отчетов, и т.д.).

Как я уже сказал в комментарии, Amazon EC2 подходит для запуска движка CI, и я знаю, что многие предприятия используют его для этой цели. Вы действительно должны смотреть в этом направлении.

Ответ 2

В последнее время Cloudbees вывести эту функцию:

Пользователи Google App Engine теперь могут запускать непрерывную интеграцию Jenkins в облаке, подписываясь на appengine.cloudbees.com. Дженкинс будет следить за вашими исходными кодами проектов за любые изменения, запускать необходимые сборки и тесты и уведомлять вашу команду о любых проблемах - или автоматически развертывать приложение в Google App Engine, если все будет выглядеть хорошо.

Ответ 3

В конце дня приложение с движком приложений - это всего лишь код python или java-код. Вы можете использовать свой любимый инструмент CI для создания своего приложения, выполнения модульных тестов и развертывания на любом тестовом сервере, который вы хотите, либо локальном, используя dev-сервер, либо в облаке, если вы действительно хотели... Какие дополнительные функции вы ищете для?

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

Ответ 4

Да, вы можете использовать функцию [в настоящее время экспериментального] разделения трафика, с опцией cookie, для отправки новых клиентов в новую версию.

https://developers.google.com/appengine/docs/adminconsole/trafficsplitting

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

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

Если вы сохраните последнее значение cookie в memcached-backed-by-ds {use expiry date!}, вы можете реализовать непрерывную интеграцию с одним фильтром запросов; просто установите синтаксис хранилища данных в свой новый файл cookie для разделения трафика, и вам будет хорошо идти.

Ответ 5

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

Если создаваемая вещь сама по себе является приложением, вы можете ее автоматически развернуть, а затем использовать службу AppEngine для подключения к ней и протестировать ее.

Я не думаю, что это было бы более эффективно, чем наличие локального экземпляра CI, и это, по крайней мере, в краткосрочной перспективе будет более сложным для настройки и поддержки.

Опять же, мое нынешнее понимание AppEngine ограничено только тем, что я использовал для Google Wave и нескольких других небольших проектов.