I have been working with Hippo CMS platform since early 2015. Hippo CMS is by far one of the finest Java-based Open Source Content Management system out there. Ever since I have learned about Docker, I have been experimenting with the idea of deploying Hippo CMS on Docker:
- Simplify the overall deployment process for one or more reasons listed below,
- CI/CD automation,
- Use Jenkins to build Docker Images
- Use Sonatype Nexus Repository as a private registry to store Docker Images.
- Run scalable application cluster with Horizontally scalable infrastructure.
After stalling and failing for years, I finally have the recipe for successfully deploying Hippo CMS as a Dockerized Container using,
- Docker Compose
- Docker Swarm and
- Kubernetes
- OpenShift
- Rancher
While Docker Compose is great for running test and demo clusters, Docker Swarm and Kubernetes could be a great fit for a production cluster. Using Openshift and Rancher Orchestration platforms -- you can even run multiple clusters (multi-tenant) of the same application and manage them more elegantly and effortlessly.
Using these deployment schemes, you can achieve run highly scalable cluster of web applications. Using Kubernetes, you can achieve even dynamic auto-scaling capabilities.
The links below will take you to the documentation of specific deployment schemes, choose one or more that suits you the best.
The key objective here is to separate the scalable deployment concerns from the core application itself, therefore, changes to the application platform should not influence the deployment model as long as Hippo CMS architecture remains the same.
+-------+ +-------+
|Browser| |Browser|
+-------+ +-------+
| |
| |
+--------------------------------------------+
| | | |
| +------------+ +-----------+ |
| | CMS | | Site | |
| +------------+ +-----------+ |
| | | |
| +-------------------------+ |
| | |
| | |
| +--------------------+ |
| | JCR Repository | |
| +--------------------+ |
| | |
| | |
| +--------------------+ |
| | RDBMS | |
| +--------------------+ |
+--------------------------------------------+
All of the tools and technologies used here are Free and Open Source (some do offer enterpise licensing for support and advanced features). All you need is a problem that requires large scale deployement solution -- and of course a lot of time and energy to research and ask a lot of stupid questions on community forums -- ah, well, there is no such thing called stupid question.
- Build Docker Images of your Hippo CMS project.
- Install OpenShift Origin on Ubuntu 18.04.
- Rancher 2.0 Documentation
- Docker Swarm.
- Hippo CMS Documentation
- Kubernetes Documentation
- Docker Getting Started
- Traefik
- Apache Jackrabbit
- Sonatype Nexus - Private Registry for Docker
- Jenkins Docker Plugin
- All ideas and concepts presented here are my own and may NOT have been tested, approved and supported by the parent company of Hippo CMS.