- Home
- >
- DevOps News
- >
- Progressive Delivery on OpenShift – InApps 2022
Progressive Delivery on OpenShift – InApps is an article under the topic Devops Many of you are most interested in today !! Today, let’s InApps.net learn Progressive Delivery on OpenShift – InApps in today’s post !
Read more about Progressive Delivery on OpenShift – InApps at Wikipedia
You can find content about Progressive Delivery on OpenShift – InApps from the Wikipedia website
Hai Huang
Hai is a research scientist at IBM T. J. Watson Research Center. He is a contributing member of Kubernetes, Istio, Iter8 and TPM.
We are accustomed to having high expectations of our apps. We want a constant stream of new features and bug fixes, and yet, we don’t want these updates to affect our user experience adversely. As a result, these expectations put a tremendous amount of pressure on developers.
This is where Iter8 comes in; it helps developers progressively roll out new versions of their app, gated by a combination of performance, functionality and even custom business metrics. If a new version fails to meet all the criteria, it is automatically rolled back without users ever having to see it.
Siamak Sadeghianfar
Siamak is a technical product manager at Red Hat focused on CI/CD technologies and developer tools on Kubernetes and OpenShift.
The term “progressive delivery“ is used to describe more advanced app deployment patterns — canary, blue/green, dark launch, A/B — that are designed to achieve goals such as minimizing downtime, reducing risks, and/or maximizing certain business metrics. Iter8 supports these advanced deployment patterns and can run on both vanilla Kubernetes and its enterprise version, OpenShift.
In this article, we will describe how Iter8 can be integrated into an existing DevOps pipeline running on OpenShift. If you already have an app deployed and managed by a DevOps pipeline, enabling Iter8 takes only a few minutes, and disabling it is also easy.
To cater to developers who are new to GitOps and/or OpenShift, in the first part of this article, we will walk through a scenario to set up a demo app that runs on OpenShift. We will also adhere to the GitOps practice, where manifests are maintained in a repo and changes are synced to the cluster continuously. Once this demo app is fully set up, the second part of the article describes how to integrate Iter8 into the pipeline we just deployed to enable progressive delivery. If you are already familiar with Openshift/DevOps, you can skip straight to the second part.
Part 1: GitOps on OpenShift
Set Up an OpenShift Cluster
John Duimovich
John is an experienced software engineer at Red Hat.
If you don’t already have an OpenShift cluster, the easiest way to kick the tires is by running a cluster locally on your laptop via CodeReady Container. If you’re familiar with Minikube used for provisioning a local Kubernetes cluster, this is similar: an all-in-one single-node OpenShift cluster running in a VM.
To install and run CodeReady Container, follow the instructions here. After the cluster is up and running, you should be able to login to the cluster as kubeadmin, e.g.:
oc login –u kubeadmin –p your_password https://api.crc.testing:6443 |
Note that there should already be clear instructions on how to obtain the kubeadmin password on the command line, but, alternatively, you can also obtain the password with:
crc console —credentials –o json | jq .clusterConfig.adminCredentials.password |
Fork Iter8 Repo (To Install the Demo App)
Go to github.com/iter8-tools/iter8 and fork the repo, then set the following env var:
export YOUR_ORG=[your github org or username] |
Then run the following commands to update a few references so they point to your own fork.
git clone github.com/$YOUR_ORG/iter8 cd iter8 && export ITER8=`pwd` find samples/openshift/gitops –name “*” –type f | xargs sed –i ” “s/MY_ORG/$YOUR_ORG/” git commit –a –m “update references” git push origin head |
Install ArgoCD / OpenShift-GitOps
We use ArgoCD for GitOps so that manifest changes in a Github repo can be immediately reflected in a running cluster. To install it, follow the instructions here. It should be as simple as copying and pasting the following commands:
oc create namespace argocd —dry–run –o yaml | oc apply –f – oc apply –n argocd –f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml |
As an alternative, you can install OpenShift GitOps, which installs ArgoCD under the cover, directly from the admin console. This makes installing ArgoCD even easier, and you can follow the instructions here.
Deploy the Demo App
We use a bookstore app to demonstrate how its components can be progressively rolled out in a safe manner. It can be started with the following commands:
oc apply –f $ITER8/samples/openshift/gitops/argocd–app.yaml |
ArgoCD should detect this action shortly after and deploy the app to our cluster. Afterward, you can open another terminal to start the port forwarding:
oc port–forward svc/productpage –n default 9080:9080 |
Now, you can open a web browser and try out the app at http://localhost:9080/productpage?u=normal. You should see something similar to:
At this time, we have a working app that adheres to the GitOps practice. Updates to the app are done via changing the app manifests in the repo, then they will be synced to the cluster by ArgoCD.
Part 2: Enabling Iter8 for Progressive Delivery
Create a Github Token for Iter8
If you’d like Iter8 to automatically promote new versions of your app when they pass certain success criteria, you’d need to provide it with a Github token for creating pull requests (PRs). The token can be generated by going to github.com > Settings > Developer settings > Personal access token > Generate new token. This token can be added to the cluster by:
oc create secret generic github–token —from–literal=token=[YOUR_TOKEN] oc apply –f https://raw.githubusercontent.com/iter8-tools/iter8/master/samples/tasks/rbac/read-secrets.yaml |
Install Iter8
Now let’s install Iter8. You will need to install Kustomize by following the instructions here. Run the following commands to install Iter8:
export TAG=master kustomize build “https://github.com/iter8-tools/iter8/install/core/?ref=${TAG}” | oc apply –f – oc wait crd –l creator=iter8 —for condition=established —timeout=120s kustomize build “https://github.com/iter8-tools/iter8/install/builtin-metrics/?ref=${TAG}” | oc apply –f – oc wait —for=condition=Ready pods —all –n iter8–system |
Upgrade the Demo App
Everything is now in place for us to upgrade the demo app and see how Iter8 can help developers test a new version before promoting it to production. To make it easier to follow along, we created a Github Action. You can go to github.com/YOUR_ORG/iter8/actions, and click on “Simulate CI pipeline on OpenShift” and then “Run workflow.”
Under the cover, this will create an Iter8 Experiment custom resource and new demo app Deployment. If you run oc get experiments
and oc get deployments
, you will see these resources getting deployed by ArgoCD in the cluster. As Iter8 by default will use a synthetic workload to exercise new versions, it will take a bit of additional time for it to collect enough data to make a decision about whether the new version is good, and you can run the following command to monitor Iter8 experiment’s progress:
oc get experiments.iter8.tools —watch |
Promote the New Version
Once the experiment is declared successful, you can go to github.com/YOUR_ORG/iter8/pulls, and there should be a new PR created automatically by Iter8 to promote the new version, i.e.:
Click on “Merge pull request” and wait a bit for ArgoCD to pick up this change, and now you can use a web browser to access the app again. This time, you should see something similar to:
The subtle change in the new version is that the words “William Shakespeare’s” are highlighted in a different color than our initial version.
Part 3: What’s Next
If you would like to know more about how Iter8 can help you manage your application updates, you can access the most up-to-date version of Iter8 and its documentation at https://iter8.tools. Code and other resources are available at https://github.com/iter8-tools. We can always be reached on Slack and also have a bi-weekly community meeting. See this link for more information. Feel free to join us and ask questions!
Featured image via Pixabay.
Source: InApps.net
List of Keywords users find our article on Google:
openshift |
openshift security |
openshift documentation |
openshift getting started |
istio github |
openshift app |
openshift application |
openshift vm |
openshift service |
what is openshift |
progressive delivery |
openshift version |
open shift |
openshift deployment |
argocd openshift |
amazon openshift |
progressive delivery software |
managed openshift |
openshift com |
progressive delivery kubernetes |
openshift components |
openshift online |
alternative to openshift |
openshift consulting |
red hat openshift |
set of progressive rolls with covers firm |
set of progressive rolls without covers firm |
red hat codeready |
progressive recruitment |
openshift console |
red hat openshift cluster manager |
openshift monitoring |
red hat openshift installation |
openshift reviews |
codeready |
github metrics |
openshift dedicated |
ibm openshift |
app yaml |
github repo metrics |
openshift managed service |
openshift free alternative |
openshift development company |
openshift enterprise |
argo workflow |
openshift is free |
openshift on aws |
tpm wikipedia |
saas application development orange county |
openshift istio |
open shift istio |
github jq |
saas app development orange county |
redhat openshift icon |
redhat openshift cluster manager |
githubusercontent icons |
openshift dedicated pricing |
openshift errors |
openshift cluster |
ibm github |
openshift developer |
progressive customer service representative |
progressive travel recruitment |
openshift review |
openshift ibm |
openshift learn |
openshi |
openshift free trial |
openshift community edition |
install openshift |
learn openshift |
openshift 3 |
openshift free version |
openshift image stream |
progressive customer service jobs |
saas developer orange county |
deploy openshift |
openshift technology |
argo workflow ui |
progressive labs |
openshift and aws |
openshift origin |
ibm watson api |
progressive sight |
iter8 |
minikube github |
argo wikipedia |
github ibm watson |
argo workflow github |
red hat openshift errors |
bi nguyen wikipedia |
openshift github |
argoproj |
progressiverecruitment |
jq github |
openshift jobs |
progressive recruitment erfahrungen |
red hat openshift metrics |
githubusercontent.com |
istio openshift |
argocd github |
ibm watson email templates |
great expectations github |
aws cloudformation ref |
raw github user content icons |
github cluster |
open shift console |
openshift status |
argo json |
openshift design |
install red hat openshift |
openshift red hat documentation |
openshift vulnerabilities |
create openshift cluster |
red hat openshift cluster |
gitops openshift |
openshift gitops |
red hat update command |
redhat openshift cluster |
argocd logo |
openshift node |
openshift wiki |
progressive recruitment jobs |
try openshift |
developer openshift |
github great expectations |
monitoring for openshift |
openshidt |
openshift add node |
openshift cluster manager |
openshift icon |
how to openshift |
progressive delivery platform |
components of openshift |
open shift cluster |
openshift application deployment |
openshift application monitoring |
openshift versions |
github yaml |
openshift core |
openshift performance |
openshift similar products |
openshift cluster installation |
openshift container platform installation |
how to install openshift |
open shoft |
openshift api |
openshift ci |
openshift workloads |
how to start openshift |
openshift apps |
openshift create cluster |
redhat openshift installation |
how to use openshift |
node red whatsapp bot |
opemshift |
openshift database |
openshiift |
opne shift |
red hat codeready containers |
what is cluster in openshift |
fb tpm |
how to setup openshift |
openshift cluster admin |
productivity tools orange county |
what is openshift pod |
openshift apply |
openshift installation step by step |
openshift installera |
openshift what is |
openshiuft |
istio versions |
open shift とは |
opensift |
aws openshift pricing |
oepnshift |
learning openshift |
openshif |
openshift secrets |
openshuft |
what is the use of openshift |
oc create service |
oc template |
red hat openshift alternatives |
setup openshift cluster |
argo cd alternatives |
getting started openshift |
github ibm |
openshift yaml template |
tpm recruitment |
deploy openshift on aws |
openshift as a service |
openshift image streams |
yaml github |
ci cd openshift |
getting started with openshift |
manage openshift |
openshift laptop |
red hat openshift 3 |
set of covers for progressive rolls |
github actions argocd |
amazon default delivery instructions |
ibm cloud openshift |
ibm watson consultant |
openshift cost |
openshift help |
red hat advanced cluster security |
service openshift |
ibm watson demo |
openshift applications |
openshift management |
openshift uses |
openshift free |
openshift platform |
what is openshift used for |
argocd |
devops with openshift |
ibm openshift container platform |
open shift enterprise |
openshift to kubernetes migration |
argo cd aws |
github tag |
progressive part time jobs |
why use openshift |
cloudformation ref |
openshift for developers |
openshift kubernetes version |
progressive industries |
argocd getting started |
integrate argo cd |
what is an open shift |
yaml wiki |
redhat openshift |
is openshift free to use |
openshift online free |
websphere commerce build and deployment tool |
argocd add account |
github token |
kubernetes namespaces provisioning |
openshift container |
Let’s create the next big thing together!
Coming together is a beginning. Keeping together is progress. Working together is success.