Миграция экземпляра Oracle Content Management из устаревшей облачной инфраструктуры

Если вы используете экземпляры Oracle Content Management на устаревшей платформе Cloud Infrastructure с безлимитной подпиской, компания Oracle рекомендует перенести эти экземпляры в новую собственную среду Oracle Cloud Infrastructure (OCI) — OCI 2-го поколения (т. е. использовать консоль Infrastructure для управления экземплярами сервисов). Это позволит вам в будущем воспользоваться преимуществами облачной платформы Oracle.

Чтобы начать миграцию, сначала необходимо выполнить несколько шагов и совместно со службой поддержки Oracle запланировать миграцию.

  1. Перенесите подписку в универсальную подписку. Обратитесь за помощью к представителю Oracle Sales.
  2. Создание нового экземпляра из Oracle Content Management на OCI с консолью Infrastructure. Это будет целевой экземпляр, в который будут перенесены данные. НЕ используйте этот экземпляр до завершения миграции.
  3. Перенесите пользователей из традиционных облачных учетных записей в учетные записи Oracle Identity Cloud Service (IDCS). Необходимо сохранить имена пользователей, чтобы роли и разрешения можно было назначить надлежащим образом в процессе миграции. В экспортированном CSV-файле запись имени пользователя называется "User Login" (Вход пользователя). Роли пользователей будут назначены в соответствии с сопоставлением пользователей.
  4. Подготовка к миграции посредством сбора информации, необходимой для обработки запроса на обслуживание, и создания списка всех интеграций, необходимых для выполнения действий после миграции.
  5. Отправка запроса на обслуживание миграции и подтверждение даты и времени миграции.
  6. Наблюдение за ходом миграции. Ваш запрос на обслуживание будет обновлен в процессе выполнения миграции, после чего вам будет предложено проверить, что новый экземпляр работает должным образом.
  7. Завершение миграции посредством выполнения всех шагов, необходимых для миграции любых интеграций, которые имеются в вашем экземпляре, с другими службами или приложениями.
  8. Миграция сайтов с активами и обеспечение их многоязычной совместимости.
  9. Миграция активов, которые были исключены из миграции.
  10. Уведомление своих пользователей об изменении.

Сопоставление пользователя

В этой таблице описано сопоставление групп разрешений Oracle Content Management с ролями приложений OCI.

Группа разрешений Oracle Content Management Роль приложения OCI
DocumentsServiceUser CECStandardUser
DocumentsServiceAdmin CECServiceAdministrator
SitesServiceVisitor CECSitesVisitor
SitesServiceAdmin CECSitesAdministrator
ContentAdministratorRole CECContentAdministrator
CECSStandardUser CECStandardUser
CECSEnterpriseUser CECEnterpriseUser

Примечание.:

Если целевой домен IDCS уже содержит пользователя с таким именем, пользователю назначаются роли приложений OCI, соответствующие группам разрешений Oracle Content Management.

Подготовка к миграции

  • Создайте URL-адрес нового экземпляра (целевого), чтобы включить его в запрос на миграцию.
  • Запишите URL-адрес старого экземпляра (источника), чтобы включить его в запрос на миграцию.
  • Выполните инвентаризацию всех интеграций, имеющихся в старом экземпляре, с любыми другими службами или приложениями, напрямую или через вызовы API-интерфейса REST. При наличии таких интеграций после миграции необходимо выполнить некоторые действия.

Отправка запроса на обслуживание

По готовности к миграции необходимо отправить запрос на миграцию, чтобы начать процесс:

  1. Войдите в службу поддержки Oracle Cloud.
  2. Создайте новый запрос на обслуживание.
  3. В поле Тип проблемы выберите Миграция экземпляра сервиса, затем выберите С безлимитной подписки на OCI-Gen2.
  4. Предоставьте следующую информацию в запросе на обслуживание:
    • URL-адрес исходного экземпляра (экземпляр, с которого выполняется миграция)
    • URL-адрес целевого экземпляра (экземпляр, в который выполняется миграция)
    • При использовании предоставляемого компанией Oracle решения Akamai сообщите о возможности координирования времени для обновления URL-адресов в конфигурации Akamai после миграции
  5. Предоставьте предпочитаемую дату для начала миграции.
  6. Отправьте запрос на обслуживание.

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

  7. Подтвердите в запросе на обслуживание утверждение даты и времени начала миграции.

