2017-01-30 18 views
3

Я пытаюсь изучить Apache NiFi. До сих пор не наблюдалось никаких способов контроля версий.Поддерживает ли версия управления версиями Apache NiFi

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

Как насчет слияния кода у нескольких пользователей?

Любая помощь в этом отношении поможет мне продолжить мое исследование.

ответ

3

NiFi Templates - отличный формат для управления конфигурацией потока NiFi. Вы можете определить шаблоны для всего: от небольших фрагментов кода до больших вложенных структур групп процессов, по существу, всего вашего потока. Шаблоны будут включать процессоры, очереди и службы контроллеров, но не будут содержать чувствительные значения, такие как пароли. Шаблоны хранятся в виде XML-файлов, дружественных к исходному контролю (с NiFi v1.0).

Шаблоны предоставляют возможность отдельным разработчикам отдельно строить части потока, а затем объединять детали вместе в одном NiFi. Если вы сопоставляете шаблоны с группами процессов, замена старого на новый может быть довольно простой и интуитивно понятной.

+0

Спасибо Джеймс. Это хороший материал. Когда я экспортировал шаблон группы процессов и импортировал обратно, сохраняя flow.xml до и после, я вижу, что «diff» сообщает о некоторых изменениях между двумя xmls. Сообщается, что некоторые идентификаторы групп изменены. Разве это поведение не нарушает цель контроля версий? –

+0

Восстановление шаблона создает копию. Обычно я восстанавливаю новый поток бок о бок со старым, вырезаем изящно, а затем удаляем старый. До вас, в зависимости от ваших потребностей. – James

+0

Я не уверен, каковы ваши ожидания контроля версий. Я считаю, что NiFi больше аналогичен базе данных, чем модуль кода в отношении контроля версий. Да, материал должен быть проверен. Но операторы должны иметь возможность касаться, чувствовать и работать с работающей системой. – James

5

В дополнение к большому ответу Джеймса я также укажу, что этот подход к управлению потоком привлек внешние системы контроля версий и поставил задачу на выполнение пользователем. Я имею в виду, что пользователи (или автоматизированные процессы) могут инициировать создание шаблона, а затем хранить этот шаблон в VCS. Это хорошо работает, но оно также недостаточно. Другое направление также важно, если при заданном потоке с версией вы хотели бы, чтобы это автоматически отражалось на другом кластере/системе/окружении. Подумайте о жизненном цикле разработки программного обеспечения, который может пройти, когда вы создаете потоки в среде разработки и проверяете/проверяете в процессе и в процессе производства. Или подумайте о производстве, где поведение не так, как ожидалось. В то время как NiFi предлагает действительно мощную интерактивную модель управления и управления, иногда люди хотят иметь возможность тестировать новые подходы и теории в другой среде. В результате мы сейчас работаем на really awesome capability.

Приходите к разговору. Мы хотели бы услышать ваши мысли.

Thanks

+0

Спасибо, Джо. Хотя я склонен соглашаться (и я тоже вам это поддерживаю) с шаблоном подхода VCS, см. Мои комментарии к ответу, предложенному Джеймсом. –

+0

Мне также было бы очень интересно узнать, есть ли планы по обеспечению непрерывной интеграции (CI) в дорожной карте NiFi и/или приходить в любое время раньше. –

+0

@CalRanjan Да, это именно то, что связано с описанным выше связанным управлением конфигурацией контура потока. Решение позволяет автоматизированное или контролируемое внедрение версий потоков на основе совершенных изменений в других средах. В результате можно использовать более традиционную разработку, постановку, прогрессию/жизненный цикл производственного типа, чтобы дополнить силу интерактивной команды и управления NiFi уже. –