|
1 | 1 | --- |
2 | 2 | layout: default |
3 | | -title: Cloud Patterns |
| 3 | +title: Hybrid Cloud Patterns |
4 | 4 | nav_order: 1 |
5 | 5 | --- |
6 | 6 |
|
7 | | -# Cloud Patterns |
| 7 | +# Hybrid Cloud Patterns |
| 8 | + |
| 9 | +Hybrid Cloud Patterns are a natural progression from reference architectures with additional value. |
8 | 10 |
|
9 | 11 | This effort is focused on customer solutions that involve multiple Red Hat |
10 | | -products. |
| 12 | +products. The patterns include one or more appications that are based on successfully deployed customer examples. Example application code is provided as a demonstration along with the various open source projects and Red Hat products required to for the deployment to work. Users can then modify the pattern for their own specific application. |
| 13 | + |
| 14 | +How do we select and produce a pattern? We look for novel customer use cases, obtain an open source demonstration of the use case, validate the pattern with its components with the relevant product engineering teams, and create GitOps based automation to make them easily repeatable and extendable. |
| 15 | + |
| 16 | +The automation also enables the solution to be added to Continuous Integration (CI), with triggers for new product versions (including betas), so that we can proactively find and fix breakage and avoid bit-rot. |
| 17 | + |
| 18 | +## Who should use these patterns? |
| 19 | + |
| 20 | +It is recommended that architects or advanced developers with knowledge of Kubernetes and Red Hat OpenShift Container Platform use these patterns. There are advanced [Cloud Native](https://www.cncf.io/projects/) concepts and projects deployed as part of the pattern framework. These include, but are not limited to, OpenShift Gitops ([ArgoCD](https://argoproj.github.io/argo-cd/)), Advanced Cluster Management ([Open Cluster Management](https://open-cluster-management.io/)), and OpenShift Pipelines ([Tekton](https://tekton.dev/)) |
| 21 | + |
| 22 | +## General Structure |
| 23 | + |
| 24 | +All patterns assume an OpenShift cluster is available to deploy the application(s) that are part of the pattern. If you do not have an openshift cluster you can use [cloud.redhat.com](https://console.redhat.com/openshift). |
| 25 | + |
| 26 | +The documentation will use the `oc` command syntax but `kubectl` can be used interchangeably. For each deployment it is assumed that the user is logged into a cluster using the `oc login` command or by exporting the `KUBECONFIG` path. |
| 27 | + |
| 28 | +The diagram below outlines the general deployment flow of a datacenter application. |
| 29 | + |
| 30 | +But first the user must create a fork of the pattern repository. This allows changes to be made to operational elements (configurations etc.) and to application code that can then be successfully made to the forked repository for DevOps continuous integration (CI). Clone the directory to your laptop/desktop. Future changes can be pushed to your fork. |
| 31 | + |
| 32 | + |
| 33 | + |
| 34 | +1. Make a copy of the values file. There may be one or more values files. E.g. `values-global.yaml` and/or `values-datacenter.yaml`. While most of these values allow you to specify subscriptions, operators, applications and other application specifics, there are also *secrets* which may include encrypted keys or user IDs and passwords. It is important that you make a copy and **do not push your personal values file to a repository accessible to others!** |
| 35 | + |
| 36 | +2. Deploy the application as specified by the pattern. This may include a Helm command (`helm install`) or a make command (`make deploy`). |
| 37 | + |
| 38 | +When the workload is deployed the pattern first deploys OpenShift GitOps. OpenShift GitOps will then take over and make sure that all application and the components of the pattern are deployed. This includes required operators and applicatioon code. |
| 39 | + |
| 40 | +Most patterns will have an Advanced Cluster Management operator deployed so that multi-cluster deployments can be managed. |
| 41 | + |
| 42 | +## Edge Patterns |
11 | 43 |
|
12 | | -Cloud Patterns are natural progression from reference architectures with |
13 | | -additional value. |
| 44 | +Some patterns include both a data center and one or more edge clusters. The diagram below outlines the general deployment flow of applications on an edge application. The edge OpenShift cluster is often deployed on a smaller cluster than the datacenter. Sometimes this might be a three node cluster that allows workloads to be deployed on the master nodes. The edge cluster might be a single node cluster (SN0). It might be deployed on bare metal, on local virtual machines or in a public/private cloud. Provision the cluster (see above) |
14 | 45 |
|
15 | | -Reference Architectures are often speculative, single point in time |
16 | | -configurations, which tend to break after product versions evolve over time. |
| 46 | + |
17 | 47 |
|
18 | | -They are rarely maintained over time because the manual process of reconciling |
19 | | -changes to multiple underlying products them is time consuming. |
| 48 | +3. Import/join the cluster to the hub/data center. Instructions for importing the cluster can be found [here]. Your done. |
20 | 49 |
|
21 | | -For those with deployment details, the documentation is written and the user has |
22 | | -to either copy and paste the individual steps or type them in themselves based |
23 | | -on their unique implementation. |
| 50 | +When the cluster is imported, ACM on the datacenter will deploy an ACM agent and and agent-addon pod into the edge cluster. Once installed and running ACM will then deploy OpenShift GitOps onto the cluster. Then OpenShift GitOps will deploy whatever applications are required for that cluster based on a label. |
24 | 51 |
|
25 | | -For Cloud Patterns, we look for novel customer use cases - some horizontally, |
26 | | -others vertically-focused, validate them with the relevant product engineering |
27 | | -teams, and create publically available GitOps-based automation to make them |
28 | | -easily repeatable and extendable. |
| 52 | +## OpenShift GitOps (a.k.a ArgoCD) |
29 | 53 |
|
30 | | -The automation also enables the solution to be added to CI, with triggers for |
31 | | -new product versions (including betas), so that we can proactively find and fix |
32 | | -breakage and avoid bit-rot. |
| 54 | +When OpenShift GitOps is deployed and running in a cluster (datacenter or edge) you can launch it's console by choosing ArgoCD in the upper left part of the OpenShift Console (TO-DO whenry to add an image and clearer instructions here) |
0 commit comments