- PVSM.RU - https://www.pvsm.ru -
В этом топике мы делимся нашим реальным опытом в миграции порталов с 2010 на 2013 SharePoint. Вопрос давно решен, нужно мигрировать, и наверняка руководство уже поставило сроки, когда это должно быть сделано. Вот тут наш материал может оказаться полезным для понимания того, с какой стороны к этому делу подойти. Чтобы не делать огромную статью с кучей специфических вставок технической информации мы сосредоточились на главном — на различиях в миграции с 2007 на 2010 с миграцией 2010 на 2013 и на основных этапах.
Если перед вами стоит еще более сложная задача мигрировать 2007 на 2010, а потом на 2013, почитайте наш прошлогодний материал [1], там мы уже рассказывали про миграцию портала SharePoint 2007 на SharePoint 2010.
Перед нами внутренний корпоративный портал:
Дополняя картину последними штрихами: на ферме SharePoint установлено более 15 различных Solutions, объем баз контента более 50Гб, а в работе порталов используются различные сервис-приложения:
Всем этим хозяйством пользуются более 2,5 тысяч юзеров.
Нашей задачей была миграция порталов Intranet, HelpdeskCo, KnowledgeBase и наших модулей бронирования переговорок от портала Intraru2 на Sharepoint 2013. Здесь стоит упомянуть два важных момента:
Практический совет тем, кто поддерживает и развивает порталы: покупайте сторонние решения только с исходными текстами и ставьте силами своих администраторов — вы будете уверенны, что с вас не попросят дополнительных денег и что у вас стоит именно, то, что вы купили.
Как показывает опыт, при переходе на следующие версии порталов разработчики запрашивают дополнительные деньги, и они не всегда обоснованы.
Давайте посмотрим вкратце на изменения в процессе миграции, а также в требованиях к ферме [3]:
Аппаратные требования к ферме:
Способ миграции только один: мигрировать на 2013 теперь можно только методом «Database-attach upgrade» либо сторонними средствами, метод «In-place upgrade» больше не поддерживается (да и не очень-то надо).
Не все службы портала можно мигрировать:
Мигрировать можно только некоторые сервис-приложения:
Отказ от функции «Visual Upgrade»:
Итак, как обычно мы проанализировали портал, сделали тестовую ферму, на которой и отработали первые ошибки. 90% решений WSP установилось без проблем, другие требовали исправлений, основные ошибки, с которыми столкнулись, это:
При проверке базы в основном были ошибки «остатки от удаленных решений»:
Далее, удостоверившись, что данные веб-части, фичи и решения не используются в работе, мы провели чистку базы, попутно удалили неиспользуемые коллекции сайтов, версии документов и данные корзин.
В результате получилась чистая от ошибок база контента, которую и подключили к тестовой ферме.
В процессе тестовой миграции также произвели миграцию сервис-приложений, которая никаких трудностей не вызвала:
После подключения баз и конвертирования веб-приложения на режим авторизации «CLAIM» получили проблему с функционалом нашего решения для бронирования переговорных комнат, так что потребовалось его исправлять для работы с «CLAIMS».
В качестве примера миграции custom-разработки приводим решение по бронированию переговорных комнат [2], правильная архитектура позволила сделать правки минимальными, а именно изменить в web.config конфигурацию для wcf-сервиса.
Например, добавление useRequestHeadersForMetadataAddress атрибута в секцию behavior:
<serviceBehaviors>
<behavior name="RoowRequestBehavior">
<serviceMetadata httpGetEnabled="true" />
<useRequestHeadersForMetadataAddress />
<serviceDebug includeExceptionDetailInFaults="false" />
</behavior>
</serviceBehaviors>
Помимо изменений в web.config исправления коснулись способа взаимодействия с SharePoint Search Services. Если в SharePoint 2010 взаимодействие происходило через FullTextSqlQuery и напоминало обычный SQL-запрос:
const string querySchema = "SELECT {0},{1} FROM Scope() WHERE ("scope"='people') AND ("{2}"='{3}'";
ResultTableCollection rtc = null;
var ftsq = new FullTextSqlQuery(ServerContext.Current)
{
QueryText = String.Format(querySchema, employeeIdField, nameField, departmentField, department),
ResultTypes = ResultType.RelevantResults
};
rtc = ftsq.Execute();
То теперь необходимо использовать KeywordQuery и такой же запрос будет выглядеть так:
const string querySchema = "{0}:{1}";
ResultTableCollection rtc = null;
var kwq = new KeywordQuery(site)
{
QueryText = String.Format(querySchema, departmentField, department,),
ResultTypes = ResultType.RelevantResults,
KeywordInclusion = KeywordInclusion.AllKeywords,
HiddenConstraints = "scope:" + ""People""
};
kwq.SelectProperties.Add(employeeIdField);
kwq.SelectProperties.Add(nameField);
SearchExecutor se = new SearchExecutor();
rtc = se.ExecuteQuery(kwq);
Наш совет: перед миграцией, если есть custom-компоненты, посмотрите [4] на изменения в API, обычно дело заканчивается незначительными изменениями в коде.
Далее нам предстояло обновление сайтов к виду 2013. Со стандартными веб-приложениями проблем не возникло, и коллекции сайтов корректно обновились до вида 2013. Трудности возникли с веб-приложением старого интранет-портала, проверка показала множественные уведомления:
Соответственно следующими шагом была планомерная работа по корректировке внешнего вида портала. Замечу, что не весь дизайн удалось корректно перенести на 2013 и остались незначительные недочеты, которые никак не влияли на функционал портала и по согласованию с заказчиком их не стали дальше исправлять.
В итоге на тестовой ферме мы отработали возможные ошибки, получили чек-лист для проверки и порядок шагов для боевой миграции.
Как всегда после тестовой миграции мы еще раз сделали тренировочный прогон на чистой инфраструктуре и записали по шагам, что и как нужно делать. Боевую миграцию проводили в выходной день, чтобы не мешать ежедневной работе пользователей портала. Никаких новых ошибок в ходе боевой миграции не возникло, времени ушло около 6 часов.
В итоге хочется сказать, что процесс миграции стал немного проще, но нужно помнить простые вещи:
Будем рады, если наш опыт вам пригодится. Пишите вопросы, если знаем ответ, то обязательно проконсультируем и поможем!
Автор: eastbanctech
Источник [5]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/it-infrastruktura/55176
Ссылки в тексте:
[1] наш прошлогодний материал: http://habrahabr.ru/company/eastbanctech/blog/168493/
[2] бронирования переговорных комнат: http://habrahabr.ru/company/eastbanctech/blog/195110/
[3] требованиях к ферме: http://technet.microsoft.com/en-us/library/ee617150(v=office.15) http://technet.microsoft.com/en-us/library/cc262485.aspx http://technet.microsoft.com/en-us/library/ff382641.aspx
[4] посмотрите: http://msdn.microsoft.com/en-us/library/office/jj164060.aspx
[5] Источник: http://habrahabr.ru/post/212841/
Нажмите здесь для печати.