The Content Transfer Tool is the recommended way to migrate content from an on-premise or AMS hosted version of AEM to an AEM as a Cloud Service environment.
Hello, in this video, we will look at how to use the content transfer tool as part of moving to Adobe Experience Manager, AEM, as a cloud service. The content transfer tool is built to migrate content for existing AEM customers who are hosting AEM on-premise or through AMS, Adobe Managed Services. The on-premises or AMS instance is known as the AEM source instance. The AEM target instance is the environment in AEM as a cloud service that we wish to migrate our content to.
Now the content transfer tool is available as an add-on package and is installed on the AEM source instance.
Once installed, the content transfer tool can be run from the AEM source instance. And the first phase of the tool is the extraction phase. Now, when this extraction phase is initiated, a migration set is extracted from the AEM source instance. The migration set is defined using the content transfer tool and contains all AEM content like pages and digital assets that we wish to migrate.
The extraction phase extracts this content from the AEM source repository and uploads it to a temporary cloud storage managed by Adobe.
The next phase is ingestion. In this phase, the migration set is ingested from the temporary storage location into the target AEM as a cloud service environment.
Migration set can be ingested on just the author, or just the publish environments, or both. There are a few best practices to be performed on the AEM source instance before it running the content transfer tool. The first is to run revision cleanup or compaction on the source instance. Ideally offline compaction is used since this will have the greatest impact on reducing the size of the repository. A data store consistency check should also be performed using the oak-run jar. This will avoid any unexpected behavior when using the content transfer tool. Any issues found during the consistency check should be resolved before performing any of the migration.
Lastly, it’s important to verify that there’s enough free disk space on the AEM Source instance hardware. The extraction temporarily extracts the content to the disk before uploading to the temporary cloud storage location. It’s recommended to have additional free space equal to 1.5 times the size of the current repository.
Okay, so enough slides, let’s see the content transfer tool in action. All right, in this video, we are going to be moving content from an instance of AEM 6.5, over to AEM as a cloud service. So, this is my 6.5 environment. I’ve got a 6.5 version of the weekend site installed, and this is all of the content that we plan on migrating. And if I switch over to cloud manager, I’ve got a program provisioned and I’ve got a dev environment already to be used. And so if I log in to the author environment in AEM as a cloud service, you can see that a cloud service version of WKND Site is installed. However, we don’t have the full set of content. And so we’ll use the content transfer tool to migrate all of the content from AEM 6.5 over to our cloud environment.
So, the first thing that we need to do is installed the content transfer tool on our AEM 6.5 environment. And you can find this tool through the software distribution portal.
If we click into AEM as a cloud service, and we just go ahead and search for content transfer tool, you should be able to find that the latest version.
Now this is an AEM package that you can download to your local disk and then upload to your AEM source instance.
To save some time, I’ve already gone ahead and downloaded it. And if you go to deployment packages, you can upload and install the content transfer tool through package manager.
Now the content transfer tool is compatible with AEM 6.3 and higher.
Once the content transfer tool is installed, we can then view it. So, from the AEM start screen, go to operations and you should see a new card for content transfer.
So, this is the UI for the content transfer tool. And the next thing that we’re going to do is create a new migration set.
So, for the set name, we’ll just call this WKND Base Content.
And so, the next field that we’re going to populate is the cloud service destination. And this is the author URL of the AEM as a cloud service environment that we’re targeting. So, we’ll just go ahead and copy this URL here, and we can paste it here and remove that trailing slash. The next thing that we need is the access token. And to retrieve the access token, you’ll need two sets of permissions through your AEM as a cloud service environment.
So, the first level of permissions is actually granted through the admin console. And if you go into cloud manager and click into Manage Access for your target environment, this will pull up the admin console for that particular environment. And so the first level of permissions that you need is you want to be a member of the AEM administrators’ product profile.
The second set of permissions is, you’ll also need to be a member of the local AEM administrators’ group. So, to configure this, you go to tools and under security, click into groups.
And if you scroll through the list of groups, you’ll notice that there should be a administrators group, all lower case. This is the local AEM administrators’ group. So, you’ll also need to add yourself as a member of this group. So, I’ve already gone ahead and done that. So, I should be all set up to retrieve the access token.
To retrieve the access token, now that our permissions are set, we’re just going to paste a URL into our browser. And this URL is listed in the documentation, it’s /libs/granite/migration/token.json.
And this will return the token value that we can use to authenticate our current migration sets with AEM as a cloud service. Now, one thing we want to call out is that the characters in this migration set can be escaped. And so, the value that you want to use is the parsed value. And most browsers will parse this automatically, but it is something to watch out for. And if you get an authentication error, this might be one area where you can troubleshoot.
So, pace the parsed access token in the wizard. And then for deciding whether you want to include versions of your content, I’m going to leave this off. And then now we can actually decide which paths for the content that we want to include in this migration set.
So, I’ll choose comp/WKND, which has all of the templates. I’ll also choose content/WKND, which will give us all of our pages, go ahead and under assets, choose the WKND folder, so we get all of those digital files.
We’ll also want to include the experience fragments, these are under the header and footer. And we’ll also go ahead and include the cq:tags specific to WKND.
So, we can go ahead and save the changes to our migration set. And then in the content transfer UI, you can see our newly created migration set. The storage for the migration set is managed by Adobe, and you should be aware that each migration set is temporary and will be removed automatically after 30 days. Now you’ll notice that there are indicators for under extraction and ingestion that everything is currently idle. It’s possible to create additional migration sets, to capture other paths in content. No more than four migration sets can be created and active per environment at a given time.
And if we select a migration set, we can go ahead and initiate the first phase of migration, which is extraction. We will go ahead and click the Extract button. And this just confirms information about the migration set, the name, the cloud service configuration and the paths. You’ll also notice that we have a toggle to overwrite the staging container during extraction. If this is the first time you’re running a migration set, you can just leave this on. Later when we look at running a Delta or top up migration, we will uncheck this.
We’ll go ahead and click Extract, and this is going to initiate the extraction process.
All right, so I’ve gone ahead and sped up the video and the extraction has finished. Now, one feature that I want to highlight in the content transfer tool, is that you can see all of the activity through the logs. And so if you select your migration set and click View Logs, you have options to view the extraction log as well as the ingestion logs. So, for a large repository, the extraction might take a little longer. So, you can always view the logs and check in on the progress.
So, let’s move on to the second phase of our migration, which is ingestion. So, if we click the Ingest button with our migration set selected. Again, we are presented with some high level details of the migration set, the target cloud service, and environment, and the paths. We also have three additional toggles. So the first one is whether we want to wipe or remove the existing content on the cloud service environment before ingestion. And so you want to turn this on, especially during the first migration, because this is going to speed it up and we want to make sure our cloud service environment is in a pristine state before doing any migration. We also have toggles to decide whether to ingest the content on the author or the Publish instance. Now, lastly, there is a warning that, during the ingestion phase on the author environment, this is the author environment in AEM as a cloud service, that will actually be scaled down during that ingestion phase. Your Publish instance in AEM as a cloud service will continue to run.
So, we can go ahead and start the ingestion. And the author UI lets us know that the ingestion on both author and Publish is pending, and so it’s been kicked off.
All right, now, once again, I’ve sped up the video, this point, the author ingestion and publish ingestion, they use have both finished. And if you’re doing this on your own, you can always check the logs to monitor the progress.
All right, so let’s check out the results of our migration. So, we can navigate to the AEM author environment in AEM as a cloud service.
And now we can see we’ve got the full set of the weekend pages. So, all of the language copies are there, magazine articles, adventures, all that content is showing up.
Now, in addition to the pages, we also migrated a bunch of our digital assets. As we navigate into AEM assets, we can now see our WKND folder, it’s got all of the digital images that are used throughout the site.
All right, so at this point, looks like the content transfer tool worked and was a success.
Now, one thing to note is that the content transfer tool only transfers content. So you’ll still be responsible for upgrading your code base, which would include your templates and components, and then deploying those to your cloud service environment, using cloud manager pipelines.
Next let’s look at the top-up migration use case. For most AEM customers, the switch over to AEM as a cloud service, is not going to happen overnight. After the initial migration, various development and QA activities will take place to validate the functionality in the cloud service environment. During this time, the AEM source instance will continue to have live content authoring.
So in order to capture the Delta content, we can use the top-up extraction and ingestion settings of the content transfer tool.
So, the content transfer tool will establish a checkpoint after the initial migration is run. Then when the content transfer tool is run on subsequent occasions, only the Delta content changes will be migrated. This will result in a faster, more efficient extraction and ingestion.
It’s recommended to do frequent content transfers all the way up to go live in order to make the cut over as fast and efficient as possible. So, let’s look at it in action.
So on my AEM 6.5 instance, which is the source instance, I’ve gone ahead and created a new page camping in Arizona, and I’m just going to add some content. So, this is a new adventure page, we’ve got an image. And I’ve created this, this was not part of the original migration set. And what we’re going to do next is, perform the top-up migration and migrate just this Delta content.
So, I’ll navigate the content transfer tool and I’ll select that migration set that we created earlier.
And then I’ll initiate the first phase of the migration, which is the extraction. And I’m going to keep all of the settings the same. The only difference is, is I’m going to untoggle the overwrite staging container. I don’t want to wipe out that staging container, I just want to migrate that Delta content.
So, we’ll kick off the extraction process.
All right, so I have fast forwarded the video and the latest extraction has finished. One thing I want to point out is that the timestamps are valuable indicators of the overall content transfer status. So, in this case, the latest extraction finished at 15:42, whereas the last time an ingestion was performed was 14:58. So this indicates that the extraction is more recent and that an ingestion still needs to be triggered to get the latest content in our AEM as a cloud service environment. So, the next thing that we want to do is the top-up ingestion. So we’ll select migration set and we’ll open up the migration set ingestion, and we’re going to keep all the same configurations and properties, the only differences is we’re going to toggle off the wipe existing content on the cloud instance. Because we want to preserve all of that content, we just want to ingest the Delta content.
All right, so once more, I’ve fast forwarded the video, at this point, the author and publish ingestion has finished. We can see the updated timestamps. So now we can go ahead and log in to our AEM author environment and check out the changes. So we’re navigating to the site’s console on the AEM author environment, under adventures, we can see the camping in Arizona adventure page.
We can go ahead and open it up for editing and we can see our image and our adventure page. Everything looks good. So, it was successfully migrated to the author environment. We can also switch and look at it in the Publish environment, and we can see that it was successfully ingested here as well.
That concludes this video on using the content transfer tool to migrate content from an on-premise instance of AEM into an AEM as a cloud service environment. Thanks for watching. -