DX Column

2021年11月9日

#DevOps – 知ったかテックワード!君もIT博士

カテゴリー:

タグ:, , ,

DevOps(デブオプス)は、システム開発(Development)とシステム運用(Operations)を密接に連携させる体制および開発手法のこと。デベロプメントとオペレーションを連携させるので、デブオプスという。

従来の開発プロセスでは、システム開発とシステム運用のチームが完全に分離していた。まずシステム開発をおこない、正式にリリースしてある程度安定してシステムが動作するようになったら、システム運用チームに引き継ぐ。システム開発チームはシステムをリリースすることに注力する。そしてシステム運用チームは動いているシステムをできるだけ変更せず運用・保守をおこなう。

これはシステムの目的や用途・機能が最初から決まっている、途中で変化しない場合には有効だった。しかし、市場環境の変化やユーザーの要望に積極的に対応していく場合には、硬直化したシステムが足かせになってしまうんだ。

そこで、アジャイル開発という考え方が注目されるようになった。

アジャイルでは、小さな機能ができあがったらすぐにリリースをおこない、ユーザーに使ってもらう。そして、そのフィードバックを元に機能改善や機能追加・チューニングをおこなう。これを頻繁に繰り返していく。このような開発を行うには、システム開発チームとシステム運用チームが分離していると実現が難しくなる。だから、システム開発チームとシステム運用チームを一体にしてしまうのが「DevOps」なんだ。

DevOpsを実現するには、ソースコード管理やテスト・リリースの自動化が重要になる。頻繁にリリースしていると、思わぬバグを組み込んで品質が低下してしまうデグレードすることがあるからだ。手動でテストしたりリリース作業をしていると時間が取られてしまい非常に効率が悪い。だから、ソースコード管理やテスト・リリース作業を自動化することで、デグレードを素早く検知し、リリースにも手間をかけないで済む。

こうした体制を組んでおくと、頻繁な機能アップデートが可能になる。従来であれば、数か月に1度のリリースだったのが、1日に何度もリリースできるようになるんだ。問題が見つかれば、すぐにロールバックすればいいんだ。

関連ページ

おまけのコント

ウサギ:大変だ!洞窟にオプスが大量発生したって!

カエル:オプスって何?

ウサギ:2足歩行のモンスターだよ。

カエル:ほう。

ウサギ:イノシシとモグラを混ぜたみたいな顔で、得意技は体当たり。

カエル:それが洞窟に大量発生したと。

ウサギ:薄暗い洞窟の奥で、獲物が来るのをずっと待ってる。

カエル:なんか地味な性格だな。

ウサギ:成長するとデブ・オプスという最終形態に進化する。

カエル:そうすると、どうなるの?

ウサギ:待ち伏せと、トンネル拡張を連携して行うようになって、猛烈な勢いで継続的イテレーションを繰り返すヨ。ものすごいベロシティなんだ!

カエル:ちょっと、なに言ってるか分からない。