The process of converting a system from on premise to Cloud is often described using a series of straightforward actions that eventually result in a migrated platform. Additionally, while most agree that migrations can be done in a matter of hours or days, one has to consider that information gathering and team-scheduling will account for a majority of the effort. This blog is intended to help existing on premise Jahia customers and IT architects better understand the steps required to move an existing Jahia deployment to Jahia Cloud.
We've compiled a guide below, which we consider to be the most important steps in a migration to Cloud.
Sweet! We’re glad to know that you’re interested in joining the Jahia Cloud club. Before migrating from on premise Jahia platform to Cloud, you should become familiar with our Cloud product philosophy, architecture, and limitations. Our broad summary:
- Jahia Cloud is a highly available Cloud platform that relies on either AWS, Azure, or OVH (your choice!) available in several regions of the world,
- Jahia Cloud is a self-service platform for deploying, scaling, and deleting Jahia environments in a matter of minutes,
- Jahia products and features available in Jahia Cloud are also available on premise,
- No limit on the number of custom Jahia modules that can be deployed on Cloud instances,
- All applications and backends are strictly single tenant and dedicated to your project,
- All jahia.properties - default or custom - are customizable,
- You will not have access to your instance file systems. As such, any library or Tomcat level customizations is not possible,
- Platform monitoring is done with Datadog. We will provide you with full access to monitoring metrics, dashboards, and allow you to create your own custom dashboards,
- Jahia Cloud environments embed HAProxy instances that can be used to deploy security and URL/Domain rewrite rules,
- Here you can find more information about Jahia Cloud onboarding, the best practices, as well as key Jahia Cloud features.
Just in case you were wondering, this is what our Cloud architecture looks like. The bottom "Client Infrastructure" section is a dedicated private subnet for your projects.
2 - Impact study and remediation
This stage is the time for reviewing your on premise installation and listing everything that will need to be remediated before moving your Jahia services to the Cloud. This list may not be exhaustive.
- LDAP, Active directory, SSO integrations, and dependencies for internal web services: these are services that may not be exposed to the Internet, and may need to be made available to Jahia Cloud. When necessary, the best course of action would be to create an IPsec VPN link between your internal network and Jahia Cloud,
- Customized Configurations within the Jahia web app or inside the digital-factory-data/repository folder: these configurations cannot be fine-tuned in Jahia Cloud,
- Additional Tomcat or Jahia libraries deployed at the WEB-INF/lib or tomcat/lib level. Custom libraries cannot be manually deployed on Jahia Cloud, and would need to be moved to a Jahia module within an OSGi bundle,
- DNS configuration: at least one public domain will need to be re-routed to Jahia Cloud. Root domains will likely need to be switched to a different multi-IP A record, whereas subdomains are kept as a CNAME. More information about DNS handling here,
- Jackrabbit definition issues: Cloud migrations will involve an export and import of your Jahia content. While simple to execute, these operations sometimes fail due to an inconsistency between your content and JCR definitions. These issues are fairly easy to fix. You can read more here.
- Jahia and jCustomer versions: Jahia Cloud supports the latest 7.3 (18.104.22.168+ and 22.214.171.124+ at the time this blog was published) and 8.0 versions for Jahia, and the latest available jCustomer version available. It is necessary to perform an on premise upgrade to those versions before moving your content and data to Jahia Cloud.
3 - Dry run
Dry runs are crucial in de-risking the production migration and providing a fairly good time estimate.
An effective dry run should include at least the following steps:
- Content export from the jContent production environment,
- Data export from jExperience's Elasticsearch using an ES Snapshot,
- Integration of all external services (User directories, SSO, third party software integration),
- Custom module deployment,
- Content / Data import,
- Custom front-end rules (haproxy rewrite rules, security rules),
- Functional validation cycle,
- Performance testing.
A dry run is executed in tandem with the Jahia Professional Services team, who will also monitor the platform KPIs and logs.
Once done, the data gathered during the dry run will help to decide the production migration schedule.
The main focus during the migration should be to:
- Mitigate the risk of disturbances with regard to public service availability,
- Reduce the impact on content contribution as much as possible,
- Minimize execution time.
Migrating to a new platform involves one major constraint: you must temporarily disable the contribution of new content. While two platforms are active at the same time (the old and the new), no new content should be created, as it would then be lost post-migration. This contribution freeze must be scheduled carefully while taking into consideration dry run findings.
Once scheduled with the business and the engineering stakeholders, the migration procedure is fairly straightforward and painless:
- Confirm that all user directory, SSO, and third party integrations are working,
- Deploy custom modules, front-end configurations, and Jahia configurations into the new instance,
- Switch the old and new production platforms to read-only mode,
- Export a fresh version of the content,
- Conduct the content import,
- Business users must check that the sites and headless apps render correctly,
- Switch DNS entries to the new platform as documented here,
- Wait for DNS propagation,
- Once propagation is finalized, switch off read-only mode,
- Enjoy your Jahia Cloud DXP!
5 - Post Go-live
You might think that we are done with the migration, but we’re only at the beginning. Jahia Cloud will provide you with valuable information about your environment, and it‘s good practice to continually improve your system over time. Datadog's APM will provide a lot of information about the environment's bottleneck and custom code improvement possibilities. Datadog's log parsers will also provide valuable information regarding common errors and warnings.
KPIs like page render time and error rates have a direct impact on your user journeys and conversion rates and therefore shouldn't be taken lightly. Jahia Cloud provides comprehensive dashboards about the Digital Experience Platform and should be used for improvement opportunities during the lifetime of your DXP projects.
Should you have any question about your best path towards Jahia Cloud, feel free to reach out to your Customer Success Manager. We will gladly assist you.