OSSの構成管理ツール「Chef」をどう使うか
Facebookのカリスマエンジニアに聞くDevOps事例
米FacebookはDevOpsをどのように捉え、実践しているのか? その事例を同社のカリスマエンジニア、フィル・ディボウィッツ氏に聞いた。
クラウドとDevOpsのムーブメントを引っ張るカリスマエンジニアの1人が、米Opscodeの構成管理ツール「Chef」を使って得た教訓を披露した。カリスマとは米Facebookのシステムエンジニア、フィル・ディボウィッツ氏だ。同氏は2013年4月下旬に米国サンフランシスコで開催されたイベント「ChefConf 2013」において、FacebookがChefなどのオープンソースユーティリティを使って、それぞれ1万台以上のサーバを含む多数のクラスタからなる環境を管理していることを紹介した。
本稿ではディボウィッツ氏と、Facebookのプロダクションエンジニアリングディレクターを務めるペドロ・カナウアティ氏に、DevOpsに関する見解や、DevOps初心者へのアドバイス、FacebookがChefを選んだいきさつなどを聞いた。
DevOpsとは何か
――DevOpsという言葉についてどう思いますか? DevOpsは実体のある概念でしょうか? それとも中身のないバズワードでしょうか?
ディボウィッツ氏 人々は言葉を造りたがるのだと思います。物事にレッテルを貼りたがるのです。しかし、この言葉の考え方は役に立つと思います。
私が初級管理者だった1990年代末から2000年代初めにかけて、こういわれたことがあります。「上級管理者と初級管理者の違いは、上級管理者はコードを読み書きできることだ」と。確かに管理者がコードを読み書きできれば便利だと合点がいきました。私はコンピュータサイエンスの学位を持っていて、膨大なコードといつも格闘するのは面白くなさそうだと思っていましたが、それが便利なことは分かったのです。こうした当時の考え方が、現在見られる考え方の源流のようなものではないでしょうか。そして人々は今、この考え方やその実践をDevOpsと呼びたがっているわけです。
結局のところ、運用管理の担当者はコードを読み書きできる必要があります。サポートしているアプリケーションを理解できなければならないことが理由の1つです。さらに、システムの規模が拡大すると、コードを書けなければ運用管理を効果的に自動化することができないという理由もあります。
マシンごとに手動でログインするのでは、すぐにうまくいかなくなります。こうしたやり方で対応できるシステム規模はたかが知れています。数万台のマシンを抱えていたら、1台ずつSSH(Secure Shell)でログインしてコマンドを実行していくわけにはいきません。ですが、それを自動化できれば、そうした環境を効率的に運用できます。
DevOpsの定義は人によって少しずつ違うでしょうが、そこが肝心な点です。私としては、実は呼び名は何でも構いません。要するに、「自分が担当している仕事の上手なやり方のこと」だと思っています。それをDevOpsと呼ぶ人々がいるわけです。
開発者による構成管理作業を可能にしたChef
――DevOpsの考え方になじみがない人へのアドバイスをいただけますか?
ディボウィッツ氏 最大のポイントは発想の転換です。例えばレガシーインフラを扱っていると、このように考えがちです。「自分の担当はDNSサーバとメールサーバで、AのサーバにログインしてBのことをしなければならない」。しかし、こうした発想では規模の拡大についていけません。いつか、必要なDNSサーバが5台、メールサーバが10台、Webサーバが30台になり、さらにはそれらが数百台、数千台規模になる可能性があるのです。
そこでサーバではなく、環境について考えることが必要になります。自分の環境の望ましい状態を、何らかの便利な方法を使ってどう表現するかを考えるのです。その便利な方法があれば、「自社の環境の望ましい状態」の定義を外部に移し、自分の環境の全要素をいつでも高速かつ簡単に、自動的に再生成することが可能になります。
――そうした表現方法の1つとして、今日の講演で「データとしての構成」について言及していましたが、これは具体的にはどのようなものですか?
ディボウィッツ氏 「データとしての構成」とは、システム管理の設定やパッケージの配置を表すハッシュなどのことです。システム管理者がシステムやシステムグループの構成作業の一部をソフトウェア開発者に任せたい場合、開発者がシステム管理の方法を知らなくても、また、Chefや「Puppet」「CFengine」など、管理者が使っているツール全てを知らなくても、そうした情報があれば、自らの環境でアプリケーションに必要な構成の一部を、彼らにとってなじみ深いツールを使って管理できるようになります。この「なじみ深いツール」とはコードとデータです。開発者は皆、コードとデータで作業しているのです。
カナウアティ氏 この例をさらに説明すると、開発者は「共有メモリを増やす必要がある」といったことは知っておく必要があるかもしれません。しかし、例えば「アプリケーションがLinuxマシン上で稼働している、Linuxシステムの/etcディレクトリにはsysctlファイルがある、sysctlファイルに設定を記述したら、それを有効にするためのコマンドを実行する必要がある」ということは知らなくても構いません。
つまり“データとしての構成”は、例えば「共有メモリを増やす必要があること」をファイルで示し、開発者がそのハッシュのごく一部を変更するだけで、必要な構成管理作業が自動的に行われる仕組みを提供するものです。開発者はこのような仕組みを好みます。システム管理のことを知らずに済むからです。彼らは、共有メモリを増やす必要性だけを知っていればよいのです。
――構成自動化ツールの比較評価を行いましたか?
ディボウィッツ氏 はい。われわれはPuppet、Chef、Spineを評価しました。Spineは聞いたことがないでしょうが、私がオンラインチケット販売会社のTicketmasterで働いていたときに、開発に使ったツールです。
われわれはまずスタッフに、3つのツールそれぞれの有望度を評価させ、各自に、自分が最も高く評価したツールではなく、最も低く評価したツールを提供しました。そして、自分に提供されたツールが選定されるように、社内PRとカスタマイズに精いっぱい努めるよう求め、数週間にわたって操作習得とカスタマイズの準備に当たらせました。
この期間を経て、3つのツールごとにスタッフが合流し、われわれはそれぞれについて、数種類の機能と、かなり複雑なわれわれのSSH設定を実装しました。続いて各ツールのコード、スタッフ1人1人による各ツールの試用体験、われわれのモデルへの各ツールの適合度を評価しました。
3つのツールのどれを使っても、目的の作業を行えました。ですが、われわれのケースでは、Chefの柔軟性がわれわれのワークフローニーズに最適でした。Chefでは、Rubyのパワーをフルに活用して、自社のシステム構成を表現、変更できるだけでなく、Chef自体を拡張したり変更したりすることもできます。われわれは、Chefの内部要素であるnode.saveに手を加え、Chefの動作を変更しました。
われわれは、思いのままにChefに変更を加えることができたので、このツールに合わせてワークフローを変える必要はありませんでした。 Chefのもう1つの魅力的な特徴として、全てがクライアントで行われることから、サーバモードで使うかどうかを選択できたことも挙げられます。他のツールではこうはいかなかったと思います。
Copyright © ITmedia, Inc. All Rights Reserved.
この記事の著者
新着ホワイトペーパー PR
-
技術文書・技術解説
[セコムトラストシステムズ株式会社] SCS評価制度で重要性が増す「SASE」 制度の要求事項と機能はどう関係する? -
製品資料
[株式会社オプティム] SaaS管理やID管理などの「資産管理」をまるごとカバーする方法とは? -
製品資料
[株式会社kickflow] 3分でわかる「kickflow」 どのようなワークフローを実装できる? -
事例
[株式会社kickflow] 出前館も実践 ワークフロー刷新で得られる効果とは? -
事例
[株式会社kickflow] ワークフロー活用事例:社内システムとのAPI連携で業務効率化&統制強化を実現
こんなメディアも見られています
TechTargetジャパンに関連する情報をお探しであれば、こちらのメディアもお役に立てるかもしれません。
ベンダーコンテンツ PR
From Informa TechTarget
SpecialPR
アクセスランキング
-
1
【漫画付き】ひとり情シス協会が明かす、RAG導入でしくじる企業「2つの共通点」
-
2
1200万円のSaaS導入を回避 スギ薬局「運用費10万円」のAIエージェント構築術
-
3
年収700万超エンジニアに共通するスキルと「もっと勉強すべきだった分野」
-
4
「企業におけるAIの運用」に関するアンケート
-
5
「完璧な設計」なのに3000万円溶けた AWSの失敗事例から学ぶ3つの教訓
-
6
「企業内サーバ環境の利用実態」に関するアンケート
-
7
脱VMwareか、継続か? 仮想化ソフト主要6製品の機能とスペックを徹底比較
-
8
本当にそのIBM iに問題はない? ブラックボックス化と属人化を防ぐ第一歩
-
9
なぜ情シスは評価されにくい? 読者調査で見えた「成果が見えない仕事」第1位は
-
10
「シェルコード」とは? 凶悪なマルウェア感染を可能にする手口
ホワイトペーパーランキング PR
-
1
「Google Workspace」活用事例34選、先進の生成AIによる組織変革の全貌
-
2
DX/AI投資の壁を突破、現代の最高財務責任者が直面する課題と克服のヒント
-
3
Linuxのスキルを証明する“激推し”の認定資格はこれだ
-
4
バックアップは“取っているから大丈夫”なのか? ランサムウェア時代の備え方
-
5
ネットワーク遅延の原因、「パケットロス」の基礎知識と効果的な解決策
-
6
月1000枚の紙を削減 9年動けなかった組織が、業務改革のその先に得たもの
-
7
「改正物流効率化法対策」徹底解説 総物流費を抑制するサプライチェーン戦略
-
8
「オンプレミス回帰」せざるを得ない“合理的な理由”
-
9
5分で分かる Microsoft 365のデータ損失に備えるためのバックアップの仕組み
-
10
Windows PCとMacの選択制で生産性向上 LINEヤフーが実践する運用管理方法とは
TechTargetジャパン SNS
インフォメーション
注目情報をチェック
TechTargetジャパンをフォロー