$30 off During Our Annual Pro Sale. View Details »

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!

Andre Marcelo-Tanner

September 23, 2019
Tweet

More Decks by Andre Marcelo-Tanner

Other Decks in Programming

Transcript

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

    View Slide

  2. 2

    View Slide

  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

    View Slide

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

    View Slide

  5. 5

    View Slide

  6. 6

    View Slide

  7. DevOps Tools Volt In!
    23 September, 2019

    View Slide

  8. 8

    View Slide

  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

    View Slide

  10. View Slide

  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

    View Slide

  12. Introducing Shippy

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

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

    View Slide

  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

    View Slide

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

    View Slide