検索
特集/連載

Netflixに学ぶ「NoOps」が目指すべき姿とは?IT運用チームと「NoOps」【前編】

「NoOps」の目標は運用をなくすことではなく、運用のプロセスを改善することにある。NoOpsとは具体的に何を意味するのか、具体例を交えて紹介する。

Share
Tweet
LINE
Hatena

 開発と運用が一体になる「DevOps」や、さらにそこにセキュリティも加える「DevSecOps」などの用語に加えて、「NoOps」という用語も登場した。これらは全て、ITチームの活動の効率性を改善するという共通の目標を持つ手法を指す。

 ある分野における業務プロセスを最適化するための試みには価値がある。だが、その全ての取り組みが、全てのITチームで同様に機能するわけではない。NoOpsはどのようなITチームにとって意味のある手法なのだろうか。

 DevOpsという用語にもOps(運用)が入っている通り、ビジネスを発展させるために運用は重要であり、運用スタッフなしで企業がビジネスを継続できるとは到底考えられない。NoOpsは「No Operations」を略した用語であり、文字通りの意味は「運用なし」ということになる。ただしこれはあくまでも努力目標であり、自動化を通じて運用の負担を減らすことが、実際にNoOpsが目指すところだ。

Netflixを例に考える「NoOps」の姿

 NoOpsという言葉のニュアンスは、「サーバレス」が意味することに似ている。サーバレスの文字通りの意味は「サーバなし」となる。だが実際にはサーバは関与しており、サーバがどこか別の場所にある。これを参考にすると、NoOpsとはある意味、運用の仕事を他人の問題に替えることだと言える。

 先進的な運用チームは、インフラのクラウド化と自動化に着目しているはずだ。これらはNoOpsの重要な要素になる。とはいえ全ての運用を自動化することは難しく、全てを自動化する必要もない。クラウド化も同じだ。ITシステムの全体をクラウドインフラに移行する必要はない。一方では、反復するタスクに人員のリソースやコストを当てることは得策ではない。

 Netflixが開発したテストツール「Chaos Monkey」を考えてみよう。故意にシステム障害を引き起こすこのツールを使って、エンジニアはシステム障害からの回復力(レジリエンス)を高める仕組みを検討できる。この手法は運用チームの負荷軽減に直結する。ITチームがNoOpsによって実現を目指すのは、この種の回復力と効率性だ。より具体的に言えば、想定通りに稼働しているかどうかを誰かが手作業でチェックする必要のないシステムを選択し、自動化を実装する。

自動化

 開発者やエンジニアが目指すべきところは、「自己修復システム」の設計だ。自己修復に失敗したときに明確なアラートを発するシステムの設計も必要になるだろう。自己修復でまず実現しなければならないのは、問題を引き起こす根本原因を自動的に解決することだ。運用への影響は全くなくすことが理想だが、最小限に抑える程度でもいい。

 自己修復の実装方法として、次のような手法がある。本番運用に移行したソフトウェアで何らかの障害が発生した場合、エンジニアはその障害を監視するための実行ファイルを、コマンドラインツール「PowerShell」や「Bash」のスクリプトで作成できる。このスクリプトは、特定の問題が再発した際にエンジニアにアラートを発し、同時にシステムを再起動させるための各種のコマンドを実行する。

TechTarget発 先取りITトレンド

米国TechTargetの豊富な記事の中から、最新技術解説や注目分野の製品比較、海外企業のIT製品導入事例などを厳選してお届けします。

Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る