When I look at 2018, advancements made in the Kubernetes space helped cloud-native app development become a bigger focus for Red Hat and our customers. As we head into the end of the year, I want to discuss cloud-native application development from Red Hat’s perspective, how we got here and where we plan to go.
It is not a new belief for many people that in order to be successful in today's competitive environments, apps—and the ways enterprises are designing, building and using them—should be front and center. When we refer to cloud-native app dev, we are referring to building and improving software through cloud computing techniques and technologies. Cloud native provides abstraction from underlying infrastructure, use of agile and DevOps methods, and use of on-demand developer tools and services. Cloud native application development is also driven by new software architectures, such as microservices and serverless, made possible through technologies such as Linux containers. Microservices are a collection of small, independent and loosely coupled services that create composite application experience. Microservices and containers can allow you to fix, improve or scale one component of an application without having to redeploy the whole application. They can bring real benefits to the enterprise, culminating in delivering apps that users need at the pace the businesses need.
I believe that the progress made this past year could not have happened were it not for 2017 being, what I like to refer to as, "the year of containers." Linux containers are now an accepted way of packaging and deploying services and applications. 2017 set the stage for Kubernetes to become the de facto method in Linux container orchestration. Then 2018 was the year that Kubernetes strengthened its role in cloud-native app dev, becoming one of the leading ways of orchestrating container-based cloud applications.
Over the last two years, there has been a shift from developing and deploying apps over bare metal and virtualized environments to cloud-native environments based on containers. Many customers have focused on building their hybrid cloud infrastructure using containers and Kubernetes. As Red Hat OpenShift Container Platform has become more prominent, our customers are looking at their workloads and seeing where it may make sense to embrace application development services that can take advantage of Kubernetes and containers. With all that in mind, I believe that 2019 will be the year of cloud native app dev workloads and services.
Application development cloud services are important because they provide the tools and components on which customers can build their workloads. They can give them a head start with enterprise components customers can hook into their own systems and adapt to their needs. The value this brings is showcased by our customers who are using our application services portfolio within OpenShift to build solutions that span application runtimes, integration capabilities and process automation.
In addition to more cloud-based app dev services, we're seeing a move from exclusively desktop based developer tools to more collaborative, centralized and cloud-based developer tools. The open Eclipse Che project is one example, and one to which Red Hat is a top contributor. Che embodies cloud-native app dev because it centralizes the developer's workspace and hosts it on OpenShift or Kubernetes so that what the developer does is container-native from the start. Che is now being used by companies as they modernize their tools and processes to achieve a cloud-native app dev model.
Function-as-a-Service and serverless will continue to make strides, especially in how these developer services relate to Kubernetes. Knative can enable greater innovation by providing a common set of constructs to enable the interoperability for serverless workloads on any Kubernetes installation. We recently announced that we plan to add support for Knative in Red Hat OpenShift, our enterprise Kubernetes platform. I anticipate that 2019 will help to set the stage for FaaS and serverless, and we will see greater adoption of them in 2020. I also expect a lot to play out in 2019 in terms of how serverless is positioned directionally within the Cloud Native Computing Foundation (CNCF). Serverless itself can be applied to a range of industries and customer use cases, and we at Red Hat have had many conversations with customers about what serverless means for them and how they can successfully leverage it to their advantage. We have added additional serverless capabilities to our portfolio to help our customers strengthen their position.
As we move through the year, we will continue to see how hybrid cloud and multi-cloud can fit into the workload as an important, strategic requirement. During these past several years, customers were just trying to implement their first use of a single public or private cloud. Now that more users have some experience with clouds, many may find that they will need to incorporate hybrid and multi-cloud architectures for success in the future.
Multi-cloud and infrastructure independence affect how applications are built, packaged and orchestrated. Red Hat OpenShift is designed to provide a common abstraction layer across any infrastructure footprint that gives both developers and operations teams commonality in how applications are packaged, deployed, and managed. But applications consist of more than the microservices that developers will create. Applications require other services - databases, messaging, API management, data sync, push notifications and so on. Developers should start by assessing how comfortable they are in being locked-in to a particular vendor’s services and APIs, or whether they’d prefer to remain neutral with an open source service / API that can be hosted in a number of footprints - whether they be traditional virtualization, private or public clouds. Our goal is to offer key application services across all these footprints. There are many "whys" to running multi-cloud, whether it be cost, availability, build or test production. We can give you infrastructure independence by allowing you to run your applications in multiple clouds and take advantage of multiple environments. Having these choices across any cloud is truly multi-cloud.
It is not without challenges, and one we have seen is customers navigating their current workloads into a cloud-native environment. Red Hat Openshift also allows our customers to run both their traditional monolithic applications as well as their modern cloud-native services and applications. We are helping customers not only develop their modern applications but also migrate their existing applications on to OpenShift. This can be challenging because often, customers do not anticipate the culture and architectural shifts that are required to move to a cloud-native approach. While we have often moved on from the need to convince the enterprise that Kubernetes and containers can indeed be the right move from them, we are now faced with the challenge of finding that they have a culture that is able to handle the transition.
There has also been a shift in cloud-native app dev from the developer perspective. In the past, Integrated Development Environments (IDEs) have largely been focused on a single language and developer, which used to make sense because up until recently, most developers specialized in a single language. However, due to the changing and complex landscape today, more developers use several languages. At the same time, there have been new protocols developed that allow an IDE to get "pluggable" language intelligence. This can effectively make a single IDE a specialist in multiple languages. This can be a boon for developers as it can free them from having to switch between IDEs during their working day. It also helps to advance cloud-native app dev by allowing developers to effectively work in the language they are most comfortable with. I expect this to continue through 2019 and beyond as developers find new ways to use the power of these next-generation IDEs.
What I believe sets Red Hat apart in this space is that we are seeking to work our way to be on every single public cloud and private environment. When we say we are multi-cloud, we don’t just talk the talk, we walk the walk and truly embrace it. I believe that this is a big differentiator for Red Hat, as is our app development services capabilities on top of OpenShift. We have a strong ecosystem around this.
My key advice moving into 2019 is to take a good long look at your existing and future workloads to determine how to leverage cloud-native environments. Have candid conversations with your preferred ISVs and cloud service providers to bring them into the fold with the cloud-native discussions, to both hear their thoughts on containers, Kubernetes, service brokering, etc. I find it is all too often the case that vendors are not sure what they are going to do, so when customers work with their ISVs to make sure they have a cloud-native strategy that is on board with containers, it can be beneficial for everybody. You need the whole ecosystem in order to be successful.
Craig Muzilla is senior vice president of the Core Products and Cloud Services Business Group at Red Hat.