Path to DevOps #1: The Basics

DevOps Help You Get More Done

In the world of software development, things are constantly changing and evolving. But that doesn’t have to mean that it gets more and more complicated — or more difficult to accomplish.

Actually, DevOps (short for “development operations”) has plenty of ways to help software developers and operation engineers collaborate successfully.

This blog post is the first of a three-part series on the subject of DevOps:

  • Blog #1: What is DevOps
  • Blog #2: The Benefits of DevOps
  • Blog #3: How to Begin Incorporating DevOps Practices

Let's get started!

What is DevOps?

In a nutshell, DevOps brings together two functions — development engineering and operations — to improve teamwork, processes, and output throughout the entire lifecycle of a service, from design and conception to support and maintenance.

It’s actually the product of two industry trends coming together. The first trend is the popularity of Agile and Lean methodologies, which are unique approaches to managing operations work. The second trend is the industry-wide acknowledgement that effective collaboration between development and operations teams — throughout the entire development lifecycle — is an absolute “must.”

A notable element of DevOps is that both developers and operations staff use many of the same techniques and tools to get their work done. These can include things such as using source control, testing, or utilizing the Agile development process.

Who Uses DevOps?

The “Dev” obviously refers to developers, but can really refer to any and all professionals who are involved in developing the product. So anyone on the team who works in Product, Quality Assurance (QA), or other related disciplines can be “Dev” people. The “Ops” is for systems engineers, system administrators, operations people, release engineers, database administrators, network engineers, security staff, and a variety of other professionals.

Using DevOps Tools at Code Authority

We use many tools to facilitate DevOps works at Code Authority. Here are a few of the ones we use frequently:

Git

This widely-used tool is a distributed source code management (SCM) tool that’s popular with remote teams and open source contributors. It enables you to track the progress of your development activities, as well as save different versions of the source code and go back to previous versions if necessary. GitHub and Bitbucket are two online Git repositories/hosting services which give teams a place to save their work.

AzureOps

Microsoft’s collection of services — created to help developers complete software faster and with higher quality — is available in the public cloud. It includes Azure Pipelines, Azure Boards, Azure Artifacts, Azure Repos and Azure Test Plans. Each of these services is open and extensible, regardless of the application’s framework, platform, or cloud.

Docker

Launched in 2013, Docker is the top container platform available. It separates applications into separate containers so they become portable and more secure. Great for cloud computing (and cloud migration), Docker integrates with other DevOps tools, enables distributed development, and automates app deployment.

Kubernetes

Taking the “containerization” mentioned above to a new level (although it works with Docker and similar tools), Kubernetes was created to manage containers at scale and allows you to group your containers into logical units. It allows users to automate both the process of managing hundreds of containers and the distribution and scheduling of containers across your whole cluster. The Code Authority team used both Docker and Kubernetes for our BroadJump client.

Other Popular DevOps Tools

Here are a few other DevOps tools being used throughout the industry:

Gradle

This versatile tool enables you to write your code in C++, Java, Python, and other languages. It was named by Google as the official build tool for Android Studio, allows faster shipping, and features many configuration possibilities.

Jenkins

It’s the top automation tool for many software development teams — an open-source CI/CD server that enables users to automate different stages of the delivery pipeline. It has a huge plugin ecosystem that DevOps professionals love.

Bamboo

Although this CI/CD server solution is similar to Jenkins, Bamboo isn’t open-source — so it costs money. You’re paying for pre-built functionalities that you would have to set up manually in Jenkins. This can save a lot of configuration time, and also comes with a highly intuitive UI that comes with tooltips, auto-completion, and other helpful features.

Puppet Enterprise

A cross-platform configuration management platform, Puppet Enterprise helps you manage your infrastructure as code. Its automated infrastructure management enables you to deliver software faster and more securely. Puppet has more than 5,000 modules and integrates well with other DevOps tools.

Ansible

This configuration management tool is like Puppet but offers greater simplicity and ease of use. It uses the super-simple YAML syntax, as well as agentless architecture with no daemons or agents running in the background. It’s a secure and lightweight solution that also has several modules available.

Nagios

One of the most popular free, open-source monitoring tools, Nagios lets you monitor your infrastructure, so you can find and fix any problems. Plus, you can keep records of events, outages, and failures, as well as follow trends via graphs and reports. It also features a rich plugin ecosystem and has a large community since it’s been around for nearly 20 years.

Raygun

This tool is a top monitoring and crash reporting platform, helping users diagnose performance issues and tracking them to the exact line of code, function, or API call. It works well with other tools and augments them, always notifying you of any problems.

So — Which DevOps Tools Are Right For Your Team?

There are plenty of great tools to choose from and finding the right ones for your team can be a trial-and-error process. If your time and money are limited, the open-source tools may meet your needs.

Automation is a key issue as well — if not properly applied and monitored, automation can cause problems.

Just like with real tools, you need to know how to use them properly or things can go wrong.

All in all, DevOps tools are designed to do one thing above all — helping you to get more done, faster and more efficiently than ever, whether you’re in “Dev” or “Ops.”