Open2
DevOpsとは何なのか?
DevOpsという概念に定義はないが、以下のスライドは、DevOpsの考え方を網羅的に説明する良い資料だと言える。
2009年の資料なので内容は古いが、DevOpsは主にツール(・自動化)的な側面と文化的な側面の2つがあることと、その2つの大まかな説明としては十分だと思っている。
ツール面における、当時から現在(2023年)までの差分と思われるものを挙げてみると、以下のようになる。
- Dockerおよびコンテナ技術(WikipediaによるとDockerの初版は2013年)
- 様々なデプロイ手法(blue-green deployment, rolling update, など)
- 2009年当時の正確な状況はわからないが、Martin Fowlerのブログでblue-greenが紹介されていたのは2010年だったので、そのあたりから少しずつ普及していった考え方なのかなと推測
- また、blue-green deploymentやrolling updateはコンテナ技術(とかクラウド技術)と親和性が高いと思うので、Docker以降に本格的に普及したと考えられる
- クラウド
- CI/CDや運用監視系のSaaS
- SRE
- その他ツール(Ansibleとか)
文化面での差分については、大きなものがあるのかどうかはわからない。
(アジャイル開発は考え方として類似点が多そうだが、アジャイルマニフェストは2001年からあったようなので、2009年から大きな差分はない?)
DevOpsの技術的な内容は、ざっくり言うとCI/CDと運用監視の2つに包含されるような気がする。
ただし、CI/CDという概念の中にかなり色々詰め込んだ考えになっているので、より良い分類があると思う。