自動化とは、ある作業において人間の手作業を排し、機械によって自動的に行うことを可能にすることの総称です。DevOpsの文脈においては、テスト(CI)、デプロイ(CD)、インフラ構築(IaC)などが自動化の対象として挙げられます。
手作業を自動化することには、以下のようなメリットがあります。
- 人間の手が介在しないため、人的なミスをなくすことができる
- 属人性を排することができるため、誰が何度実行しても同じ結果を再現できる
- 人間が手を動かすよりも効率がよい
ソフトウェア開発において、スピードとクオリティはトレードオフの関係ではありません。自動化を行うことで、開発効率を上げつつ、ミスを防ぎ、品質を担保することが可能になるのです。
ソフトウェアの開発サイクルの高速化を目指すDevOpsにおいて、自動化は欠かすことのできない、その根幹を支える考え方と言えるでしょう。