Slide 1

Slide 1 text

01 02 03 04 05 06 1 Intro Memes Problem More Memes Solution Gophers Contents AGENDA Agenda

Slide 2

Slide 2 text

2

Slide 3

Slide 3 text

A Long Definition from Amazon.com: DevOps is the combination of cultural philosophies, practices, and tools that increases an organization’s ability to deliver applications and services at high velocity... 3

Slide 4

Slide 4 text

How about: DevOps… increases an organization’s ability to deliver... 4

Slide 5

Slide 5 text

5

Slide 6

Slide 6 text

6

Slide 7

Slide 7 text

DevOps Tools Volt In! 23 September, 2019

Slide 8

Slide 8 text

8

Slide 9

Slide 9 text

9 Different Workflows & Tools 10 Developers ● Git ● Vagrant ● Jenkins ● Linode ● MySQL ● Google Cloud ● Shell Script 50 Developers ● GitHub ● CircleCI ● GitLab ● Terraform ● AWS ● Kubernetes ● Prometheus ● LogDNA ● ThreatStack ● MongoDB Atlas ● AMQP Cloud ● Pusher < 5 Developers ● GitHub ● Vagrant ● Ansible ● MySQL ● Dedicated Servers ● Pingdom 25 Developers ● GitHub ● Ansible ● Docker ● CircleCI ● TravisCI ● MongoDB ● AWS ● Kubernetes ● DataDog

Slide 10

Slide 10 text

No content

Slide 11

Slide 11 text

The Usual Problems ● Tools are hard to learn. ● Improve workflows ● Standardization ● On-boarding New Projects ● On-boarding New Engineers ● Infrastructure lives with the Application Code ● Secret Management ● Permissions, Controls, Processes ● Observability ● Infrastructure Management https://github.com/ashleymcnamara/gophers

Slide 12

Slide 12 text

Introducing Shippy

Slide 13

Slide 13 text

13 Docker ● Build and Push image to AWS ECR ● Login to AWS ECR Kubernetes ● Process YAML templates using Kontemplate. ● Deploy the correct manifests to the correct cluster. Secret Management ● Use AWS Key Management Service ● Stored using EJSON-KMS Processes ● Make sure wrong branch can’t get deployed. ● Show developer deployment status. 13 What just happened? https://github.com/ashleymcnamara/gophers

Slide 14

Slide 14 text

14 14 Command Line Tools in Go ● Compiles to Linux, Mac, Windows easily. ● Relatively small size, runs quickly. ● Many easy to use libraries. ● Most tools nowadays are built in Go ○ Docker ○ Kubernetes ○ Terraform https://github.com/ashleymcnamara/gophers

Slide 15

Slide 15 text

The DevOps Method ● Do it once ● Do it twice ● Document ● Script it ● How many people need it? ● Get Feedback ● Iterate ● Script some more ● Then code it https://github.com/ashleymcnamara/gophers

Slide 16

Slide 16 text

16 16 Go Modules ● Cobra - commands ● Viper - configuration ● AWS SDK ● Docker ● Kubernetes https://github.com/ashleymcnamara/gophers

Slide 17

Slide 17 text

Learnings ● Keep it modular. Separate commands from implementation. ● Read the code of tools. ● Expect to swap out tools ● Make it easy to upgrade. https://github.com/ashleymcnamara/gophers

Slide 18

Slide 18 text

Thank you 18 https://github.com/ashleymcnamara/gophers Slides: speakerdeck.com/kzap