Управление деплойментом
От: . Великобритания  
Дата: 26.05.15 16:23
Оценка:
У меня на работе есть самописная система для управления приложениями. Она заточена под наш продукт, но, мне кажется, должно существовать что-то универсальное.
Что оно умеет:
Задаём env, т.е. где мы всё ставим: dev/uat/prod/etc
Для данного env задаём разные hosts. Скажем, в dev всё ставится на localhost, в prod ставится на кластер из ~сотни машин, и т.п.
Определяем сервисы. Сервис описывает что это вообще такое: mysql, web-server или просто java-процесс.
Определяем на каких хостах какие сервисы запускать, какие порты использовать, какие файловые пути, етс.
Сервисы можно стопать|стартовать|проверять статус|посылать кастомные команды. Например, для данного mysql сервиса можно описать, что нужно применить патчи из такой-то папки. И т.п.
Есть web ui и command-line ui где можно видеть всю эту картину и управлять всем этим делом.

Итог.
С т.з. дева: делаешь checkout исходников, набираешь что-то типа "supertool do-all" и через несколько минут у тебя всё запущено, крутится и вертится. Можно всяко тьюнить: "supertool restart client-db" — перестартует нужный инстанс mysql, скажем.
С т.з. админа: набираешь что-то типа "supertool release-prod" и всё само деплоится, крутится и вертится. И можно всё мониторить — всё ли задеплоилось, где что не запустилось, не соединилось, етс.

Мне удалось нагуглить devops тулзы, типа Chef/Puppet, но я не понимаю как их во время девелопмента использовать. Что ещё бывает в этом мире?
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.