critical alertのブログ

普段はサーバのお世話係をしています

Chef Meetup(Tech-Circle&CreationLine共催) に行ってきました

Chef Meetup (Tech-Circle&CreationLine共催) - connpass

2015/8/31(月) TIS株式会社 で行われた Chef Meetup(Tech-Circle&CreationLine共催) に行ってきた。 いつもはハンズオン形式らしいのですが今回はセミナー形式での開催とのこと。 質問タイムがほとんどなかったので発表者に質問できるタイミングがあると良かった。(または懇親会的なもの)

1. DevOps, マイクロサービスの米国動向

スライド無し

DevOpsをとりまくdocker,chef,マイクロサービスについての最近の動向についてという内容だった。 chefの話はあんまり出てこず。 dockerは普及のスピードがすごく早いのが特徴的。やはりアプリ層に近いので直接的な効果が大きいのも要因だとか。

コンテナ技術自体は標準化されていっているので、運用周りでビジネスしようとしている。

サービスデリバリーのスピードを獲得するために開発環境で作ったものがそのままコンテナになって本番環境で動くのであれば確かにスピードは速そうとは思ったが、コンテナのスケジューリングとか運用管理が大事よなぁ。

マイクロサービスの話は自分の前提知識の不足と、具体的な活用方法が思い浮かばなくてよくわらかなかった。

2. Chef, Consulを使ったクラウドオーケストレーション

www.slideshare.net

ChefとConsulとありましたがさらにCloudConductorというツールが使われていた。
(自分はAWSのOpsWorksのようなものと理解した)

システムの構成変化をイベントとしてとらえ、 イベントを意識してchefのレシピを分割することで運用フェーズでのクラウドの機能やツールをうまく活用出来る、ということでした。

上記のスライドではアプリケーションコードのdeployまでchef recipeで行っていて、自分は別途deployツールを使用しているので新鮮に感じた。

Consulの使い所としてはchef solo単体では難しい下記を補う用途で使われていた。

  • システムの構成管理
  • 膨大で不定なノード
  • 起動するたびかわるIPアドレス
  • サーバー間連携
  • 起動しないとわからないパラメーター連携
  • サーバーをまたいだレシピの実行順序の制御
    • (DB - apacheの順でリスタートしたい、とか)

よく使う機能としては、

  • key/value storage
    • クラスタ全体で同期されているためノード障害が発生してもデータは保持される
  • consul watch
    • イベントや通知を受け取ると特定のコマンド、スクリプトを実行
  • consul event
    • 任意のイベントをクラスタ内に伝播
    • 特定ノードのみとかもできる

ただしconsul eventはノードに届く順序は保障されない、先のイベントの処理中でもつぎのイベントを処理してしまう。 順序制御したいのでそのようなツールを作成して使っている。

https://github.com/cloudconductor/metronome

集中管理ではなく自律分散することによってシステム構成が変化するクラウド環境でもうまく自動化できる。

3. Chef12 PremiumAdd-ons について

speakerdeck.com

Chef12になって追加されたPremiumAdd-onsのデモや解説。

  • Management Console
    • Hosted Chefとほぼ同等のUI
    • nodeのattributeやrun_list、cookbookなどがWebUIから閲覧できる
  • Reporting
    • chef clientの実行履歴(成功、失敗)
    • エラー内容、更新されたファイルのdiff
  • High Availability
    • 通常はDRDBで冗長化
    • これをAWSのEBSでやる、というアドオン。障害時EBSを付け替えて対応する
  • Replication
    • Chef Server apiエンドポイントを複製する機能
    • まだRCなので評価できません
  • Analytics
    • Chef Serverとは別のアプリケーション
    • chefの全般のオペレーション解析UI
    • 独自ルールを定義し外部に通知できる
    • cookbookの変更やchef-client実行などのアクションをルールとして定義できる
    • それらをNotifierで通知
    • Notifierにはmail,slack連携やwebhookもある

どんな画面なのか気になる人はcreationlineさんのところにいくつかスクリーンショットがあったのでリンクを貼っておく。

Chef Server Enterprise アドオン - CREATIONLINE, INC.

ReportingやAnalyticsあたりはデモもあってすごく便利そうと思ったが、常に自分の頭の中では(でもお高いんでしょう?)という言葉が繰り返されていた。 PremiumAdd-onsなので有料プランだとは思うが値段についてはプレゼンの中での言及はなかった。

公式をみるとこんな感じだった Chef | IT automation for speed and awesomeness | Chef

Chef Server前提だったりAnalyticsはそもそも別のアプリケーションだったりして小規模なシステムだと運用コストに見合わないような印象を受けた。 (小規模ならHosted Chefを使おうということなのかもしれない)

LT#1. Managing Docker hosts in Chef

speakerdeck.com

Chefでdockerをプロビジョニングできるぜ!的な内容でした。

https://supermarket.chef.io/cookbooks/docker

こんなcookbookがあるのを初めて知りましたが、見てみるとなかなかすごいことをしていると思う。

これでコンテナを配置できるようになったけど運用とスケジューリングはどうするの?...っていうオチでした。

まとめ

  • Chefの使い方として、ライフサイクルごとに分割してrecipeを書くのは新しい発見だった
    • 実際のrecipeが見てみたい
  • Chefを単なる自動化のパーツとしてつかう、という感覚はAWSのOpsWorksのようだと思った
  • 監視(メトリクス)とかは主題ではなかったためか触れられていなかったが、みんなどうやってるのか気になった
    • Consulである程度できたりするのかな?
  • Consulの具体的な運用例が聞けてどうやって使っているのかイメージがついた