В запрос на обслуживание будут внесены обновления, чтобы показать способ выполнения миграции. Миграция данных будет выполнена на стороне сервера. В конце операции не требуется никаких действий, кроме выполнения любых обновлений запроса на обслуживание и проверки миграции после этого.

Процесс миграции

В процессе миграции происходит следующее:

  1. Служба поддержки Oracle обновляет запрос на обслуживание после начала миграции.

    Важное замечание:

    На этом этапе не следует вносить никаких изменений в старый экземпляр (источник). Любые изменения, внесенные после начала миграции, не будут перенесены в новый экземпляр.
  2. Контент и данные конфигурации экспортируются из старого экземпляра (источника) и импортируются в новый экземпляр (адресат).
  3. После завершения миграции служба поддержки Oracle обновляет запрос на обслуживание и отображается запрос на проверку нового экземпляра, чтобы убедиться, что все работает корректно.
  4. При обнаружении каких-либо проблем занесите их в запрос на обслуживание. Служба поддержки Oracle будет работать над устранением данных неполадок и сообщит вам через запрос на обслуживание, когда экземпляр будет готов к проверке.
  5. Если все работает должным образом, занесите в запрос на обслуживание принятие перенесенного экземпляра.

Примечание.:

Старый экземпляр останется в рабочем состоянии, чтобы можно было вернуться к нему для проверки. Кроме того, он также потребуется для миграции всех сайтов, использующих активы, и миграции любых других активов, которые были исключены во время миграции.

Завершение миграции

Если старый экземпляр интегрирован или связан с другими службами или приложениями напрямую или посредством вызова API-интерфейса REST, может потребоваться выполнение задач после миграции.

Следующие элементы применяются в масштабе всех сервисов:

  • Просмотрите роли приложений OCI и назначьте роли, которых нет в исходном экземпляре, такие как роль приложения CECRepositoryAdministrator.
  • Перенастройте учетные данные пользователя для всех интеграций, которые их используют. Учетные данные не переносятся.
  • Шаблон URL-адреса Oracle Content Management имеет отличия, поэтому необходимо обновить URL-адреса в интеграциях, которые их используют.

    Старые URL-адреса использовали следующий шаблон:

    https://<имя_службы>-<имя_учетной записи>.<область>.oraclecloud.com/documents

    Новые URL-адреса использовали следующий шаблон:

    https://<имя_сервиса>-<имя_учетной записи>.<тип_сервиса>.ocp.oraclecloud.com/documents

  • Заново задайте настройки CORS и встроенного контента. Настройки целевого сервиса не переносятся.
  • Стандартные сайты будут перенесены, а корпоративные сайты нет. Вручную перенесите корпоративные сайты и любые цифровые активы и элементы контента, связанные с сайтами, создав шаблон для каждого корпоративного сайта, экспортировав шаблон из исходного экземпляра и импортировав его в целевой экземпляр.
  • Удалите или обновите пользовательские контроллеры, используемые на перенесенных сайтах.
Интеграция Действия после миграции
Oracle Integration
  • Измените учетные данные.
  • Обновить URL-адреса Oracle Content Management в Oracle Integration Cloud.
Oracle Commerce Cloud
  • Измените учетные данные.
  • Обновить URL-адреса Oracle Content Management в Oracle Commerce Cloud.
Oracle Process Cloud Service
  • Измените учетные данные.
Oracle Eloqua Cloud Service
  • Измените учетные данные.
Oracle Intelligent Advisor
  • Измените учетные данные.
Oracle Cobrowse Cloud Service
  • Измените учетные данные.
Responsys
  • Измените учетные данные.
Visual Builder Cloud Service (VBCS)
  • Измените учетные данные.
  • Обновить URL-адреса Oracle Content Management в компонентах VBCS.
