ChefConf 2017、楽天におけるHabitat導入のポイントとは?
2017年5月に開催されたChefのカンファレンス、ChefConf 2017では日本の楽天株式会社の事例がキーノートセッションで紹介された。これは楽天によるHabitatの導入事例が、Chefによって認められたということだろう。今回は、キーノートセッションに登壇した楽天のGraham Weldon氏(Technical Cordinator and Vision Lead、Global Operations)にインタビューを行った。
まず自己紹介をお願いします。
私は楽天のグローバルオペレーションという部門でテクニカルコーディネーターとビジョンリードというタイトルで仕事をしています。肩書はちょっと長いですね(笑)。楽天ではもう5年ほど働いています。当初は楽天の中でPaaSの構築という仕事から始めました。具体的には、Cloud Foundryの実装になります。それからオペレーショングループに移って、グローバルのインフラストラクチャーの運用を担当しています。楽天のインフラストラクチャーにはOpenStackだけではなく、ベアメタルのサーバーやCloud Foundryのクラスターもあり、かなり多様なシステムを使っています。その中で、Chefを使って構成管理を行っているという状況です。ChefはCloud Foundryの実装に使い始めたのが最初の経験でした。それからCloud Foundry以外のシステムでも使うようになりました。
Chefを導入する際には、他のツールも検討されたのですか?
その時はChefとPuppetの2つを検討しました。その時の評価のポイントは、データセンターで使えるか? つまりサーバー以外にスイッチやルーターなどの構成も行えるか、というのがポイントでした。それに、コミュニティ自体の評価も行いました。その結果として、当初はPuppetを使っていたのをChefに替えたということになります。
楽天の中でChefに詳しいエンジニアというのはどのくらいいるのですか?
使い始めた当初は20名くらいでしたね。それが今では50~60名になりました。当初は、小さなプロジェクトの中でエンジニアが個人で使っているくらいで、ノウハウの共有もあまり進みませんでした。でも社内にコミュニティができて、Chefのレシピやクックブックが様々なグループで共有されるようになりました。
Chefの導入に関しては英語だけの情報で問題はなかったですか?
ご存知の通り、楽天は社内の公用語が英語ですので、特に問題はありませんでした。しかし他の会社では難しいかもしれません。しかし、私がCakePHPのコントリビュータだった時に個人的に経験したことですが、日本のエンジニアのコミュニティは英語の情報をどんどん日本語に翻訳してくれるのです。そういうボランティアが協力してくれて日本語の情報がどんどん出てくるということもあるので、英語だけでもそれほど問題はなかっただろうと思います。
その当時の社内のChefを知っているエンジニアの日本人とそれ以外の比率はどのくらいでしたか?
その当時は15人が日本人、5人がそれ以外の国籍という感じですね。日本人同士は日本語で会話をしているので、私の日本語は彼らの会話からだいぶ学んでいます(笑)。
Habitatの導入について教えてください。
楽天のロイヤリティプログラムを管理する機能の一部に使うことを予定しています。まだ本番環境にはデプロイされていないのですが、近々、本番環境に移行する予定です。
Habitatはコンセプトがかなりユニークだと思いますが、それは楽天の環境にとっては合っていたのですか?
HabitatはChefの人が言うように、ボトムアップではなくてトップダウンで設計されているツールだと思います。その意味ではインフラストラクチャーから積み上げて最後にアプリケーションを載せるのではなく、アプリケーションから必要なインフラストラクチャーを依存関係に従って使うというものです。その部分では、開発者に多くの自由を与えるものだと思います。
それと楽天にはかなり強力にコンテナによるアプリケーションの実装を進めようという流れがありますが、全てのアプリケーションがコンテナ化されるわけではありません。特にレガシーなアプリケーションをコンテナ化のためだけに書き換えるというのは、コストと効果が折り合わないのです。そしてそれをそのまま使い続けようとすると古いOSなども使い続ける必要がありますが、Habitatを使うことでそのようなレガシーなアプリケーションも新しいインフラストラクチャーの上で稼働させることができるようになります。それに、Habitatが依存関係をシンプルに処理してくれます。例えばJavaのアプリケーションをmakeするために、gccや多くのライブラリの依存関係を理解してそれをmakeファイルとして書くことが可能だと思いますが、下手をすると1ヶ月ぐらいかかってしまうかもしれません。Habitatはそのような複雑な依存関係をシンプル、エレガントに行ってくれます。
全てがコンテナという形で実装されなくても、Habitatによってレガシーなアプリケーションを最新のプラットフォームで利用できるということは大きな意味があります。古いプラットフォームで脆弱性などの問題が生じても、それをちゃんとアップデートしながらその上で動くレガシーなアプリケーションを実行できるというのはHabitatの持つ良い一面だと思います。もちろん、そのレガシーなアプリケーションを全面的に書き換えたりする必要はありません。
Habitatを社内に拡げるためには何をしているのですか?
我々は、エンジニアに無理やり「これを使え」とは言いません。エンジニアにどうやって使うのかを見せることはあっても、強制することはないですね。実際に良いソリューションを見せれば「これを使いたい」と言うようになると思います。
Habitatに限らずオープンソースソフトウェアのコミュニティに対して評価を行うためにしていることはなんですか?
Chefであればクックブック、PuppetであればManifestoなどをちゃんと読んで理解するということがまず必要で。ソフトウェアをちゃんと理解することが大事ですね。それからコミュニティのイベント、例えばChefConfやPuppetのカンファレンスにも参加して評価を行いました。さらに有償のトレーニングやサポートサービスなども含めて総合的に評価します。特にChefConfは私の同僚も何人も参加していますが、非常に高い評価をしています。質も高くエキサイティングなイベントだと思います。
これから楽天の中でHabitatの利用は、どのように進んでいくのでしょうか?
そうですね。コンテナによるマイクロサービス化をHabitatとDockerを使って進めていく予定ですが、それだけではなくレガシーなアプリケーションに関してもHabitatを使っていく予定です。
楽天の中でHabitatを拡げていくためのチャレンジはなんですか?
なによりも教育ですね。まずエンジニアに知ってもらうということを進めていこうと思います。そのためにこのカンファレンスの情報も共有しますし、あなたが書いたHabitatの記事も読んでますよ(笑)。
参考:Habitatに関する記事:Chefが開発する新しいアプリケーション自動化プラットフォーム、Habitatのワークショップが開催
Habitatのユースケースとして最新のアプリケーションだけではなく、レガシーなアプリケーションの依存関係をシンプルにできたことが大きかったというWeldon氏。来年のChefConfには楽天の事例がブレークアウトセッションとして紹介されるかもしれない。
連載バックナンバー
Think ITメルマガ会員登録受付中
全文検索エンジンによるおすすめ記事
- ChefConf 2017開催。シームレスなインフラ、コンプライアンス、アプリの自動化をデモ
- ChefConf 2017開催。エンタープライズITのあるべき姿を提唱
- DevOpsに特化したイベント、DevOpsDays Tokyo 2017が開催
- ChefConf 2017、GE Digitalにみるインフラ自動化の効果とは?
- テスト駆動インフラ/インフラCIの潮流、Serverspecが果たす役割
- OpenStack Days Tokyo開催。インフラからコンテナに繋がるクラウドネイティブなソリューションを提案
- ChefのCTO、DevOpsを拡げるためにはツールと方法論の両方が必要と語る
- CloudNative Days Tokyo 2019:あえてK8sを選ばなかったSoftBankペイメント
- OpenStack Summit 2018、Yahoo!ジャパンが共同開発するGimbalとは?
- OpenStackDays Tokyo 2017、コンテナへの応用が目立つOpenStackの現状