COLUMN
2021年11月09日
#DevOps – 知ったかテックワード!君もIT博士
カテゴリー:知ったかテックワード
タグ:アジャイル開発, システム運用, システム開発, プロジェクト管理
DevOps(デブオプス)は、システム開発(Development)とシステム運用(Operations)を密接に連携させる体制および開発手法のこと。デベロプメントとオペレーションを連携させるので、デブオプスという。
従来の開発プロセスでは、システム開発とシステム運用のチームが完全に分離していた。まずシステム開発をおこない、正式にリリースしてある程度安定してシステムが動作するようになったら、システム運用チームに引き継ぐ。システム開発チームはシステムをリリースすることに注力する。そしてシステム運用チームは動いているシステムをできるだけ変更せず運用・保守をおこなう。
これはシステムの目的や用途・機能が最初から決まっている、途中で変化しない場合には有効だった。しかし、市場環境の変化やユーザーの要望に積極的に対応していく場合には、硬直化したシステムが足かせになってしまうんだ。
そこで、アジャイル開発という考え方が注目されるようになった。
アジャイルでは、小さな機能ができあがったらすぐにリリースをおこない、ユーザーに使ってもらう。そして、そのフィードバックを元に機能改善や機能追加・チューニングをおこなう。これを頻繁に繰り返していく。このような開発を行うには、システム開発チームとシステム運用チームが分離していると実現が難しくなる。だから、システム開発チームとシステム運用チームを一体にしてしまうのが「DevOps」なんだ。
DevOpsを実現するには、ソースコード管理やテスト・リリースの自動化が重要になる。頻繁にリリースしていると、思わぬバグを組み込んで品質が低下してしまうデグレードすることがあるからだ。手動でテストしたりリリース作業をしていると時間が取られてしまい非常に効率が悪い。だから、ソースコード管理やテスト・リリース作業を自動化することで、デグレードを素早く検知し、リリースにも手間をかけないで済む。
こうした体制を組んでおくと、頻繁な機能アップデートが可能になる。従来であれば、数か月に1度のリリースだったのが、1日に何度もリリースできるようになるんだ。問題が見つかれば、すぐにロールバックすればいいんだ。
関連ページ
おまけのコント
ウサギ:大変だ!洞窟にオプスが大量発生したって!
カエル:オプスって何?
ウサギ:2足歩行のモンスターだよ。
カエル:ほう。
ウサギ:イノシシとモグラを混ぜたみたいな顔で、得意技は体当たり。
カエル:それが洞窟に大量発生したと。
ウサギ:薄暗い洞窟の奥で、獲物が来るのをずっと待ってる。
カエル:なんか地味な性格だな。
ウサギ:成長するとデブ・オプスという最終形態に進化する。
カエル:そうすると、どうなるの?
ウサギ:待ち伏せと、トンネル拡張を連携して行うようになって、猛烈な勢いで継続的イテレーションを繰り返すヨ。ものすごいベロシティなんだ!
カエル:ちょっと、なに言ってるか分からない。