CDN/Akamai
  • Если используется решение Akamai, предоставляемое компанией Oracle, скоординируйте время со службой поддержки Oracle, чтобы обновить URL-адреса Oracle Content Management в конфигурации Akamai. В противном случае необходимо обновить URL-адреса в конфигурации CDN самостоятельно.
Вызовы API-интерфейса REST
  • Обновить URL-адреса Oracle Content Management во всех вызовах REST API.
Использование клиента SDK/CLI
  • Если URL-адрес сохранен/кэширован локально на стороне клиента, обновите URL-адреса Oracle Content Management в конфигурации.
Коннекторы
  • Измените учетные данные.

Примечание.:

Любые закладки к контенту старого экземпляра больше не будут работать, так как URL-адрес нового экземпляра был изменен.

Миграция сайтов с активами

Сайты без активов переносятся автоматически, но для сайтов с активами требуется выполнить дополнительные действия, чтобы они работали в новом экземпляре Oracle Content Management.

Установка инструментария OCE

"cec migrate-site" — новая команда, поэтому необходимо установить инструментарий OCE из репозитория Git веб-клиента, даже если он был выгружен и установлен ранее.

Следуйте инструкциям на странице инструментария сайтов, чтобы выгрузить и установить инструментарий OCE.

Регистрация целевого сервера

Зарегистрируйте сведения о подключении целевого сервера (сервера, на который осуществляется миграция сайтов):

> cec register-server <target_server_name>
          -e http://<target_server>:<target_port>
          -u <target_username> -p <target_password>
          -t pod_ec
  • <target_server_name> используется для идентификации целевой конечной точки и может быть любым выбранным именем.
  • <target_server> и <target_port> составляют URL-адрес, используемый для доступа к целевому серверу.
  • <target_username> и <target_password> должны быть именем пользователя и паролем того пользователя, который будет экспортировать шаблоны сайтов из исходного сервера, чтобы при импорте шаблонов во время миграции не возникало проблем с разрешениями.
  • Значение "pod_ec" — это тип целевого сервера, используется для определения типа сервера, на котором создан экземпляр.

Миграция сайтов

Чтобы перенести сайты, выполните указанные ниже действия.

  1. На исходном сервере создайте шаблоны для каждого сайта, содержащего активы.
  2. На исходном сервере экспортируйте каждый шаблон. Убедитесь, что это действие выполнено от имени пользователя, на которого вы ссылались при регистрации целевого сервера.
  3. На целевом сервере выполните вход как администратор репозитория (пользователь с ролью CECRepositoryAdministrator). Затем создайте репозиторий для активов, которые будут импортированы вместе с данным шаблоном.
  4. Для каждого выгруженного шаблона выполните указанную ниже команду, заменив <site_name> именем, которое должно быть у сайта на целевом сервере:
    > cec migrate-site <site_name> --template <template_path_and_name> 
    --destination <registered_target_server_name> --repository <repository_name>
  5. На целевом сервере предоставьте соответствующий совместный доступ к перенесенным сайтам и активам.

Действия после миграции

После миграции сайт работает с использованием вызовов Content REST v1.1. Это может привести к возникновению проблем, которые необходимо устранить, чтобы сайт правильно работал. Чтобы определить, что необходимо сделать, обратите внимание на следующее:

  • Если используется ContentSDK, вызовы автоматически обновляются для использования вызовов Content REST v1.1.
  • Если макеты контента не поддерживают версию v1.1, ContentSDK также добавит в ответ запись "data" (v1.0), что просто указывает на запись "fields" (v1.1), чтобы шаблоны могли продолжать работать без изменений.
  • Если в дополнительной строке запроса используется синтаксис "fields.type.equals=" v1.0 Content REST, попробуйте выполнить синтаксический анализ и изменить его на синтаксис версии v1.1. Однако это необходимо проверить.
  • Все прямые (а не через ContentSDK) вызовы Content REST v1.0 завершаются ошибкой. Необходимо исправить пользовательский код и обновить такие вызовы.
  • Точно так же потребуются все пользовательские запросы контента, использующие синтаксис v1.0 "fields.type.eques=" перевести на синтаксис "q=(type eq "..")".
  • "updateddate" или "updatedDate": предположительно эта проблема исправлена в CaaS, но до получения сборки EC, в которой API-интерфейс Content REST v1.1 поддерживает оба значения, все значения "updateddate" необходимо изменить с учетом регистра, т. е. на значение "updatedDate".

