Build-Package-Deploy+Manage

Решение проблемы

  • Такой продукт есть. Пруф в каментах.

    Голосов: 0 0,0%
  • Мы решаем проблему иным методом (укажу в каментах).

    Голосов: 0 0,0%
  • Хочу такой продукт, но с БлДж и Шл! (укажу в каментах)

    Голосов: 0 0,0%
  • Такой продукт не нужен.

    Голосов: 0 0,0%

  • Всего проголосовало
    6

whirlwind

TDD infected, paranoid
Есть масса утилит, которые обеспечивают сборку, развертывание, контроль целостности кода, структуры БД и прочее связанное с build-package-deploy по отдельности, но нет продукта, который выполнял бы все это с упором на долгоиграющие проекты, несколько копий проекта, несколько источников данных, которые могут быть в рассинхронизированном состоянии, команду разработчиков. В связи с чем возникают вопрос: такому продукту нет аналогов или нет необходимости в таком продукте?

Постольку-поскольку в нашей ситуации потребность в таком продукте довольно велика, хочу провести блиц опрос - насколько вы нуждаетесь в продукте, который позволит держать "код в узде". В кавычках, потому что вопрос непростой. Далее несколько уточнений которые, я надеюсь, будут поняты и дополнены заинтересованными разработчиками.

Основные (первичные) нефункциональные требования (в порядке приоритета-сложности реализации, накат считать upgrade/downgrade/install/uninstall фичи):
1. Обеспечить целостность данных (накат на существующие данные)
2. Обеспечить целостность структуры данных (накат на структуру данных)
3. Обеспечить целостность исходного кода (фигня - есть в любом пм)

Прочие (вторичные) нефункциональные требования (юзер-френдли кому д.б. этот продукт):
- командная разработка
- повторное использование кода
- объектно-ориентированый подход
- продолжительный цикл разработки и сопровождения
- пакетная архитектура
- активное использование автоматизированных тестов
- автоматическое обслуживание проекта (build-deploy-upgrade)

Фичи:
- Обработка событий при обновлении пакета, от которого зависит данный (например
ребилд данных)
- Патчи (проблема в боевых данных) в рамках отдельного пакета
- Выполнение модульных тестов для всей сборки (integration test)
- Автоматическое разрешение зависимостей
- Апгрейд/откат/инстал/деинсталл пакетов (попутно с зависимостями)
- Билды на основе манифестов по набору пакетов (например собираем шоп и биллинг из одного проекта)
- Возможность поднятия версии без наката промежуточных версий
- Подгружаемые контриб-данные (например мегапатч был, а в последующих версиях сплыл)
- Отслеживание пакетных зависимостей (smart-patch)
- Отсоединение данных подсистемы от зависимых данных (грубо сброс/установка ключей на таблицы)
- Для простых ситуаций возможность работы на конфиг-файлах (типо ant, phing)
- Транзакционность (или все или ничего)
- Рабочие копии пакетов с возможностью разработки TDD
- Контроль/работа тока в рамках конкретной major-версии (мажоры - обратно совместимытолько по манифестам)

Есть определенное колво идей и вариантов решений по этому поводу, хотелось бы рассширить список, либо убедиться что это не актуально.
 

fixxxer

К.О.
Партнер клуба
Пригодилось бы, Build-Package-Deploy прежде всего, Manage как приятный бонус тоже.

Хотя вопрос в том, в каком виде бы пригодилось. Если это предложение подумать/спроектировать/реализовать в OSS - да, если речь идет о коммерческом продукте - нафиг. )
 

whirlwind

TDD infected, paranoid
Дык BPD полно есть уже, тот же phing чем не устраивает? Подход build плохо применим в случае DDD например. Какой build на рабочие данные? :)
 

fixxxer

К.О.
Партнер клуба
Phing не устраивает тем, что это вообще не то, что мне надо, а то, что мне надо, пишется с нуля проще, чем допиливанием оного. =)
 

whirlwind

TDD infected, paranoid
fixxxer дык давай колись какие задачи у тебя? Может у тебя уже есть то, что мне надо :D
 

atv

Новичок
а ещё чтобы деплоил на несколько серверов по ролям
 
Сверху