SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

【デブサミ2013】セッションレポート(AD)

【デブサミ2013】15-D-4 レポート
「Opsから挑むDevOps」

  • X ポスト
  • このエントリーをはてなブックマークに追加

ChefとMcollectiveの特長を束ねたツール「cloudrop」を開発

 実際のインフラエンジニアの仕事というのは、大きく分けて2つある。1つは設計、構築というような、一度達成したら、その状態を変えたくない静的な仕事だ。それに対して何らかのイベント、障害などに対応する仕事は動的ということになる。

 その意味でChefとMcollectiveは対極にあるもので、Chefは『決まった形、決まった状態に置く』ことを目的に作られている。一方Mcollectiveは『このタイミングでこの条件にマッチするノードに対して実行したい』という要望に応えるものになる。

 ChefとMcollectiveに、Chefと作りが似ているPuppet、複数サーバでスクリプトを実行するCapistranoの特徴について、千葉氏は以下の表のように整理している。

図:各ツールのメリットとデメリット
図:各ツールのメリットとデメリット

 実際の運用は、静的だけでも動的だけでも回らない。そこで千葉氏らが取り組んだのが、両者を束ねたツール『cloudrop』の開発だ。

図:cloudropのアーキテクチャー
図:cloudropのアーキテクチャー

 最上部にユーザーが操作するPortalがあり、ここからメッセージを投げるとMcollectiveのクライアントに入る。渡すのにはRestを使っているのだが、インターフェースがMcollective側に用意されていなかったので、作成した。

 そしてメッセージを受け取ったMcollectiveクライアントは、その内容をactiveMQに、「どのノードで実行してほしい」というようなヘッダ部分をつけて放り込む。ノード側は常にactiveMQをチェックしており、自分宛のメッセージが来たら、それを拾ってChef-soloで実行する。

 仕組みはシンプルで、pullでもpushでもなく、非同期でどんどんシステムを動かしていくことができる。また、すべての操作ログが残るため、あとから問題が発生したときに原因を突き止めることも可能となっている。さらにデプロイだけでなく、監視機能も含まれている。

 ただ、エンジニアが毎回クックブックや手順を書いているようでは、目的としているシステム作成時間の短縮ができない。そこで、cloudropでは、一度作ったものは再利用する仕組みを取り入れている。そこで得られるのが『オペレーションの標準化』であり、cloudropによる仕方は、四段階に分けられている。

  1. タスク : 細分化された作業手順を作る。
  2. パッケージ : 関連するタスクを集めパッケージング。
  3. バインダー : パッケージを集めてシステムのひな型を作る。
  4. ライブラリ : 作成したバインダーをライブラリに保存し共有する。

 オペレーション標準化の効能はスピード、コスト、品質だが、同時に『シニアエンジニアがタスク、クックブック生産に集中し、現場は作られた手順書を確実に実行する』というように、組織内に効率的なシステム構築のフローが生まれることになる。さらにライブラリにナレッジが蓄積されていくことも大きい。

 またシステム構築も標準化できるので、どんな環境にでも同じ構成のシステムを作ることができるようになる。例えば手元で開発環境を作り、試して問題がなければ本番を構築という際、環境の差異によるトラブルがなくなる。また、システムを更新する場合、新旧2つのバージョンを用意した上で新しいものをリリースし、不具合があれば元に戻す、ということも簡単にできる。

 DevOpsという言葉に戻ると、千葉氏は「開発と運用の対立構造の言葉になってしまっている」と感じている。

 “ Dev => DevOps <= Ops “

というわけだ。しかし本来は、サービスを回し続けるための取り組みであって、開発か運用かという問題ではなく、そこにかかわる人すべてが関連するものなのである。つまり必要なのは共有であり、コラボレーションだ。

 ただ千葉氏は、いろいろやってきて『共有』について気づいたことがある。それは「課題など辛いことは他人と共有しやすく、一方安楽を共有しようとすると、堕落の道に行ってしまう」というものだ。そこで、課題や辛いことを共有することが、DevOpsのような取り組みを成功させるポイントになる。

 最後に千葉氏は「まず大変なことを共有することから始めてみよう」とメッセージを発し、セッションを閉じた。

お問い合わせ

株式会社エクシード

〒150-0013 東京都渋谷区恵比寿2-36-13広尾SKビル2階

TEL:03-6422-0021

http://cloudrop-xseed.com/

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
【デブサミ2013】セッションレポート連載記事一覧

もっと読む

この記事の著者

CodeZine編集部(コードジンヘンシュウブ)

CodeZineは、株式会社翔泳社が運営するソフトウェア開発者向けのWebメディアです。「デベロッパーの成長と課題解決に貢献するメディア」をコンセプトに、現場で役立つ最新情報を日々お届けします。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/7043 2013/03/25 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング