Disaster Recovery
CrafterCMS is an enterprise-grade content management system. As such, it is capable, if correctly configured, of providing nearly 100% availability for content delivery and 99.95% or better availability for content authoring. This section describes the steps necessary to configure CrafterCMS for high availability and disaster recovery.
Delivery DR
CrafterCMS Delivery is a stateless, shared-nothing, and geo-distributable application. Achieving high-availability Delivery is as simple as adding more delivery nodes and geo-distributing them.
The minimum high-availability setup is two nodes in two different data centers (e.g. two availability zones in AWS). The nodes can be configured to use a load balancer to distribute the load between them. The load balancer can be configured to use a health check to determine whether a node is available. If a node is unavailable, the load balancer will stop sending requests to that node until it becomes available again. Learn more about health checks and custom health checks in the article Custom Health Check.
Adding two more nodes in a different geography (e.g. a different region in AWS) will significantly increase the system’s availability. Using a latency-based DNS with health check capability will route the end-user to the nearest healthy geography.
To summarize, it’s possible to get CrafterCMS delivery to be near 100% availability by spreading delivery nodes across geographies. As an added bonus, the content will render much closer to the end user, which will improve the user experience.
What if you don’t have multi-region capability? You’ll end up with an availability equal to the availability of the region and data centers you’re in. To achieve disaster recovery, however, you must backup and shuttle those backups to another region/data center. Disk snapshotting will work well in this case. When restoring from back up to your DR site, you must get Engine running off the restored content, and you must get Deployer and the Search Engine also restored to deliver the whole experience.