Обеспечение соответствия перенесенного сайта требованиям к многоязычным сайтам (MLS)

Добившись правильной работы сайта необходимо обеспечить его соответствие требованиям к MLS. Если бы корпоративный сайт был создан на внешнем вычислительном сервере, то для него потребовались бы язык и политика локализации, используемые по умолчанию. После копирования сайта не является сайтом MLS, поэтому необходимо обновить его до сайта MLS, чтобы обеспечить поддержку будущих функциональных возможностей.

В таблице ниже показаны различия между сайтами MLS и другими сайтами.

Объект сайта Сайт MLS Другой сайт
Элементы содержимого Отображается вариант языка элемента контента, а не элемент контента, перенесенный на страницу. Язык может измениться в зависимости от того, какой язык был запрошен при визуализации сайта. Элемент контента, который перетащили на страницу, будет отображаться всегда.
Макеты контента Макеты контента должны поддерживать API-интерфейсы версии 1.1. Если это не так, элемент контента не отображается. Вместо этого отображается предупреждение. Это связано с тем, что для всех вызовов API-интерфейса версии 1.1 добавляется "локаль", которая не поддерживается API-интерфейсом версии 1.0. Макеты контента могут иметь версию 1.0, или 1.1. Если макет контента поддерживает только версию 1.0, то при совпадении записи "fields" ContentSDK добавит запись "data". По-прежнему могут возникать другие проблемы, поэтому не следует рассматривать эту возможность как "поддерживаемую функцию", чтобы не обновлять макет контента.
Списки контента Отображаются только элементы контента, доступные в запрошенном языковом варианте. Отображаются все элементы контента независимо от языка. Пользователь может прикрепить результаты к определенному языку в списке контента, чтобы на странице отображались два списка контента с результатами на разных языках. Этот параметр панели настроек для выбора языка недоступен для сайтов MLS.
defaultLocale У сайтов MLS есть локаль сайта по умолчанию. Это означает, что все запросы контента возвращают только те элементы контента, которые соответствуют выбранной локали (или не подлежат перепродаже). На сайте, отличном от MLS, отсутствует локаль по умолчанию, поэтому используемый запрос контента возвращает все элементы контента независимо от языка.
Политики локализации

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

Кроме того, в пользовательском интерфейсе управления должен быть раскрывающийся список языков, позволяющий открывать/просматривать требуемый язык.

Поскольку политика локализации отсутствует, раскрывающийся список для переключения языков удален из построителя.

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

Перевод/переводимый В контекстном меню в пользовательском интерфейсе управления есть пункт "Перевести". Это позволяет создать задание перевода для перевода сайта.

В контекстном меню в пользовательском интерфейсе управления есть пункт "Переводимый". Фактически, сайты, которые не являются MLS, не могут быть переводимыми, поэтому, чтобы их можно было перевести, сначала сайты необходимо сделать переводимыми (MLS).

Это также показывает, как обычный сайт "обновляется" до сайта MLS.

Примечание. Это односторонний процесс. Сайт MLS невозможно опять сделать непереводимым.

Прежде чем превратить свой сайт в сайт MLS, необходимо выполнить следующие действия:

  • Обновите все компоненты макета контента для поддержки API-интерфейсов Content REST версии 1.1
  • В списках контента на сайте обновите все "дополнительные строки запроса", чтобы обеспечить совместимость с API-интерфейсами Content REST версии 1.1

Затем, если есть код пользовательского компонента, который совершает вызовы Content REST, необходимо обновить его, чтобы можно было выполнять вызовы версии 1.1. Это редко бывает, так как большинство вызовов контента осуществляется из макетов контента.

Обновление макетов контента

Указание поддерживаемых версий API-интерфейсов Content REST

Макеты контента должны указывать поддерживаемую версию API-интерфейсов Content REST. Это необходимо для того, чтобы выполнялся соответствующий вызов Content REST и в макет возвращались ожидаемые ответные данные.

