Goal
The customer (a big retail store chain) uses micro sites to implement small, time-limited areas in their web site. This proof of concept demonstrates, how the desired life cycle of a micro web site for social media activities could be realized with Openshift 2.x. The life cycle includes development, test, publish and archive. Another important aspect of this proof of concept is the scalability of the solution.
The concept contains the following aspects:
- A simple and trouble-free way from development to publish
- Easy configuration
- Same environment for all steps (database, web server, …)
- Same publishing process for all micro sites
- Automatic publishing after successful tests (continuous delivery)
- Several clients should be able to use this environment
In addition, the proof of concept should specify the production environment requirements more precisely.
First Concept
OpenShift is a cloud computing platform as a service product from Red Hat (see https://www.openshift.com/). It allows to set up a private cloud for your own applications.
The Environment here consists of two OpenShift installation: The left one for development / QA and the right one for production.
- The external scm manager is used for backups
- The external jenkins is used for continuous delivery
Continuous Delivery Process
The continous delivery consists of two steps: from development to test/QA and from test/QA to production.
- Automatic application deployment from development to QA
- External jenkins job clones the git repository and sets a tag on the external scm manager
- External jenkins job creates a new application in the test environment with the tagged version
- Automatic application deployment from test/QA to production
- External jenkins job creates a new application in the production environment with the tagged version. The application is highly available (high-availability proxy).
The system is rolled back to the previously tagged version in case of an error.
Scaling and Availability
Scaling and availability is achived in two levels. The first level use the internal OpenShift high-availability proxy with a minimum of two and a maximum of four gears. The second level is an external load balancer for two high-availability proxy instances.
Implementation
The implementation is based on OpenShift 2.1 with one broker and three nodes. Multiple nodes are necessary to proof scaling and availability. A front end apache is used for specific customer configuration (self defined error pages, ….).
Life Cycle Concept
Initialisation Phase
- Each client gets an OpenShift domain and its own account. The access management can be done internal (OpenShift) or external (LDAP).
- Isolation is guaranteed by SELinux and control groups.
Development Phase
- A client can create its own application. The application can use special technology supplied by (OpenShift) cartridges such as data bases, tomcat, JBoss.
- By creating an application OpenShift sets up a development infrastructure and a git repository for the micro sites.
Production Phase
- The micro site is visible inside the company web site
- Rollback or redeploy is easily achieved by using the tagged versions in the git repository.
- The OpenShift environment (broker, nodes, gears) provides interfaces for monitoring. These can be integrated in external monitoring systems. Additionally, OpenShift provides a web-based monitoring application.
- The external Apache WebServer provides the company web site and can be used as a load balancer too.
- The high-availability proxy distributes the request to the gears. It starts additional gears on heavy load.
End of Life
- The shutdown of the micro site is simply achieved by deleting the application in OpenShift. The gear can be deleted via the OpenShift administration web site too, if necessary. A backup solution covers the git backup.
Conclusion
The concept shows that a simple and independent development can be combined with continuous delivery and high avaliabilty achieved through OpenShift.