Skip to main contentIBM Garage for Cloud

Overview

Get familiar with using the IBM Cloud-Native Toolkit

Developer Environment

IBM Cloud-Native Toolkit provides an environment for developing cloud-native applications for deployment within Kubernetes and Red Hat OpenShift. It embodies IBM Garage Method principles and practices for consistently developed applications incorporating best practices that increase developer velocity for efficient delivery of business value.

Overview

This short video introduces the concepts of DevOps with Red Hat OpenShift:

Each development team installs its own Developer Environment into the team’s account. The environment includes several features that support IBM Garage Method best practices for consistent and rapid development of cloud-native applications:

  • Installation: The Cloud-Native Toolkit is able to install itself as a new Developer Environment
  • Cluster: A Kubernetes or Red Hat OpenShift cluster that both hosts the tools and itself is a deployment target for application builds
  • SDLC: Deployment target environments that support the application development lifecycle: dev, test, and staging
  • Backend services: Cloud services commonly required by cloud-native applications for monitoring, security, and persistence
  • CI/CD: A prebuilt, ready-to-run continuous delivery pipeline incorporating best-of-breed open source software tools
  • Code Patterns: Prebuilt code templates for common application components and tasks incorporating best practices that developers can add to their codebase as needed
  • Dashboard: A centralized console to help developers use the environment’s capabilities
  • Red Hat CRC: The tools can be installed into the RedHat CodeReady Containers environment

A core set of tools are sourced from the IBM Bitnami Software Catalog that can be found in the IBM Cloud. This approach helps assemble these reliable open source development tools into an end-to-end developer experience that is fully integrated with IBM Cloud’s managed container orchestration services.

Typically a Cloud System Admin (such as a squad leader) installs and sets up a new Developer Environment after the initial inception workshop, providing a place for the developers to start developing the minimum viable product (MVP). The objective is to reduce the time required for a team to configure and prepare their development environment. The key benefit is to make the end-to-end CI/CD development lifecycle consistent across each platform and make the out-of-the-box developer experience as simple as possible.

The installation is performed using Terraform, driven by scripts with a modular configuration so unneeded tools can be easily disabled or new tools added. The combination of tools selected are proven in the industry to deliver real value for modern cloud-native development.

Red Hat Open Innovation Labs CI/CD components embodies a very similar approach to how they deliver success with OpenShift.

Environment components

After installation, the Developer Environment consists of the following components and developer tools:

  • A development cluster
  • A set of backend services
  • A set of continuous delivery tools

This diagram illustrates the Developer Environment:

Provisioned environment

The diagram shows the components in the environment: the cluster, the deployment target environments, the cloud services, and the tools.

Development cluster

The heart of the is a cluster:

  • An or 3-node cluster
  • Cluster namespace that encapsulates the tooling installed in the cluster: tools
  • Cluster namespaces for deployment target environments: dev, test, and staging

Backend services

The following services are created and bound to the cluster:

CapabilityServiceDescription
Log ManagementLog Analysis with LogDNAManage and analyze app logs
MonitoringCloud Monitoring with SysdigMonitor app and platform resources
User AuthenticationApp IDVerify identities of clients accessing app end points
Relational Data StorageDatabases For PostgreSQL (used by SonarQube)Stores relational data structured as schemas for SQL querying
Schemaless Data StorageCloudantNoSQL database for JSON documents
Binary Data StorageCloud Object StorageStorage service commonly used for binary content

Continuous delivery tools

The following best-of-breed open source software tools are installed in the cluster’s tools namespace:

CapabilityToolBitnamiDescription
Continuous IntegrationJenkins CIYesJenkins is a common tool for Continuous Integration
Continuous IntegrationTekton CITekton is an emerging tool for Continuous Integration with Kubernetes and OpenShift
API Contract TestingPactPact enables API contract testing
Code AnalysisSonarQubeYesSonarQube can scan code and display the results in a dashboard
Container Image RegistryIBM Cloud Container RegistryStores container images to be deployed
Artifact ManagementArtifactoryYesArtifactory is an artifact storage and Helm chart repository
Continuous DeliveryArgoCDArgoCD support Continuous Delivery with GitOps
Web IDEEclipse CHEIDE for editing and managing code in a web browser

Getting Started

Get to know the Cloud-Native Toolkit: