Dynamically deploy distributed cloud apps and managed databases from a single dashboard

Summary

In this code pattern, you use IBM Cloud Satellite and Terraform templates to set up a compute infrastructure on Amazon Web Services (AWS) that contains managed Red Hat OpenShift and IBM Cloud Databases for PostgreSQL services. You set up IBM Cloud App ID authentication services and deploy a Node.js and Java microservices-based, back-end app to the OpenShift cluster running on AWS.

Description

In this code pattern, you deploy a microservices-based, back-end application to Red Hat OpenShift 4 running in an IBM Cloud Satellite location on AWS virtual servers. With IBM Cloud Satellite, you can connect your own compute infrastructure — either on-prem or running on another cloud provider’s platform — to a central control point on IBM Cloud. By doing this, you can consistently manage your OpenShift deployment and other supported services, such as databases, from a single dashboard.

With this pattern, you use IBM Cloud Schematics (Terraform templates) to automate the creation of an IBM Cloud Satellite location, deploy and attach additional AWS virtual machines (VMs) for the IBM Cloud Databases for PostgreSQL service, and deploy OpenShift (managed by IBM Cloud) on those VMs. You set up IBM Cloud App ID for authentication, configure your database, and finally deploy a Node.js and Java microservices-based, back-end app to OpenShift. The application runs on the AWS virtual private cloud (VPC) hosts and is accessible through an OpenShift route, which you will be able to access via a virtual private network.

Flow

Architecture flow diagram

Instructions

Find the detailed steps in the readme file. Those steps explain how to:

  1. Create an IBM Cloud Satellite location.
  2. Generate a Satellite script.
  3. Create and attach additional hosts to the Satellite location.
  4. Create an Amazon Elastic Block Storage configuration for Satellite.
  5. Enable public endpoints on the Satellite control plane.
  6. Grant IBM Cloud Databases for PostgreSQL authorization to the Satellite cluster.
  7. Deploy IBM Cloud Databases for PostgreSQL in Satellite.
  8. Create the storage assignment for the PostgreSQL service cluster.
  9. Test your PostgreSQL deployment through the PostgreSQL CLI.
  10. Provision an OpenShift cluster on the Satellite hosts.
  11. Deploy the Example Bank app on OpenShift with PostgreSQL.