DevOps Tools Volt In!

DevOps Tools Volt In!

The world of DevOps is a mass of tools and pipes that connect together in many intricate ways to form the optimal developer workflow. So much so that it has turned into a full-time role. Everyone company's workflow is unique and having a single way across an organization to develop, deploy and monitor your applications can be incredibly powerful. Go is the perfect tool for creating developer tools!

Fd41594dae139b2eedc855143e9714ef?s=128

Andre Marcelo-Tanner

September 23, 2019
Tweet

Transcript

  1. 01 02 03 04 05 06 1 Intro Memes Problem

    More Memes Solution Gophers Contents AGENDA Agenda
  2. 2

  3. 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
  4. How about: DevOps… increases an organization’s ability to deliver... 4

  5. 5

  6. 6

  7. DevOps Tools Volt In! 23 September, 2019

  8. 8

  9. 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
  10. None
  11. 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
  12. Introducing Shippy

  13. 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
  14. 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
  15. 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
  16. 16 16 Go Modules • Cobra - commands • Viper

    - configuration • AWS SDK • Docker • Kubernetes https://github.com/ashleymcnamara/gophers
  17. 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
  18. Thank you 18 https://github.com/ashleymcnamara/gophers Slides: speakerdeck.com/kzap