gocd – kubernetes/nomad continuous deployment

21
GOCD Kubernetes/Nomad Continuous Deployment Leandro Totino Pereira System Engineer

Upload: leandro-totino-pereira

Post on 23-Jan-2018

311 views

Category:

Technology


3 download

TRANSCRIPT

Page 1: Gocd – Kubernetes/Nomad Continuous Deployment

GOCD – Kubernetes/Nomad ContinuousDeployment

Leandro Totino Pereira – System Engineer

Page 2: Gocd – Kubernetes/Nomad Continuous Deployment

Agenda

• What is GoCD?

• Benefits

• Concepts

• Nomad Architecture

• Kubernetes Architecture

• Step by Step

• Promoting applications across Environments

• Questions?

Page 3: Gocd – Kubernetes/Nomad Continuous Deployment

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.

Page 4: Gocd – Kubernetes/Nomad Continuous Deployment

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

Page 5: Gocd – Kubernetes/Nomad Continuous Deployment

Gocd Concepts I

• Environments

• Pipelines

• Stages

• Job

• Tasks

• Agents

Page 6: Gocd – Kubernetes/Nomad Continuous Deployment

Gocd Concepts II

Page 7: Gocd – Kubernetes/Nomad Continuous Deployment

Gocd Concepts III

Page 8: Gocd – Kubernetes/Nomad Continuous Deployment

Gocd Concepts IV

Page 9: Gocd – Kubernetes/Nomad Continuous Deployment

Gocd Concepts V

Page 10: Gocd – Kubernetes/Nomad Continuous Deployment

Gocd Concepts VI

Page 11: Gocd – Kubernetes/Nomad Continuous Deployment

Tasks conditions

Page 12: Gocd – Kubernetes/Nomad Continuous Deployment

Timeout and scheduling job

Page 13: Gocd – Kubernetes/Nomad Continuous Deployment

Stage Settings

Page 14: Gocd – Kubernetes/Nomad Continuous Deployment

Nomad Architecture

Page 15: Gocd – Kubernetes/Nomad Continuous Deployment

Kubernetes architecture

Page 16: Gocd – Kubernetes/Nomad Continuous Deployment

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

Page 17: Gocd – Kubernetes/Nomad Continuous Deployment

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.

Page 18: Gocd – Kubernetes/Nomad Continuous Deployment

Full process through pipeline/stages

Page 19: Gocd – Kubernetes/Nomad Continuous Deployment

Promoting applications across Environments

Git BuildDocker images

Upload to

registerRollout Testing

Rollout Testing

Rollout Testing

Dev Environment

Hmg Environment

Prod Environment

Page 20: Gocd – Kubernetes/Nomad Continuous Deployment

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

Page 21: Gocd – Kubernetes/Nomad Continuous Deployment

Thank you!

Questions?

More information:

Linkedin

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

Facebook:

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