Kabanero: Curated Development Tools and Runtimes Powering IBM Cloud Pak for Applications

6 min read

Developers want to code. Architects want to meet business goals. Operation teams want to deploy with confidence. Kabanero helps all three.

Developers want to code. Architects want to meet business goals and process while adhering to governance requirements. Operations wants to deploy with confidence and resolve problems rapidly. To address these expectations of your developers, architects, and operations team, the open source project Kabanero brings together key technologies into a microservices-based framework for building modern cloud-native applications:

Kabanero development and deployment lifecycle

Following the theme introduced by my colleague's earlier post "Three ways to drive customer value and remove infrastructure burdens," this series presents the curated development tools and runtimes of the IBM Cloud Pak for Applications, which is built on the upstream open source Kabanero project. A brief description for each follows (for easy reference, the main interest group—developer, architect, or operations team—is shown in parenthesis):

  • IBM Cloud Pak for Applications: One of the initial five Cloud Paks from IBM, the Cloud Pak for Applications is an enterprise-ready, containerized software solution for modernizing existing applications and developing new cloud-native apps that run on Red Hat OpenShift (all).
  • Transformation Advisor (TA): To help migrate traditional Java EE apps to the cloud, TA analyzes your existing code base, classifies the migration as simple, medium, or complex, and offers recommended steps (architects, developers).
  • Appsody + Codewind: Simply stated, Appsody and Codewind help developers write Kubernetes applications by providing preconfigured "stacks" of popular runtimes/frameworks and tools that can be installed easily on developer workstations (developers, operations team). 
  • Tekton: Tekton is a Kubernetes-native, open source framework for creating continuous integration and delivery (CI/CD) systems with built-in best practices (operations team).
  • IBM Application Navigator: To complement the infrastructure view that the Kubernetes platform provides, App Navigator presents a containerized applications view, as identified by the Kubernetes Application Special Interest Group in the Kubernetes Application CRD and Controller project (operations team).

With this brief introduction out of the way, let's take a look at the Kubernetes technologies powering the next generation of enterprise applications!

Foundation: Cloud Pak for Applications running on Red Hat OpenShift

Cloud Paks provide enterprise container software that is pre-integrated for cloud use cases in production-ready configurations. The IBM Cloud Pak for Applications brings enterprise support and expanded integration to its upstream open source project, Kabanero, allowing customers to curate a set of Application Collections with confidence, knowing that they are certified and backed by IBM's world-class support, running on the Red Hat OpenShift Container Platform.  A rigorous certification process ensures that all pieces have been scanned and tested for vulnerabilities and follow best practices.  

The IBM Cloud Pak for Applications software solution stack runs on Red Hat's leading Kubernetes platform, OpenShift. Its secure and battle-tested environment ensures you have a trusted Kubernetes platform with years of value-add integrated frameworks for enterprise app development and deployment.  

Kabanero within the IBM Cloud Pak for Applications

You can take advantage of OpenShift's Routes, Security Context Constraints, and the popular source-to-image (S2I) functionality. Starting with OpenShift 4.1, the new integrated Operator marketplace allows you search and deploy new Operators using the robust Operator Lifecycle Manager.

You can rely on IBM's certified container software, providing state-of-the-art container images into the most popular registries (Docker Hub, Red Hat container catalog, IBM Cloud's registry). For example, the lightweight Open Liberty Universal Base Image (UBI) is pre-integrated with the Cloud Pak for Applications, supporting Jakarta EE, MicroProfile, and Spring Boot—so all you have to do is add your application and configuration on top of it.

Transformation Advisor: Migrate existing Java EE apps to the cloud

How about the legacy/heritage applications that you currently are running on VMs? As explained in the Cloud Garage's application modernization and reference architecture, moving to the cloud can be a complex process. You need to plan carefully to prepare your infrastructure and determine the best strategy for each application.

IBM Cloud Transformation Advisor, included with the Cloud Pak for Applications, analyzes your on-premises workloads for modernization and gets you to OpenShift faster by providing recommendations about your application's journey into a Liberty container.  

Transformation Advisor recommendations

Appsody + Codewind: Simplify building and deploying apps to Kubernetes

Appsody provides a set of open source tools that simplify the experience of building and deploying applications to Kubernetes using the language and frameworks of your choice.

At the heart of Appsody is the concept of Appsody Stacks. These provide pre-built, cloud-optimized development and production configurations for a range of programming languages and microservice frameworks, including Open Liberty, Spring Boot, Express.js, LoopBack, and Kitura. The developer/architect workflow is depicted in the diagram below:

