What is Red Hat Universal Base Image?
Back in May, we launched the Red Hat Universal Base Image (UBI), targeted at developers building containerized applications for the cloud. Since then, we have published an extensive FAQ covering topics ranging from how often UBI is updated, to how the end user license agreement (EULA) allows you to redistribute applications built on it. These are all great fundamental topics to cover, but people still seem to have a lot of questions around what UBI is and what it isn’t.
If you are a developer and you are trying to figure out whether UBI is right for you, it might be easier to start by first explaining what it isn’t. Red Hat Universal Base Image is:
- Not free Red Hat Enterprise Linux (RHEL). You should not build your application on a RHEL base image first, then try and move it to UBI and expect it to work. That’s an anti-pattern.
- Not a replacement for Fedora. UBI is not a place to drive new operating system development or a platform on which to develop new packages for RHEL.
- Not a replacement for CentOS. UBI is RHEL. It’s not a downstream rebuild. When it runs on RHEL, or CoreOS (in Red Hat OpenShift), it is supported as RHEL.
Now, let’s talk about what UBI is:
- A vehicle for building and delivering certified containers and operators.
- Use case based. UBI is targeted toward high-level application developers, programming in languages like .NET, Golang, Node.js, Perl, PHP, Python, and Ruby.
- High quality. It has the same quality guarantees as Red Hat Enterprise Linux. UBI is released and patched on the RHEL schedule with RHEL. It’s tested by the same performance, security and quality teams as RHEL.
- Redistributable under a different end user license agreement (EULA) than traditional RHEL. Traditional RHEL packages (RPMs) and container images have been restricted by the RHEL EULA.
Vehicle for building and delivering certified containers and 0perators
UBI makes it easy for ISVs to build and deliver certified container images for RHEL and certified Operators for OpenShift. This is a key value proposition for customers that want joint support from both the software vendor and the container platform vendor.
UBI frees developers to work with high-quality container images on their laptops, desktops, and CI/CD systems, even if they don’t run RHEL or OpenShift. This also allows ISVs and Red Hat partners to redistribute their applications on UBI. When the application lands on a supported environment (RHEL or OpenShift), Red Hat will support it. If you are a Red Hat ISV partner, and are looking for a way to deliver higher quality support to our joint customers, check out the Partner Connect Program; it’s free.
Use case based: UBI is for containerized cloud-native applications
As mentioned earlier, UBI should not be thought of as free Red Hat Enterprise Linux. UBI is targeted for specific use cases, not the wide variety of use cases that RHEL can address. Today, the UBI use cases include developers looking to develop containerized, cloud-native applications based on popular languages like .NET, Golang, Node.js, Perl, PHP, Python, and Ruby.
We are taking a hard look at expanding to a few other use cases including C/C++ development, container image builders, and RPM package builders, but today, it’s only designed for cloud-native application development, and should not be treated as free RHEL or a replacement for CentOS.
High quality: The security and operational benefits of RHEL
If you want to get to production faster, build on high-quality base images. Building on UBI is like building on RHEL so you will spend less time convincing security teams and operations teams that the random image you chose off of the internet is secure. See also: 3 Reasons I Should Build My Containerized Applications on RHEL and OpenShift.
Since UBI is Red Hat Enterprise Linux, it follows the same enterprise content availability schedule as RHEL. This means that you can build your containerized application on UBI, manage it with CI/CD based builds, and continue to receive updates for the packages in UBI for the same lifecycle as RHEL. Stated another way, you can focus on your application, instead of fixing packages in the underlying container image. Fewer CI/CD testing faults means more time to focus on new projects.
Red Hat Enterprise Linux has always had an end user license agreement that prevented users who signed it from redistributing RHEL. This extended to the RPMs in RHEL, and the container images. This EULA was necessary to govern the relationship between Red Hat and it’s customers. This ensured that customers had a subscription for every active RHEL server allowing Red Hat support to quickly provide customers with help if they needed it. This worked well in traditional server environments, where companies typically measure support by installed servers.
UBI has a different end user license agreement (EULA) than RHEL. This means that users can pull it down, build an application on it, open source or proprietary, and redistribute that application wherever and however they want. When that UBI images lands on RHEL or OpenShift, it is supported just like RHEL. The entitlement for UBI comes from the host, not the container image. This works well in cloud-based environments, and developer environments where containers are not always run on supported container hosts (e.g., CI/CD services, etc).
Check out Red Hat Universal Base Image
If you are building new applications, you should check out Red Hat Universal Base Image. It can be thought of as a use-case based, redistributable version of RHEL. This gives you all of the advantages of a RHEL base image, without the EULA restrictions on redistribution.
Check out all of the UBI based images that are available on the UBI Product Page on the Red Hat Container Catalog. Download a trusted image from a trusted source.