TL; DR: Instead of spending the day setting up your environment, the OpenShift suite of container platforms lets developers get straight to work. With their application container solution, open-source giant Red Hat enables anyone from rookie developers to large enterprises to quickly develop, host, and scale applications. OpenShift capitalizes on Docker containers and Kubernetes orchestration, balancing flexible computing power with an easy-to-use interface. Developer Evangelist Grant Shipley told us about some of his favorite OpenShift features and the challenge of balancing complicated developer needs with an easy-to-use interface.
After spending all day working in Java as a Principal Software Engineer for Red Hat, Grant Shipley looked forward to learning mobile development and Ruby for fun in his free time.
Before he could start, though, he needed to configure a local environment to support a new runtime, a new application server, or a new database.
“By the time I got everything installed locally, sometimes it would take a full day,” he said. “I became really frustrated and lost interest.”
Not long after, he heard about a project another team at Red Hat was thinking about. OpenShift would solve his — and millions of other developers’ — problems with tedious infrastructure management, so Grant found his way onto the team crafting the solution.
At about the same time, Grant was helping a friend get into programming. Russ just wanted to learn how to start writing simple PHP scripts but was struggling to set up a LAMP stack.
“I realized that instead of having him go through all this, I can point him toward this project I’ve been working on, and he can issue one command and basically have an entire LAMP stack stood up in about 20 seconds,” Grant said. “That was when I really figured out that what we were doing was going to change the development world and how they view and work with technologies.”
By taking care of the tedious infrastructure management, OpenShift allows developers to focus on their projects and customers. Built around a core of Docker container packaging and Kubernetes container cluster management, OpenShift’s development and hosting platform automates the provisioning, management, and scaling of applications.
Red Hat and OpenShift Go All-In On Container-Driven Environments
From the beginning, OpenShift ran on container-like applications called gears that shared a common operating system kernel. Without the virtualized hardware and operating systems, gears ran more efficiently and used fewer resources than virtual machines.
Right after dotCloud announced an open-source container project, Docker, that eliminated the need for gears to share the exact same operating system, Red Hat announced a partnership to bring the container technology to OpenShift.
As OpenShift embraced containers and recognized the promise of Docker, Google’s orchestration system Kubernetes became the go-to resource to manage container clusters.
“We rearchitected our entire platform to take advantage of the Docker container format and Kubernetes orchestration,” Grant said. “That is changing the development landscape, and it kind of solves the initial problem I was trying to solve.
OpenShift added their own stamp to container technology by creating another open-source solution to automate Docker configuration files from developers’ source code.
“Throughout all of the different iterations we’ve made, our goal has always been to simplify the deployment process for developers,” Grant said. “We want to let them focus on code and not the operational aspects that go along with development.”
How OpenShift’s Open-Source Container Platforms Help Developers
By empowering developers to quickly and easily create development environments, OpenShift eases the strain on operations teams and promotes more efficient use of infrastructure resources.
“I used to manage a SysAdmin team and one of our major challenges was not really knowing if a developer’s environment was still running two weeks or two years later,” Grant said. “There was a lot of back-and-forth manageability aspects there that OpenShift now alleviates.”
Red Hat offers OpenShifts in different formats to meet customers’ needs:
- OpenShift Origin is the purely open-source product where the OpenShift team develops new features. Users can download the source code or virtual machine image to their own servers.
- OpenShift Online offers a public cloud for those who are looking for a small-scale hosting option. More than 3 million applications have been deployed to the OpenShift Online cloud.
- OpenShift Dedicated is for customers who need dedicated servers and support. The larger-scale organizations typically run OpenShift Dedicated in public clouds such as AWS, Microsoft Azure, or Google Compute Engine.
- OpenShift Container Platform enables large enterprises with their own datacenters to use the container platform in their servers while still enjoying OpenShift’s 24/7 support.
For large-scale business customers, OpenShift Container Platform is positioned as an enterprise distribution of Kubernetes. OpenShift developers work directly with open-source communities to introduce features that directly meet the needs enterprises have when looking for orchestration.
“We then wrap these complex technologies in a secure fashion, with a great user interface, and provide world-class support for them,” Grant said.
For startups or smaller businesses “who don’t necessarily know how successful they’re going to be,” as Grant put it, OpenShift means they don’t have to invest precious resources in infrastructure or infrastructure teams. Instead, they can rely on the platform to autoscale as demand grows.
“If they want to start small with maybe just one server, they can certainly do that,” he said. “The platform actually monitors the usage statistics and sees the number of requests and CPU utilizations. If demand exceeds capacity, it can automatically scale on demand. They can meet their user requests at one of the most critical times of their company — when they’re starting to get some traction — without having a panic attack of what to do to handle all the traffic.”
Grant’s Favorite OpenShift Features and Challenges to Creating Them
One of OpenShift’s key design tenets, according to Grant, is that every developer should have the ability to create a clustered environment that replicates their production environment.
“That limits the number of bugs they find once they go from their laptop or desktop to the fully clustered environment,” he said. “With OpenShift, developers are able to spin up an exact replica of the production environment where they can think about these clustered considerations once they hit production.”
Split Traffic Between Two Versions of the Same App for Testing and Updates
One of Grant’s favorite new OpenShift features, split traffic debuted two or three months ago and enables teams to simultaneously deploy two different variations of the same application and divide traffic between them in whatever ratio they’d like. Have a new online checkout process you want to try? Deploy solutions and run analytics on your A/B testing to see which one engages users and results in fewer abandoned shopping carts.
Split traffic also works for blue/green deployment, allowing you to seamlessly divert traffic to the new servers or application without downtime.
Source-to-Image Toolkit Builds Docker Images From Source Code
His all-time favorite, however, is the open-source project that allows developers to interact with the OpenShift platform through source code and the git revision system.
“That’s been hugely powerful to me because as a developer, I don’t have to do anything special,” Grant said. “I can just push my source code to the platform, and it automatically matches that up with a base Docker image, compiles my source code, and creates a new Docker image on the fly with my source code and the runtime. I get all the benefits of Docker without really having to know the internal guts of Docker or Kubernetes.”
Balancing Developer Needs With a Simple User Interface
Streamlining the developer experience is OpenShift’s top priority — but also one of the biggest challenges, according to Grant. Originally, some of OpenShift’s more powerful or complex tools could only be done through the command line interface and not online.
“This last release is when we really revamped the UI to make things cleaner and allow the same functionality in the web console as well as integrated development environments,” he said. “Kubernetes and Docker sound very simple on the cover, but they’re actually really complicated and complex systems for the massive, enterprise-scale production that we want to make available to the everyday developer.”
OpenShift Team Turns to Users for Product Feedback
Continuing on the developer-centric theme, OpenShift is making the next generation of OpenShift Online available to developers as part of a limited public beta.
“Quite frankly, we’ve had a lot more requests for accounts than we thought we would,” Grant said, mentioning that the team is continually adding new servers to meet demand. “Developers love using the system, and they’re more than willing to provide feedback on how we can improve it. That has driven a lot of the changes that we’re putting into the latest version.”
That collaboration is nothing new for OpenShift or Red Hat, whose teams are the second-largest contributors to the upstream Docker and Kubernetes communities.
“We make these technologies accessible to developers by contributing features that developers and large enterprises need to be successful,” Grant said. “All of the major things we’re working on are out in the open. There are no trade secrets, and open-source is so critical to our culture as a team and as a company.”