OpenShift for Developers. Streamline Application Delivery
The Red Hat OpenShift 4 release focuses on tooling that is designed to deliver a developer-centric user experience. In previous blog we’ve introduced number of developer tools and now we’ll look at wider ecosystem of application development and deployment solutions which are available in OpenShift.
Based on the Istio, Kiali and Jaeger projects and enhanced with Kubernetes Operators, OpenShift Service Mesh is designed to simplify the development, deployment and ongoing management of applications on OpenShift. It delivers a set of capabilities well suited for modern, cloud native applications such as microservices. This helps to free developer teams from the complex tasks of having to implement bespoke networking services for their applications and business logic.
With Red Hat OpenShift Service Mesh, recently made generally available on OpenShift 4, customers can benefit from an end-to-end developer-focused experience. This includes key capabilities such as tracing and measurement, visualization and observability, and “one-click” service mesh installation and configuration. Operational and security benefits of the service mesh include encryption of east/west traffic in the cluster and integration with an API gateway from Red Hat 3scale.
Enhanced visualization of cluster traffic with Kiali in OpenShift Service Mesh.
OpenShift Serverless helps developers deploy and run applications that will scale up or scale to zero on-demand. Based on the open source project Knative, OpenShift Serverless is currently in Technology Preview and is available as an Operator on every OpenShift 4 cluster. The OpenShift Serverless Operator provides an easy way to get started and install the components necessary to deploy serverless applications or functions with OpenShift. With the Developer-focused Console perspective available in OpenShift 4.2, serverless options are enabled for common developer workflows, such as Import from Git or Deploy an Image, allowing users to create serverless applications directly from the console.
Configuring a serverless deployment in the OpenShift Console.
Other than the integration with the developer console, some key serverless updates to make development on Kubernetes easier include: kn – the Knative CLI providing an intuitive user experience, the ability to group objects necessary for applications, immutable point-in-time snapshots of code and configuration, and the ability to map a network endpoint to a specific revision or service. These features, available to try out in Technology Preview through OpenShift Serverless, helps make it easier for developers to get started with serverless architecture and have the flexibility to deploy their applications regardless of the infrastructure environment across the hybrid cloud, without lock-in concerns.
Cloud-native CI/CD with Pipelines
Continuous Integration and Continuous Delivery (CI/CD) are key practices of modern software development allowing developers to deploy more quickly and reliably. CI/CD tools provide teams the ability to get feedback through a streamlined and automated process, which is critical for agility. In OpenShift, you have a choice of using Jenkins or the new OpenShift Pipelines for CI/CD capabilities.
We offer these two options because, while Jenkins is used by the majority of enterprises today, we are also looking to the future of cloud-native CI/CD with the open source Tekton project. OpenShift Pipelines, based on Tekton, better supports pipeline-as-code and GitOps approaches common in cloud-native solutions. In OpenShift Pipelines each step is executed in its own container, so resources are only used when the step is running. This gives developers full control over their team’s delivery pipelines, plugins and access control with no central CI/CD server to manage.
OpenShift Pipelines is currently in Developer Preview and available as an Operator on every OpenShift 4 cluster. OpenShift users can also choose to run Jenkins in OpenShift, which is available in OpenShift 3 and 4.
Red Hat OpenShift Pipelines.
Quarkus is a Kubernetes-native Java stack that is crafted from best-of-breed Java libraries and standards, and tailored for containers and cloud deployments. The overall goal of Quarkus is to bring Java into a cloud-native application development future and enable it to become a leading platform for serverless, cloud and Kubernetes environments. With Quarkus, Java can be better equipped to scale in the modern application development landscape, while also improving at a faster clip.
Quarkus represents a fundamental shift in modern app dev and is designed to address some of the shortcomings that Java faces with regard to cloud-native application architectures like containers, microservices and serverless. Java developers are able to use Quarkus to build apps that have a faster startup time and take up less memory than traditional Java-based microservices frameworks. Quarkus includes flexible and easy to use APIs that enable developers to build cloud-native apps, and best-of-breed frameworks that are already familiar to most developers.
Quarkus is designed to work out of the box with popular Java standards, frameworks and libraries like Eclipse MicroProfile, Apache Kafka, RESTEasy (JAX-RS), Hibernate ORM (JPA), CDI, Spring compatibility, Infinispan, Camel, and many more. Developers can choose the Java framework they want to use when Quarkus applications are running on the Java Virtual Machine (JVM).
Quarkus includes MicroProfile OpenTracing for observing traffic patterns between services and MicroProfile Metrics for exposing JVM, Quarkus runtime and custom application metrics to monitoring platforms like Prometheus.
There are more than 80 optimized Java framework extensions that support compiling an application to a native binary. Developers familiar with these should feel at home with Quarkus, which streamlines code for the majority of common use cases, while providing the flexibility to cover others that come up.
Live coding for fast iteration during development where code changes are automatically reflected in the running app can also help towards increased developer productivity. Quarkus also unifies reactive and imperative programming models. Developers can choose the model that best fits their use case, and more easily integrate their code with other components in a reactive system, like reactive streams with Vert.x and Kafka, reactive database APIs, and much more.
Application container images
Application containerization is essential part of OpenShift Container Platform. Red Hat provides rich portfolio of container images which can be leveraged to containerize your workloads.
Containerized Red Hat Middleware
The Red Hat portfolio of middleware products helps you create a unified environment for application development, delivery, integration, and automation. It is comprised of comprehensive frameworks, integration solutions, process automation, runtimes, and programming languages.
Accelerate application development and delivery with Red Hat Runtimes
Red Hat Runtimes is part of the Red Hat Middleware portfolio. Red Hat Runtimes is a set of products, tools, and components for developing and maintaining cloud-native applications. It offers lightweight runtimes and frameworks for highly-distributed cloud architectures, such as microservices.
Red Hat Runtimes consists of following components:
- Red Hat JBoss® Enterprise Application Platform
- A set of cloud-native runtimes: Spring Boot, Node.JS, VertX, MicroProfile
- Red Hat build of OpenJDK
- Red Hat Data Grid
- Red Hat AMQ broker
- Red Hat Application Migration Toolkit
- Single sign-on
- Launcher service
Streamline integration development to connect applications and data across hybrid clouds with Red Hat Integration
Red Hat Integration is a comprehensive set of integration and messaging technologies to connect applications and data across hybrid infrastructures. It is an agile, distributed, containerized, and API-centric solution. It provides service composition and orchestration, application connectivity and data transformation, real-time message streaming, and API management—all combined with a cloud-native platform and toolchain to support the full spectrum of modern application development.
Red Hat Integration consists of following components:
- Red Hat Runtimes
- Red Hat Fuse
- Red Hat Fuse Online
- Red Hat 3scale API Management
- Red Hat AMQ (broker, interconnect, streaming)
- Red Hat AMQ Online
Adapt quickly to changing user demand and business requirements with Red Hat Process Automation
Red Hat Process Automation, part of the Red Hat Middleware portfolio, is a set of products for intelligently automating business decisions and processes. Enforce business policies and procedures, automate business operations, and measure the results of business activities across heterogeneous environments.
Red Hat Process Automation consists of following components:
- Red Hat Process Automation Manager
- Red Hat Decision Manager
- Red Hat Runtimes
Universal Base Image
With Red Hat Universal Base Image (UBI), you can take advantage of the greater reliability, security, and performance of official Red Hat container images where OCI-compliant Linux containers run – whether you’re a customer or not. This means you can build a containerized application on UBI, push it to a container registry server of your choosing, and share it. The Red Hat Universal Base Image can allow you to build, share and collaborate on your containerized application where you want.
With UBI, you can have the freedom to share and run your applications anywhere. But when you run them on Red Hat platforms like Red Hat OpenShift and Red Hat Enterprise Linux, there is additional value. Subscribers have access to product features and advocacy in the direction of the product roadmap.
UBI is designed to be a foundation for cloud-native and web applications use cases, developed in containers. All UBI content is a subset of RHEL. All of the packages in UBI come from RHEL channels and are supported like RHEL when run on a Red Hat supported platforms like OpenShift & RHEL.
It takes a lot of engineering, security analysis and resources to provide quality support for container images. It requires testing not just of the base images, but also their behavior on a given container host.
Principal Solutions Architect
Jaroslaw works as an Principal Solutions Architect at Red Hat and is responsible for delivery and solution selling based on Red Hat Openshift Container Platform and Red Hat Application Services in the region of Central and Eastern Europe.