Во-первых, я прошу прощения за огромный размер этого вопроса, поскольку я уверен, что я предлагаю «большое дело» с точки зрения реализации и, вероятно, могло бы состоять из трех или четырех отдельных вопросов. Я бы не спросил, не нуждался ли я в отчаянной помощи.
Передо мной стоит грандиозная задача по пересмотру процедур управления рисками моей компании в отношении нашей онлайн-работы.
Поскольку мы не берем никаких резервных копий и не защищаем наши данные, я решил, что, как и все, кто занимается профессиональным программированием, уже должен был делать это, мы собирались защитить нашу работу с помощью контроля источников. В настоящее время я делаю это на локальном уровне с Git, но другие не используют систему контроля версий, и в конечном итоге мы теряем много преимуществ, которые предлагает система контроля версий. Я бы предпочел, чтобы у нас была система, в которой все используют Git, и чтобы она применяла правило, согласно которому, если он не находится под контролем исходного кода, он не останется. Очевидно, что нам понадобится план резервного копирования, но, как разработчик, я полагаю, что первое, что нужно сделать, это разобраться с аспектами кодирования, прежде чем сортировать решение для резервного копирования - очевидно, любые советы по этому вопросу также приветствуются. .
Мы запустили веб-сайт ASP.NET с бэкэндом SQL Server 2005, выбрав Sitecore в качестве нашей CMS. В идеальном мире я хотел бы, чтобы все изменяющиеся части этого сайта CMS находились под контролем исходного кода, включая базу данных.
На данный момент, и я знаю, что это не самая лучшая идея, я использую одно решение для ВСЕХ подуровней, встроенных в Sitecore. Это находится под контролем исходного кода, и благодаря Git я смог добавить ветки, добавить новые функции и легко исправить ошибки (используя Git-flow в качестве моего решения для рабочего процесса). Я все еще довольно новичок в Git, так что мне не удалось ничего слишком сложного, кроме фиксации, игнорирования определенных файлов и т. Д.
Кроме того, я также хотел бы использовать контроль исходного кода, чтобы получить содержимое базы данных под контролем исходного кода. Насколько я понимаю, вы можете сериализовать элементы контента Sitecore в виде огромного дерева в файловой системе (сохраняются как файлы .item, если я правильно помню?). Если это идеальное решение, я также хотел бы добавить их в систему контроля версий, хотя я точно не знаю, где они будут сохранены в файловой системе. Моя файловая система сейчас выглядит так:
- Data (Logs, indexes, etc - is this needed to be in source control?)
- Source (Helper files, although occasionally modified)
- Website (Containing all the files I edit, and other essential Sitecore stuff)
Как уже упоминалось, мой текущий репозиторий находится только в моей системе и состоит из одной папки решений с кучей .ascx, .ascx.cs, .ascx.cs.designer и нечетного файла .aspx или двух. Это облегчает мою жизнь при загрузке, как, например, с
То, что я хотел бы получить, является идеальным способом управления этим для всех разработчиков. Несмотря на использование DVCS, я бы предпочел, чтобы живой сервер рассматривался в качестве основного репозитория, а все остальные разработчики могли его извлекать и извлекать из него, а также друг друга. Мы будем использовать решение для рабочих процессов git-flow , поскольку оно хорошо согласуется с нашим способом разработки. Очевидно, что меня беспокоит правильная настройка без разрушения того, что в настоящее время является очень дорогим сайтом с большим трафиком на сервере без резервного копирования.
Советы и рекомендации о том, сколько данных на сервере нужно хранить в хранилище, руководство о том, как обрабатывать сериализованные данные в Sitecore, и, возможно, как использовать сам элемент управления исходным кодом в качестве способа резервного копирования в отдельное хранилище. будет приветствоваться Это первый раз, когда мне приходилось создавать систему управления исходным кодом / рабочий процесс для живого веб-сайта, поэтому любые рекомендации и советы о том, что было бы для меня наилучшим решением, были бы очень благодарны.
РЕДАКТИРОВАТЬ: Я собираюсь назначить награду за это, чтобы попытаться получить больше руководств о том, как люди обрабатывают Sitecore с Git.
Чтобы прояснить ситуацию, я НЕ ищу способ резервного копирования своей работы, а скорее способ, с помощью которого многие разработчики могут поработать над ним и обеспечить актуальность кода на веб-сайте с центральным хранилищем. Например, я упоминал ранее, что буду использовать git-flow для управления своим рабочим процессом. Исходное хранилище будет существовать на общем сервере (который со временем, вероятно, станет тестовой средой), и у всех разработчиков будут клоны, над которыми можно работать и к которым нужно стремиться. Отсюда я хочу иметь возможность отправлять изменения из исходного репо на общем диске на работающий сервер и обратно в случае обнаружения ошибок. Я также хотел бы включить в репо сериализованные элементы контента.