Bloomreach Experience Manager Implementation Best Practices for Deployment in Bloomreach Cloud
In Bloomreach Cloud, create the following four environments:
- dev or test
The blue and green environments serve production purposes, see blue/green deployment for more information. Use backup/restore functionality to test with production content on acceptance.
We recommend using your own domains for blue/green deployments. Make sure you have a custom domain you can attach to your active environment (blue or green). For regular HST-based websites use a domain like www.customername.com and for CMS access you can use cms.customername.com.
Note: Please do not use bloomreach.cloud domains for any workload other than dev/test as these domains cannot be detached and attached to different environments.
For an SPA/SSR, define a custom domain like prod.customername.com, provide the certificate, and point the domain to the production environment, either blue or green. You can use set production to do so.
For the CMS define a custom domain like cms.customername.com and point the domain to the production cms, either blue or green.
For regular HST-based websites, it is similar; use a domain like www.customername.com.
Do not use the CMS (sub)domain to access the site webapp / delivery API. Always use different (sub)domains (e.g. cms.customername.com and prod.customername.com) to ensure public availability of your website(s) is not affected when CMS maintenance mode is enabled.
Optimize your Bloomreach Experience Manager implementation project for deployment in Bloomreach Cloud by following best practices:
- Do not store session data in the HttpSession. If you do, this data will get lost when the platform scales the number of site containers down.
- If the website writes data to the repository, this makes content freezes difficult. Content freezes are necessary when you need to do a Blue-Green Deployment, which is necessary for a backward incompatible upgrade. So ideally the site does not store any data in the content repository during content freezes. Either by implementing the option to disable/enable this functionality at run-time or avoid storing data generated by the site in the repository altogether. If storing data in the repository is needed, write a script that can migrate the new data from the old to the new repository. Execute this script after the blue-green deployment.
- Keep the content repository and database small - don't store large media files in the content repository. Instead, integrate with a dedicated external media service.
- Do not block the /cms/ping and the /cms/ws/indexexport end points. Bloomreach Cloud needs these endpoints to function. For example, when you configure SSO, exclude these URLs.