How to Choose the Right DevOps Tools for You and Your Team

Post updated by Matt Makai on March 01, 2017. Originally posted on February 27, 2017.

This blog post contains a loose transcript along with the slides and additional resources from my technical talk that will be given at DC Continuous Delivery within the next couple of months.

Additional resources to learn more about deployments, configuration management and DevOps are listed at the end of the post.


Title slide for technical talk.

Hey folks, my name is Matt Makai. I'm a Developer Evangelist with Twilio and the creator of Full Stack Python.

Python and Swift logos with the heart eyes emoji.

Over the past couple of years I've been coding mostly in Python and Swift. I bring that up because the way we build, deploy and operate applications in either ecosystem is different. It would not make sense to forcefully recommend a single way to work in your own ecosystem if it is different than the ones I work in.

Java programming language logo.

I used to do a ton of Java development. That's how I started my professional career before I moved mostly into Python and Swift.

2004, the dark ages of software development?

Back in my own software development dark ages of 2004, I learned about a concept that got me interested in DevOps before it was called DevOps: source control, also known as version control. We don't talk much about source control being a DevOps tool, but it really is the foundational layer for everything you want to automate with code.

Diff two commits on GitHub.

Nowadays we have amazing open source distributed version control systems and beautiful web application front ends to visualize our code changes over time. Yet there is still a small percentage of developers who don't use source control.

It might seem crazy but I know developers at Fortune 500 companies that still do not use source control! How do you automate building, deploying, testing and operating your application if you don't even have your files versioned?

Give yourself a pat on the back.

Let's start off this discussion of DevOps tools with a pat on your own back if you already use source control. Nice work! We've come a long way as an industry in the last couple of decades when source control was an exotic concept for most developers.

Git logo.

...

Do you know a developer who strongly recommends a tool after 4+ years?

...

What is the difference between a concept and an implementation?

...

Source control (version control) as bottom layer in DevOps.

...

Question 3: On a 0 (lowest) -> 10 scale, how amenable is your organization to improving the technical environment?

...

Question 4: How many people on your team get stoked about making incremental fixes to your technical environment?

...

CI, automated tests and app dependencies as layer 2 in DevOps.

...

Open source and hosted versions of CI, such as Jenkins, GoCD, and StriderCI, along with CircleCI, Travis CI and CodeBuild.

...

Test automation concepts and their implementations in Python ecosystem as examples.

...

$bash.

...

Python Fabric library logo.

...

Ansible logo.

...

Configuration management and automated deployments in layer 3 of DevOps.

...

Configuration management implementations such as Ansible, Chef, Puppet and SaltStack.

...

Example for Ansible YAML command to install packages through apt.

...

How many times per day does your team deploy to test? How about production?

...

How many times per day do you want to deploy to test? To production?

...

What are the top 5 specific impediments to completing automating your deployments?

...

Who on your team gets excited about continuous delivery?

...

Who on your team is responsible for improving automated deployments and continuous delivery?

...

Django logo.

...

Monitoring, logging and measuring in layer 4 of DevOps.

...

What metrics do you collect that feed into every sprint?

...

How many days would it take to put a new code library into production?

...

6,643 deploys per year for Twilio in 2015.

...

How much money, if any, can you spend to jump start monitoring your environment?

...

Repeat monitoring, loggin and measuring in 4 layer DevOps slide.

...

Contact info end slide.

My name is Matt Makai and I'm a Developer Evangelist with Twilio, a Python and Swift developer, as well as the author of Full Stack Python. You can get in touch with me via these channels. Thank you!


Matt Makai 2012-2022