Appsody and Kabanero development lifecycle

These Stacks are discoverable and shareable through the Appsody Hub repository.

Codewind, an open source project under Eclipse.org, is a set of tools that helps developers efficiently build high-quality, cloud-native applications for Kubernetes, regardless of which IDE or language they are using. When a developer's IDE is enhanced with Codewind, they can run their applications in a Docker container and still get the rapid edit-build-run development experience with minimal interruption—hiding the complexities of the underlying platform.

With Codewind, developers can focus on just delivering code; watch the short Eclipse Codewind demonstration video to see how it works.

The Appsody CLI is integrated into Codewind, which means that you can develop with Appsody Stacks directly in popular IDEs like Eclipse and Visual Studio using Codewind's plugins.

Operators: Simplify day-2 deployments to Kubernetes

Operators are the next generation of packaging, deploying and managing cloud-native applications as code directly in Kubernetes. We have created two Application Operators as part of IBM Cloud Pak for Applications:   

  • Open Liberty Operator: This operator has the same functionality as its counterpart Helm chart, allowing Open Liberty applications to be easily deployed into OpenShift with enterprise qualities of service (QoS) and without needing the Helm CLI or Tiller. It is available today from OperatorHub.io and is backed by Open Liberty's open source GitHub repository.  
  • Appsody Application Operator: This operator allows for a simple but powerful deployment of any application container, independent of which runtime it uses. This language-agnostic approach allows customers to have a consistent deployment methodology across their microservices, using either regular Kubernetes resources or Knative resources. 

An operator lives inside the target cluster and can, therefore, perform day-2 operations to the resources it is watching.   

Tekton: Kubernetes-style CI/DI pipelines

The Tekton project provides Kubernetes-style resources for declaring continuous integration and continuous deployment (CI/CD) pipelines. A Tekton pipeline is a structured collection of Tasks—each of which is a set of instructions to execute within a given container. Tekton automates common activities in Kubernetes environments, such as building, testing, and deploying code. 

IBM Cloud Pak for Applications comes integrated with a web-based Tekton dashboard and an extension that enables developers to manage webhooks from systems such as GitHub. These webhooks are commonly used to initiate CI/CD pipelines. The following screenshot is an example of the Tekton dashboard.

Tekton dashboard

Application Navigator: Complementary app-centric view for Kubernetes

IBM Application Navigator is a tool that compliments any Kubernetes platform's console, providing visualization, inspection, and interaction with the deployed resources that comprise an application. It helps you define, visualize, and navigate hybrid and cloud-native applications, yielding a superior user experience for applications that dramatically surpasses the infrastructure view offered by Kubernetes platform consoles. 

This new user interface offers configurable action menu items by Kubernetes Kind, providing URLs and scriptable commands that enable the user to navigate to and operate other tools, such as the log, monitor, trace, or configuration for any selected component (see Liberty deployment options shown in the screenshot below).

Application Navigator for Kubernetes

What's next?

In the next post in this series, we'll take a closer look at the technologies powering Kabanero—Appsody, Codewind, Tekton, and more. Each project has its own vibrant open source community and independent releases, yet is tightly integrated under the Kabanero umbrella to provide you with an opinionated full enterprise stack.

Are you Todd (operations), Jane (developer), or Champ (architect)? You can start exploring Kabanero today and pick the journey that fits your role and interests.

EVENT: IBM Application Modernization Technical Conference 2019 on September 24-25, 2019

This 2-day workshop is for enterprise developers, enterprise architects and operations admins who want to think less about enterprise infrastructure and more about how to develop faster and better in a secure, supported, open environment. See the session tracks for details. Reserve your seat today at this no-cost 2 day conference!

Resources

  • IBM Cloud Pak for Applications: Move traditional apps from a monolithic to microservices-based architecture and develop cloud-native applications.
  • Application Modernization: IBM Cloud Garage documentation of cloud-native adoption journey with reference architecture.
  • Kabanero: Foundational open source technologies for a modern microservices-based framework.
  • Appsody: Application stacks that allows developers to create more code faster.
  • Open Liberty UBI Images:  Pre-built, enterprise-grade Open Liberty images based on Universal Base Images.
  • Appsody Application Operator: Deploy any application image into a Red Hat OpenShift cluster with a simple yet powerful set of configuration options.
  • Open Liberty Operator: Deploy a Liberty application image into Red Hat OpenShift with built-in support for MicroProfile, Jakarta EE, and Spring Boot. 

Be the first to hear about news, product updates, and innovation from IBM Cloud