Gocd – Kubernetes/Nomad Continuous Deployment

Preview:

Citation preview

GOCD – Kubernetes/Nomad ContinuousDeployment

Leandro Totino Pereira – System Engineer

Agenda

• What is GoCD?

• Benefits

• Concepts

• Nomad Architecture

• Kubernetes Architecture

• Step by Step

• Promoting applications across Environments

• Questions?

What´s Gocd

GoCD is an open source tool which is used in software development to achieve continuous delivery (CD) of software.

It supports automating the entire build-test-release process from code check-in to deployment. It helps to keep producing valuable software in short cycles and ensure that the software can be reliably released at any time.

Gocd - Benefits

• Pipeline Based

• Agent based

• Parallel and Sequential execution

• End-to-end workflow

• GoCD's agent grid provides parallel and cross-platform execution

• Numerous plug-ins

• Simple Exceptions and Error Handling

• Flexible to setup any deploy

• Excellent API Reference

Gocd Concepts I

• Environments

• Pipelines

• Stages

• Job

• Tasks

• Agents

Gocd Concepts II

Gocd Concepts III

Gocd Concepts IV

Gocd Concepts V

Gocd Concepts VI

Tasks conditions

Timeout and scheduling job

Stage Settings

Nomad Architecture

Kubernetes architecture

Step by step

• 1 - Start a gocd pipeline (manually or automatically) based a git tagor branch, kubernetes namespace or nomad job

• 2 - Gocd agent is going to git clone

• 3 - Gocd Agent is going to build through build process you set up

• 4 – Docker build in your git dockerfile

• 5 – Docker push to registry servers

• 6 – Run Docker images (kubectl rollout/API)

• 7 - Applications auto-registration etcd/consul

• 8 – Consul/etc-templates update load balancer config file

Trigger pipeline Dev EnvironmentDeploying new version an analyst just need to inform a git tag version and a

kube namespace/nomad job name on dev environment.

Full process through pipeline/stages

Promoting applications across Environments

Git BuildDocker images

Upload to

registerRollout Testing

Rollout Testing

Rollout Testing

Dev Environment

Hmg Environment

Prod Environment

HMG/PROD DeploymentDeploying appplication o dev enviromment we just setup another environment justinforming docker image name, its tag and kube namespace/nomad job name.

Thank you!

Questions?

More information:

Linkedin

https://www.linkedin.com/in/leandro-totino-pereira-06726227

Facebook:

https://www.facebook.com/leandro.totinopereira

Recommended