OpenShift provides all the resources needed to develop, host and scale Web applications in the public or private cloud. Available on GitHub, it has built-in support for various Web application frameworks. This article provides a tutorial on installing OpenShift and applications like WordPress, Jenkins and Tomcat through it.
Cloud computing is an innovative paradigm that delivers services on demand with a utility based billing model. NIST (National Institute of Standards and Technology, under the US Department of Commerce) has compartmentalised cloud computing into three service models (SaaS, PaaS and IaaS) and four deployment modelspublic clouds, private clouds, hybrid clouds and community clouds. Cloud computing is reshaping the computing and Internet landscape. With breakthroughs made in appropriate service and business models, it will certainly expand its role as the backbone for IT services. Cloud computing provides elastic and unlimited resources, which can be efficiently utilised during periods of peak loads and normal loads, with a pay per use pricing model.
As already stated, the cloud model covers Software as a Service (SaaS), Platform as a Service (PaaS) and Infrastructure as a Service (IaaS). In PaaS, the user can deploy applications on the cloud infrastructure using supported programming languages (Java, PHP, Ruby and .NET) and the platforms/tools provided by PaaS providers like Web servers, application servers and databases. Since PaaS providers manage the underlying infrastructure resources such as operating systems, virtual servers, networks, Web servers, application servers, databases, backup, disaster recovery, etc, users can focus on the most significant aspect of their business, which is the application itself, rather than worrying about managing resources, platforms and versions.
PaaS includes not only the deployment environment but also repositories such as the build environment, the testing environment, performance management, mail services, log services, database services, big data services, search services, enterprise messaging services, application performance management for modern application architectures, code inspection services and so on. OpenShift is a PaaS from Red Hat. OpenShift Origin is an open source version available on Git.
Red Hat OpenShift is a PaaS with Apache License 2.0. OpenShift Enterprise is a private cloud version. OpenShift supports Web-application frameworks such as Rack for Ruby, WSGI for Python and PSGI for Perl. It also supports MySQL, PostgreSQL and MongoDB. It has built-in support for Java, Python, PHP, Perl, Node.js, Ruby and extensible functionality to add languages. For Java, it covers end-to-end support for JBoss AS7, JBoss EAP6, Java EE6, CDI/Weld, Tomcat 6 and 7 (JBoss EWS 1.0 and 2.0), Spring, Liferay, Scala/Play!, Cloud9 IDE, Appcelerator Titanium, Git, Glassfish as DIY, Jetty as DIY, Eclipse, JBoss Tools, Jenkins, SSH access, Maven 3 and Ant. OpenShift offers a Linux platform with lightweight containers called gears that can run applications with open source languages and frameworks, using common services such as databases, as shown in Figure 1.
OpenShift uses Git to deploy application source code. It also allows deployment of WAR files.
The benefits of OpenShift are:
- Easy and fast self-service for application deployment
- Easy application scaling
- Runs on any hardware, virtual machine, cloud or even on laptops that support Red Hat
- Enterprise Linux
- Git integration with automatic deployment triggered by a Git push
- Gear idling allows OpenShift to support a high density of applications
- Support for various languages, Web frameworks, databases and application stacks
How to install OpenShift Origin or OpenShift Enterprise
To install OpenShift Origin, copy the sh <(curl -s https://install.openshift.com/) command and run it from a bash shell.
To install OpenShift Enterprise, copy the sh <(curl -s https://install.openshift.com/ose) command and run it from a bash shell.
OpenShift Online is a public cloud application development and hosting platform from Red Hat. It automates the provisioning, deprovisioning, management and scaling of applications in an efficient manner. It supports programming languages such as Java, Ruby, PHP, Node.js, Python and Perl, and a set of developer tools to increase developer productivity and accelerate application deployment and delivery. It supports command line client tools and a Web management console to launch and manage applications easily.
To sign up for OpenShift Online, visit https://www.openshift.com/app/account/new. Check your inbox for an email confirming your account. You must click the link in the email to complete the registration process. Accept the legal terms after verifying your account. You will get a welcome screen at https://openshift.redhat.com/app/console/applications. Click on Create your first application now. From multiple options, choose the type of application.
WordPress on OpenShift
Lets start with the WordPress application. Click on WordPress 4. Provide a domain under which your applications will be grouped. The application will start with an exact copy of the code and configuration provided in this Git repository https://github.com/openshift/wordpress-example.git
Gears are the application containers running your code. For most applications, the small gear size provides plenty of resources.
Applications are composed of cartridges, each one of which exposes a service or capability to your code. All applications must have a Web cartridge.
Note the credentials and other important information such as connection URL. Select the language for WordPress installation. Give your username, password, site title, email and other information required.
Click on Install WordPress. Log in to the admin area at https://mywordpress-msclouds.rhcloud.com/wp-login.php. Figure 6 gives the dashboard for the WordPress site we have created on the OpenShift Online. Visit the site (Figure 7).
Jenkins on OpenShift
Jenkins is an open source continuous integration server that is a vital part of the DevOps culture. The Jenkins app is provided by OpenShift Online. Select Jenkins from the application types available. Give the public URL for your Jenkins server.
Click on Create application, and then click on Visit app in the browser.
Access Jenkins in the Web browser. Log in with the credentials provided in the OpenShift dashboard. Figure 9 shows the Jenkins dashboard.
Tomcat on OpenShift
Tomcat is an open source Web server developed by the Apache Software Foundation. Select Tomcat as the type of application from the OpenShift Online dashboard.
View Tomcat related information and its status on the OpenShift Online dashboard. Visit and verify the Tomcat server in the browser.
OpenShift Online supports three free applications. After creating these three applications, verify the OpenShift Online dashboard.
 The NIST Definition of Cloud Computing, Version 15