Using Argo for microservices deployment

2/17/2020

I would like to deploy my microservices into the kubernetes cluster with CI/CD tool. I just get started to learn the concept of CI/CD and would like to create an environment to see how does it work in pratice.

According to my understanding, the deployment should look as follows:

flow chart: IDE push to git, hook to CI/CD, deploy to Kubernetes

As I've described above, I would like to deploy microservices into the K8S cluster and I've found https://argoproj.github.io. I think, this is what I am looking for.

Argo provides different tools, for example the Workflow, but for what is the Workflow good for? When I would use Workflow, then ArgoCD is unnecessary? Or use Workflow inside ArgoCD?

How to trigger a workflow automatically, when some changes happen on the Git repository? flow chart: IDE push to git, start Argo workflow

-- zero_coding
argo-workflows
continuous-delivery
continuous-integration
kubernetes

1 Answer

2/17/2020

Why Argo Workflows?

In a typical CD setup you would need to execute multiple steps and tie them together and create a pipeline. Argo workflow provides that functionality. The value proposition of argo is that each step in the workflow is a container and argo itself runs natively on kubernetes.

When I would use Workflow, then ArgoCD is unnecessary? Or use Workflow inside ArgoCD?

ArgoCD is only necessary to deploy/sync changes in the application artifacts to the kubernetes cluster. Typically you would need to deploy changes at the end of the workflow but this can be different based on your use case.

How to trigger a workflow automatically, when some changes happen on the Git repository?

You can use argoEvents to trigger argo workflow. Check the doc on git based trigger.

-- Arghya Sadhu
Source: StackOverflow