Если поддержка версии не указана, предполагается, что макет контента поддерживает только версию 1.0.

В консоли будут перечислены макеты контента, которые все еще поддерживают версию 1.0.

Чтобы макет контента поддерживал другие версии, добавьте в объект макета контента свойство "contentVersion".

В этом примере указано, что поддерживаются все версии от 1.0 до 2.0. (Примечание. Версия 2.0 не существует, но изменения основной версии могут привести к критическим изменениям.)

// Content Layout
          definition.ContentLayout.prototype = {    // Specify the versions of
          the Content REST API that are supported by the this Content Layout.    // The value for contentVersion follows Semantic Versioning
          syntax.    // This allows applications that use the
          content layout to pass the data through in the expected format.    contentVersion: ">=1.0.0
          <2.0.0",     // Main rendering function:    // - Updates the data to handle any required additional requests and
          support both v1.0 and v1.1 Content REST APIs    // - Expand the Mustache template with the updated data
            // - Appends the expanded template HTML to the
          parentObj DOM element    render: function (parentObj)
          {

Обработка изменений в версии 1.1

Потребуется, как минимум, обработать изменение ответа API-интерфейса Content REST: с "data" на "fields". Проще всего это сделать, если добавить свойство "data" и указать новое свойство "fields".

render: function (parentObj)
          {    ...    if(!content.data) {        content.data =
          content.fields;    }

Лучший вариант изменения — перейти к использованию значения "fields" в версии 1.1 во всех макетах контента. Для этого потребуется обновить JavaScript и код шаблона.

Для полной поддержки версии 1.1 необходимо выполнить следующие изменения API-интерфейсов Content REST между версиями 1.0 к 1.1:

Изменение API-интерфейсов Content REST v1.1 v1.0
"fields" и "data"
"items": [{    "type": "Starter-Blog-Author",    "name": "Alex Read",    "id": "COREB62DBAB5CEDA4915A9C9F6050E554F63",    "fields":
          {        "starter-blog-author_bio": "Alex's bio",        "starter-blog-author_name": "Alex Read"        }    },
"items": [{    "type": "Starter-Blog-Author",    "name": "Alex Read",    "id": "COREB62DBAB5CEDA4915A9C9F6050E554F63",    "data":
          {        "starter-blog-author_bio": "Alex's bio",        "starter-blog-author_name": "Alex Read"        }    },
Имена свойств в стиле camelCase "updatedDate" "updateddate"
формат запроса /items?q=(type eq "Starter-Blog-Author") /items?fields.type.equals="Starter-Blog-Author"
Версия API /content/management/api/v1.1/items /content/management/api/v1/items
Запросы к конкретным языкам /content/management/api/v1.1/items?q=((type eq "Promo") and (language eq "en-US" or translatable eq "false"))

Не поддерживается.

Необходимо перенести все пользовательские вызовы версии 1, чтобы включить параметр "language".

Это обеспечивает согласованность результатов с результатами, полученными для сайта MLS при просмотре на определенном языке.

Обновление строки запроса контента

Интерфейс Content API может вызываться в любом пользовательском коде, поэтому необходимо проверить весь пользовательский код, используемый сайтом, совершающим вызовы API-интерфейсов Content REST.

  • Пользовательские компоненты: проверьте следующие компоненты:
    • Макеты контента
    • Локальные компоненты
    • Макеты разделов
    • Удаленные компоненты
  • Темы: JavaScript: очень низка вероятность того, что в вашей теме имеется код JavaScript, который выполняет пользовательские вызовы API-интерфейсов Content REST, поэтому их также следует проверить.
  • Свойства сайта: дополнительная строка запроса: после подтверждения обновления всего пользовательского кода, который совершает вызовы API-интерфейсов Content REST, также следует обновить "дополнительную строку запроса" во всех компонентах "Список контента" на всех страницах сайта. Пока мы пытаемся проанализировать и преобразовать их во время выполнения, их следует обновить до состояния совместимости с вызовами Content REST версии 1.1 для дальнейшей поддержки.

Преобразование обычного сайта в сайт MLS

После преобразования сайта до полной поддержки API-интерфейсов Content REST версии 1.1 можно добавить поддержку языков, превратив сайт в сайт MLS.

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

После выполнения этого шага сайт будет визуализироваться в соответствии с языковыми настройками по умолчанию. Кроме того, это позволит переключаться на другие языки, указанные в политике локализации.

Необходимо проверить, что сайт отображается в соответствии с языковыми настройками по умолчанию.

Миграция активов

Вместе с сайтами переносятся связанные с ними активы, однако все активы, не связанные с сайтами, необходимо переносить отдельно.

Перед началом миграции примите во внимание следующее моменты:

  • Возможна миграция только активов, связанных с коллекцией. Чтобы перенести активы, не связанные с коллекцией, сначала их необходимо добавить в коллекцию.
  • Безлимитные экземпляры не поддерживают языки в активах, поэтому при миграции активов наследуется язык по умолчанию из языка репозитория по умолчанию. Перед миграцией активов убедитесь, что для языка репозитория по умолчанию задан требуемый язык по умолчанию.
  • Будут перенесены только опубликованные элементы. Если после миграции отсутствуют элементы, убедитесь, что они опубликованы в исходном экземпляре.
  • Если у некоторых опубликованных элементов есть черновые версии, эти версии станут опубликованными версиями в целевом экземпляре, а исходные опубликованные версии из исходного экземпляра будут потеряны.
  • В безлимитной версии Oracle Content Management при просмотре элемента контента пользователи могут выбрать представление "Макет контента" или "Контент". В текущей версии Oracle Content Management представление "Контент" было заменено представлением "Форма контента", а представление "Макет контента" удалено.

Чтобы перенести свои активы, выполните указанные ниже действия.

  1. Если вы еще не сделали этого, установите инструментарий OCE.
  2. Зарегистрируйте исходный и целевой серверы.
  3. Перенесите коллекцию активов.

Регистрация исходного и целевого серверов

Зарегистрируйте сведения о подключении для исходного и целевого серверов.

Зарегистрируйте исходный сервер (сервер, с которого осуществляется миграция активов):

> cec register-server <source_server_name>
          -e http://<source_server>:<source_port>
          -u <source_username> -p <source_password>
          -t pod_ic
  • <source_server_name> используется для идентификации исходной конечной точки и может быть любым выбранным именем.
  • <source_server> и <source_port> составляют URL-адрес, используемый для доступа к исходному серверу.
  • <source_username> и <source_password> должны быть именем пользователя и паролем для лица, имеющего доступ к активам на исходном сервере.
  • Значение "pod_ic" — это тип исходного сервера, используется для определения типа сервера, на котором создан экземпляр.

Зарегистрируйте целевой сервер (сервер, на который осуществляется миграция активов):

> cec-install % cec register-server <target_server_name>
          -e http://<source_server>:<source_port>
          -u <target_username> -p <target_password>
          -t pod_ec
  • <target_server_name> используется для идентификации целевой конечной точки и может быть любым выбранным именем.
  • <target_server> и <target_port> составляют URL-адрес, используемый для доступа к целевому серверу.
  • <target_username> и <target_password> должны быть именем пользователя и паролем для лица с собственными активами на целевом сервере.
  • Значение "pod_ec" — это тип целевого сервера, используется для определения типа сервера, на котором создан экземпляр.

Миграция набора активов

Миграция набора активов выполняется с помощью следующей команды:

> cec migrate-content <source_collection_name> --server  <source_server_name>
      --destination <target_server_name> --repository <target_repository_name> --collection  <target_collection_name> --channel
    <target_channel_name>

Активы будут созданы на целевом сервере в указанном репозитории и связаны с коллекцией и каналом. При необходимости коллекция и канал создаются автоматически. Язык по умолчанию для всех перенесенных активов — язык по умолчанию, заданный в указанном репозитории.

Уведомление пользователей об изменении

Сообщите пользователям новый URL-адрес сервиса. Пользователям настольных компьютеров и мобильных устройств потребуется настроить на своих устройствах новую учетную запись и повторно синхронизировать весь контент.