DevOps; Apart from being a buzzword, what really is it?. DevOps isn’t a real product. It doesn’t come in a shiny box and you certainly can’t buy it.

DevOps is a combination of;

  • Culture
  • Automation
  • Monitoring
  • Sharing

Widely mistaken is the notion that DevOps is a way of solving technical problems, when in fact it’s trying to solve a business problem and bringing better value to the end user at a more sustainable pace.

Although DevOps isn’t solely about tooling, there’re a number of closed and open source tools that help an organisation achieve their goals. From monitoring tools to sharing and communication tools that enable better communication between teams and help break silos.

To be successful at DevOps, most organisations use a one or more tools in each of the core categories.

Configuration Management

Phrases like automated infrastructure, infrastructure as code, programmable infrastructure all fall under configuration management. It’s simply the establishing and maintaining consistency of a hardware or software’s performance, functional and physical attributes with it’s requirements, design and operational information throughout it’s existence.

Mainstream CMTs include

  • Chef
  • Puppet
  • Ansible
  • SaltStack

Application Deployment

These tools enable the automation of code releases, and are at the heart of one of the tenets of DevOps; Continuous Delivery.

Continuous Delivery is a combination of Continuous Integration and Continuous Deployment. We need to be able to build reproducible artefacts which we can test and a reproducible infrastructure which we can manage in a fast and automated way.

These tools automate common developer tasks including compiling source code into binary code, creating executables, running tests, and creating documentation.

  • Capistrano
  • Jenkins
  • Travis CI
  • Circle CI
  • Ansible
  • Fabric

Monitoring

In the world of DevOps, there’re two distinct types of monitoring. Application performance monitoring such as New Relic, and infrastructure monitoring with tools like AWS CloudWatch, Nagios which provide visibility into capacity, memory, and CPU consumption so reliability engineers can fix issues as soon as they appear

The key is to make that data available to the relevant stakeholders so they can act and make decisions based on it.

Version Control

To achieve the benefits of DevOps, it’s essential to version not just our application code but our infrastructure, configurations, and databases. The payoff should be a single source of truth for both our application code and our IT systems and databases, allowing us to quickly identify where things went wrong, and recreate known states with the push of a button.

Commonly used version control tools include;

  • Git
  • Perforce
  • Subversion

How much of all this functionality you need should be defined in the scope of your project.

Also note I’ve over-simplified mostly all technical explanations.

If you need help adopting DevOps as a whole or implementing any of the core categories or tools, get in touch to see how we can help your business.

At AltoStack, our experts can maintain your DevOps platform and be responsible for day-to-day operational issues, allowing you to develop and ship your product without the need for internal DevOps hires.