Self-Service and On-Demand Application Stacks
By enabling Developers with the ability to quickly and easily deploy application stacks, the OpenShift platform can increase productivity and foster innovation in application design and delivery. New ideas can be prototyped quickly and mission critical projects can be brought to market faster.
Standardized Developer Workflows
With OpenShift as the cloud application platform, the Application Development organization can standardize the Developer workflow and create repeatable processes for application delivery to streamline the entire process.
Polyglot - Choice of Programming Languages and Frameworks
The ability for Developers to choose between Java, Ruby, Node.JS, Python, PHP and Perl on the OpenShift platform allows them to choose the right tool for the job, and make a different choice for each project as needed. In addition to these and other open source language runtimes, many of the popular open source Frameworks are included within OpenShift as well. Examples include Rails, Django, EE6, Spring, Play, Sinatra, and Zend.
Enterprise Apps with Java EE6
Being able to deploy Java EE6 applications on JBoss EAP running within OpenShift allows the many IT shops that have standardized on Java EE to move their legacy applications to the cloud without re-writing or re-architecting them.
Built-in Database Services
With a choice database technologies available in OpenShift and the ability to have these database instances automatically connected into the application stacks as needed, Developers and Enterprise Architects can choose between classic relational and modern NoSQL data stores.
Extensible Cartridge System for Adding Services
In addition to the built-in languages and services, Developers can add other language, database, or middleware components that they need via the customizable OpenShift Cartridge system. This unique Cartridge-based extensibility allows Developers (and Operations) to extend the PaaS to support specific enterprise standards or requirements.
Multiple Environment Support - Dev/Test/Prod
With the OpenShift platform's ability to support multiple Application Development Lifecycle stage environments (such as Dev, QA, Pre-Prod, and Prod), the Enterprise can adopt and implement the OpenShift PaaS platform without changing their current methodologies or processes.
Dependency and Build Management
The OpenShift platform includes Dependency and Build Management for many of the popular programming languages including Bundler for Ruby, NPM for Node.JS, and Maven for Java. These tools automate the process of identifying dependencies in source code, pulling in the required libraries, and building the complete application. This both increase productivity and reduces the chance of error. These tools become critical in a cloud application platform like PaaS.
Continuous Integration and Release Management
The OpenShift platform includes Jenkins for Continuous Integration and Release Management. Jenkins can perform tests upon code check-in, orchestrate the build process, and automatically promote or cancel an application release based on results of the tests or build. This automated release management becomes a critical part of streamlining the application development.
Source Code Version Management
The OpenShift platform includes the Git distributed version control and source code management system. The Git protocol secured with SSH is used by developers to check code into the secure Git repository residing within their application container with OpenShift. Git allows both fast, secure and controlled management of application source code versioning.
Remote SSH login to Application Container
The unique SELinux-based architecture of the OpenShift platform allows users (Developers or Operations) to remotely log into individual application containers for applications deployed on the PaaS. The logged-in user will see only their processes, file system, and log files. This gives users the access they need to best architect and manage their applications.
With the OpenShift platform's built-in integration with Eclipse, JBoss Developer Studio, and Titanium Studio, many developers can stay entirely within the IDE that they are comfortable with when working with OpenShift.
Remote Debugging of Applications
OpenShift's integration with JBoss Developer Studio allows JBoss Developers to perform live break-point-enabled debugging of applications running within the OpenShift PaaS.
Rich Command-Line Tool Set
For Developers that prefer to work from the Command Line, the OpenShift platform includes a rich set of command line tools that provide full access to the Developer interface of the PaaS. These tools are easy to use and also scriptable for automated interactions.
Responsive Web Console
The OpenShift platform also includes a rich web console Developer interface that has a responsive UI design so that it can be easily viewed on devices ranging from mobile smart phones and tablets to laptop and desktop workstations. Developers can create, modify, and manage their applications from within the web console.
Mobile Application Development
Through a partnership with Appcelerator, the OpenShift platform includes a tight integration with Titanium Studio mobile IDE which allows the development of cloud-backed mobile applications for Android or iOS that can be serviced by back-end applications running on OpenShift.
The OpenShift platform includes unmodified open source language runtimes. This means that applications developed on OpenShift can be easily moved to other environments supporting the same open source languages. For example, Ruby or JBoss applications running on OpenShift can be move to stand-alone implementations of Ruby or JBoss in the datacenter.
One Click Deploy
Deploying to the OpenShift platform is as easy a clicking a button or entering a "Git push" command. OpenShift is designed to reduce or eliminate many of the systems administration headaches related to application provisioning and deployment.
Github Sample QuickStart Repository
In the open source way, Red Hat's OpenShift platform is supported by a community of contributors and devotees. In the Github.com OpenShift repository, there are a number of sample applications and "QuickStart" recipes designed to demonstrate and jump start development on OpenShift.
System Component Redundancy for High Availability
The OpenShift platform is architected with a stateless control plane (Brokers), a messaging infrastructure, and application hosting infrastructure (Nodes). Each piece of the platform can be configured with multiple redundancy for fail-over and load-balancing scenarios to eliminate the impact of hardware or infrastructure failure.
SELinux-based Secure Containers for multi-tenancy
Unique to the OpenShift platform is an architecture that leverages time-tested Linux kernel technologies like Security Enhanced Linux (SELinux) and Control Groups (CGroups) to provide a highly secure, scalable and efficient containerization approach for multi-tenancy within a single operating system instance. User applications reside within these secure containers called OpenShift Gears. To the user, the Gear appears just like a dedicated instance of Red Hat Enterprise Linux (RHEL) complete with language run-times, databases, web server, access to the file system, environment variables and config files. Many Gears may reside on one instance of RHEL and many RHEL instances may comprise one OpenShift PaaS. Using SELinux (a Mandatory Access Control technology which means "deny everything and allow only by exception") instead of other container technologies (that may implement DAC, or Discretionary Access Control, which provide privileges based on user group or filesystem permission) allows the OpenShift platform to protect all users and the PaaS from any single malicious user or poorly written application.
Automatic Application Stack Provisioning
When a Developer uses the Self-Service OpenShift platform to create an application, OpenShift will automatically create the necessary Gears, deploy the language runtimes (via Cartridges), configure the network interfaces and provision the DNS settings and ultimately return to the user the credentials they need to begin to push code to the application. This automatic provisioning replaces what historically could take days, weeks, or even months for the IT Operations team to do manually. This frees up the Operations team to focus on critical customer requirements instead of repeatedly configuring servers.
Automatic Application Scaling
The OpenShift platform enables cloud elasticity by providing automatic horizontal application scaling as application load increases eliminating the need for Operations to manually increase the number of application instances.
Configurable Deployment to Support Enterprise Requirements
Not available on OpenShift Online
The OpenShift Enterprise product from Red Hat is an OpenShift PaaS implementation that can be installed within customer data-centers or in a private cloud. OpenShift Enterprise is designed to allow enterprises to realize of the benefits of OpenShift PaaS in an operational model that complies with enterprise requirements around security, data privacy, compliance or IT governance. To that end, the installation of OpenShift Enterprise is configurable such that the Enterprise Architecture or IT Operations team can control what features are implemented within the PaaS, what level of security is used, and to what tools users can get access. Enterprise standards and policies can be addressed when implementing OpenShift Enterprise.
Minimized On-going Maintenance of platform
Not available on OpenShift Online
With the above discussed secure containerization architecture based on OpenShift Gears, the OpenShift platform can use a single RHEL instance to enable many user applications. This model minimizes the number of operating system images (VMs) that need managing in a PaaS supporting very many applications. Likewise, when operating system updates are required, the number of instances that need to be updated is much smaller than the corresponding number in a system that may use virtual machine-based multi tenancy. The management and maintenance burden for OpenShift Enterprise is minimized thanks to the architecture that is multi-tenant within Red Hat Enterprise Linux instances.
Choice of Cloud Infrastructure
Not available on OpenShift Online
OpenShift Enterprise is designed to be deployed on top of and run on Red Hat Enterprise Linux (RHEL). RHEL is required because of the in-depth use of SELinux within the OpenShift platform and to enable Red Hat Global Support Services to provide support for the PaaS and the included runtimes and libraries. OpenShift Enterprise has no specific requirement for the infrastructure layer other than it must be able to provision RHEL instances. To that end, OpenShift Enterprise customers have a choice of infrastructure. Whether physical servers, a virtualization platform, an Infrastructure-as-a-Service, or a public cloud provider, as long as RHEL instances can be configured and accessed OpenShift Enterprise PaaS can be deployed. This gives IT the freedom to deploy the OpenShift Enterprise PaaS solution in a way that best fits within their existing infrastructure options.