Как SaaS-компании проверяют и отслеживают код, который они выпускают для клиентов? - PullRequest
5 голосов
/ 07 декабря 2010

Я работаю в компании SaaS, которая каждые шесть недель выпускает новые функции и исправляет ошибки для наших клиентов.Когда мы пишем изменения кода, они проходят через различные этапы (например, конечный автомат), прежде чем попадают на рабочие серверы.Шаги различаются в зависимости от того, сделано ли изменение в обычном цикле разработки или в качестве экстренного исправления.В настоящее время мы используем Harvest для управления шагами и отслеживания того, какой код (функции и исправления ошибок через пакеты) выпускаются клиентам, и в этом смысле он работает хорошо.

К сожалению, Harvest дорог и труден с точки зрения программиста.Ветвление и слияние - это кошмар.Итак, мы собираемся перейти на Mercurial.Mercurial, кажется, преуспевает в этих областях.Однако Mercurial, похоже, не предназначен для отслеживания изменений и управления вышеупомянутым процессом, он работает только с SCM.

Q: Какие опции у нас есть, когда дело доходит до процесса выпуска, конечно жеСуществуют ли другие SaaS-компании (например, Google, Flickr, Facebook, LinkedIn), которым нужен контроль качества перед выпуском кода на рабочие серверы?

В: Плохо ли пытатьсяпостроить процесс в Mercurial или есть другие инструменты, которые нам нужно использовать вместе с Mercurial?

[Редактировать] Чтобы уточнить, это наша (рекомендуемая) веткаструктура .

Вот процесс, который мы сейчас имеем в Harvest:

Hotfix <--> Test Level 1 <--> Test Level 2 <--> Master (Production)
Feature <--> Test <--> Release Test <--> Master (Production)

Я не ищу средство отслеживания ошибок, а скорее средство развертывания, которое помогает нам отслеживать иразвернуть код, который был проверен нашими тестировщиками (код в ветке релиза).Если одновременно работает несколько исправлений, мы должны иметь возможность протестировать их вместе, и если кто-то нарушает код, мы должны иметь возможность «демотерировать» изменения кода, возвращающиеся на один шаг в потоке процесса.Сегодня двум разработчикам достаточно «продвинуть» свои изменения на уровне тестирования 1, и систему можно протестировать с обоими изменениями вместе.Если изменения одного разработчика ломают что-либо только тогда, когда они вместе с кодом другого разработчика, это может быть легко понижено с Тестового Уровня 1.

Ответы [ 2 ]

1 голос
/ 07 декабря 2010

Однако Mercurial, похоже, не предназначен для отслеживания изменений и управления вышеупомянутым процессом, он работает только с SCM.

Лучше всего использовать отдельный инструмент для отслеживания проблем. Таким образом, вы можете использовать лучшие породы для каждой задачи. Просто убедитесь, что вы выбрали тот, который хорошо интегрируется с вашей системой контроля версий.

Чтобы привести несколько примеров: jira (коммерческий) и trac (бесплатный) оба имеют плагины интеграции Mercurial. Они также имеют настраиваемые состояния рабочего процесса, что позволяет моделировать процесс.

0 голосов
/ 10 февраля 2011

Я пришел к выводу, что мы ищем не средство отслеживания проблем, а инструмент развертывания, чтобы заменить этот аспект Harvest. Go и Anthill Pro - два кандидата.

...