Businesses are moving to the cloud for many reasons, one of which is to facilitate the development of custom software. It has long been the norm for organisations to differentiate through their applications, and whether businesses are innovating in areas such as 3D printing, mobile applications, predictive analytics or even the Internet of Things, the ability to put many applications into service quickly can mean the difference between success and failure.
Because of this, developers want to procure tools and infrastructure quickly. This has led to 'Shadow IT', where users are bypassing IT organisations and going straight to public clouds for compute resources, paying for it with a credit card.
While this can introduce temporary relief, it can introduce security and compliance risks, resulting in applications that don't interoperate or can't easily be transitioned into a production environment. As a result, IT is under pressure to themselves rapidly provide the resources that developers need.
The dev/test solution
Organisations clearly need to respond rapidly to demands and quickly deliver IT services that are flexible. This is difficult to do when they have a rigid structure to produce and deliver applications. In a bid to create applications reliably, application development and test (dev/test) has traditionally operated as two, often isolated, units - "Development", which builds applications - and "Operations", which runs those applications. With the move to the cloud and DevOps model, these roles have begun to blur and merge together as part of a general shift toward a more nimble and iterative development and deployment process.
Organisations can deliver a cloud for agile application development and test (dev/test) in two complementary ways: By building cloud-style Infrastructure-as-a-Service (IaaS), such as that provided by OpenStack, and by delivering complete development environments as Platform-as-a-Service. Public clouds can also be added as part of a managed, hybrid environment.
In addition to allowing IT to drive innovation, the benefits of this setup for dev/test are numerous. Even when companies start small, it provides an internal alternative to current public cloud use. It can streamline and standardize development workflows. Additionally, it can operate independently of production systems and processes—it can also be integrated over time whether through formally adopting DevOps methodologies or other approaches.
Red Hat's Open Hybrid Cloud
One company looking to the cloud to solve the dev/test conundrum is Red Hat. A roadmap for IT innovation, its Open Hybrid Cloud (OHC) approach allows organisations to start out by implementing an on-premise cloud for dev/test while maintaining the flexibility to accommodate future needs. This addresses one of the most pressing needs at many organisations: improving developer productivity and accelerating application development.
Because of its hybrid approach, OHC allows for solutions that are interoperable and provide portability - whether those are on premise or in private or (managed) public clouds.
It embodies both IaaS and PaaS approaches:
Red Hat Enterprise Linux OpenStack Platform builds on top of Red Hat Enterprise Linux to provide an application platform for cloud workloads with a large ecosystem and advanced features for writing new applications.
OpenStack allows organisations to build a private cloud with the characteristics of a public cloud, including self-service and on-demand access to computing resources. It allows developers to request compute, storage and networking resources as and when the need it. Essentially, it's a full public IaaS cloud delivered privately.
Java and web developers don't usually care much about underlying infrastructure and only want to write apps in a suitable development environment, which is where a PaaS like OpenShift by Red Hat comes in.
OpenShift can be built on top of OpenStack or other infrastructures and takes advantage of Red Hat Enterprise Linux, Red Hat JBoss Middleware, and all the associated work that makes it a productive and full-featured environment for Java EE development.
It's flexible too, allowing developers to work with a wide range of other open source languages, frameworks and tools – such as PHP, Python, Ruby, Maven, Jenkins and Eclipse. Plus, apps developed on OpenShift can be flexibly transitioned from test and development to production on a different infrastructure - including physical servers.