無印吉澤

Site Reliability Engineering(SRE)、ソフトウェア開発、クラウドコンピューティングなどについて、吉澤が調べたり試したことを書いていくブログです。

HashiCode #2 レポート 〜HashiConf 2015のSession内容や、新製品Nomad、Ottoの紹介など

f:id:muziyoshiz:20151020004820j:plain

クリエーションラインの前佛さんのイベント HashiCode#2 に参加してきました。

今回の内容は、9/28〜29にオレゴン州ポートランドで開催された HashiConf 2015 の報告会、および10/22に発売される前佛さんの書籍 DevOpsを支える HashiCorpツール大全 (Think IT Books) の先行販売イベントでした。僕も書籍を購入して、その場で前佛さんのサインを頂きました。書籍の内容はThinkITの連載+コマンドリファレンスのようです。詳しくはこれから読んでみます。

報告会では、HashiConfで新たに発表されたNomadとOttoの話題が多かったです。Ottoの方については実用になったらすごく便利そうと思い、自分でも手元で動かしたり、HashiCorpのサイトで公開されているドキュメントを読んだりしていたのですが、前佛さんが注目しているポイントを直接聞けて参考になりました。

プレゼン資料は(前佛さんのプレゼン特有のいつもの事情により内容を削った上で)いずれ公開されるとのことなので、詳細はそちらを見てもらうのが良いと思います。以下、講演内容のメモです。

講演内容

書籍紹介(インプレス 鈴木氏)

DevOpsを支える HashiCorpツール大全 (Think IT Books)

DevOpsを支える HashiCorpツール大全 (Think IT Books)

  • 作者: 前佛雅人,クリエーションライン株式会社
  • 出版社/メーカー: インプレス
  • 発売日: 2015/10/22
  • メディア: 単行本(ソフトカバー)
  • この商品を含むブログを見る

  • 10/22に公式販売。Kindle版も出る
  • 今回の書籍は BitBucket + tex で執筆した

HashiConf 2015 Report (クリエーションライン 前佛氏, @)

1. HashiCorp & HashiConf 2015

  • エモい話

    • 自動化に夢見すぎな人が多い。100%は無理。出来るところからでおk
  • HashiCorpについて

    • HashiCorpは、ツールを導入すれば良いという話はしていない。"Workflows, not Technologies" というスローガンを掲げている
    • 農家とHashiCorpの類似点。いずれも単機能な部品の組合せ
    • HashiCorpのツールも、何らかの目的を実現するための様々な組み合わせを提供している
    • HashiCorpは、すべての開発過程をGitHubで公開している

2. Sessions

セッションは2並列だったので、前佛さんが聞いたものだけ紹介。

  • Electric Cloudの事例

    • 課題:Wikiでの情報管理。人数が少ないうちは回っていたが、人数が増えると更新が回らなくなり、古い情報ばかりで信用できなくなった
      • 対策:Vagrantを使い始めた。やりたいことにVagrantがハマった。Vagrantfileをドキュメントとして扱う(ことを社内に認知させた)
    • 新しい課題:Vagrantでは環境の切り替えが大変
      • 対策:Terraform導入で解決。色々な環境を切り替え可能にした
    • 更なる課題:テスト環境と本番環境の環境を統一したい
      • 対策:Dockerの導入
    • 組織が変更を受け入れるためには、問題を認識し、仮説を論理立てるのが第一。そのあとで、ツールやソリューションを見る
  • Grouponの事例

    • ペットと家畜のアナロジー。これをデータベースでもやっている。Databases as Pets
    • データベースのステート管理にConsulを使っている
    • 自動化にかかる手間について。Efficacy vs Efficiency
    • 彼らの基準:3人月かかる作業なら自動化する
  • CapitalOneの事例

    • Vagrantを証券部門で使い始めた。Packer, Terraform, ConsulにPull Request出してる
    • (この事例とは離れた余談だが)今回のHashiConfで紹介された事例で、Serverspecが3回は出てきた
  • Pinterestの事例

    • Image States ... AMIをレベル0〜2に分けてる。AWS提供が0、開発用が1、本番用が2
  • セッションは Schedule | HashiConf 2015 by HashiCorp に公開されてるので、興味のある方はそちらを

3. KeyNote wrap up day1&day2

  • 300名くらいのホールでKeynote。満員になるくらい集まっていた

  • 情報のアップデートがあった

    • Vault 0.3:使い捨てのSSH鍵を使えるようになる(前佛さんはまだ試してない)
    • 目玉はNomadとOtto
  • HashiCorpのビジョン

  • HashiCorp DevOpsの紹介

    • 彼ら自身の開発でもツールを使っている
    • Slackも使っている。Packer buildが終わると、通知がSlackに流れる、など
    • Atlas + ConsulでAWSを管理している
  • Nomad

    • Nomadの発音は、日本ではノマドとよく言われるが、関係者の発音はノーマッドに聞こえた
    • 分散スケジューラ:複数のクラウドをまたいで実行環境を用意する
    • Kubernetesとの違い:デプロイ対象はコンテナだけではない。すべてがnomadコマンドで解決する。Kubernetesは環境構築が大変だが、Nomadは1個のバイナリで環境を用意できる
    • Nomadのポイントは、ジョブの実行に必要なリソースを、コードで簡単に定義できるところ
    • Nomadのなかで、実際にはSerfとかConsulが動作している
    • 設定ファイルを見ていて、MesosとAuroraを連想した
    • 参考:【参考訳】Nomad | Pocketstudio.jp log3
  • Otto

    • Vagrantから学んだ知見を反映した、Vagrant後継ソフト
    • Ottoの理想系は、AppfileからVagrant、Packer、Terraform、Nomad、Vault、Atlasを含めて制御できる形だが、いまは実装途中なので、VaultやAtlasは制御できない
    • Appfile、dependencyのサンプルはバグがあって動かない
    • Windows版はバギーなのでおすすめしない。Macなら良いかもしれない
    • otto compileという新しい概念が導入されている
    • ottoは無くてもよいツールと思うが、うまく使うと仕事が楽になりそう
    • 個人的には、Chefなどの構成管理ツールとの住み分けを気にしている
    • HashiConfのデモでは、「Rubyのインストール手順」でGoogle検索すると、微妙に違う手順が山ほど検索結果が出てくる、だからottoがベストプラクティスを提供する、という話をしていた
    • Vagrantは、Ottoとは別に開発が進み、ずっと残り続ける
    • 参考:【参考訳】otto | Pocketstudio.jp log3

4. おまけ

質疑応答

  • Q) NomadやOttoの次のアップデートはいつごろ、という話はあった? 例えば、Otto 0.2はいつ出るか。雑談レベルでも良いので、もし何かあれば教えてほしい
    • A) 解決したIssueがある程度まとまったらリリースされるのでは。できるだけ早くリリースしたいと言っていた。自分の感覚では3ヶ月〜半年でバージョンが上がるイメージ

One more thing...

パネルディスカッション

その場でパネラーを募集してパネルディスカッション

  • @ による、HashiConfに参加した感想
    • serverspecを含む事例がよく出ていた
    • ottoを使ってみた人はわかると思うが、otto testはなかった。MitchellにServerspecの開発者を紹介したが、反応がよくなかった。テストは重視していない?
    • ただ、事例ではワークフローにテストを入れる事例がよく出ていた
    • VagrantだけRubyが残っているのをどうするんだろう? VagrantがGoで書き直されることはあると思う? → (前佛)書き直すという話はないと思う
    • 経費。20万かからずに行って帰ってこれた。興味のある方は、来年の参加を検討してみては
    • 半分以上の発表はハズレだった。使ってみたレベルが多かった。ただし、雰囲気はアットホームだったので、講演後に講演者と喋れて楽しかった

  • @ による、Ottoのコードを読んだ感想

    • ottoは触ってコードを読んで、ブログを書いた
    • 抽象化の仕方がPaaSに似ている。PaaSと比べて足りないところはオートスケールや、モニタリング
    • 先ほど、テストを重視していないのではという話があったが、Ottoのコードにはテストとドキュメントが大量にあったので、そんなことないと思う。ここまでテストを書く人がいるのか、と思ったくらい
    • 最近はNomadを追っている。スケジューラとして有名なのはYARN。YARNはホストをスロットに分けるという単純なリソース管理。より細かい管理をできるのがMesos
    • Nomadのコードを読んだら、またブログに書くので読んで欲しい
  • パネルディスカッションのなかで出た話題

    • Q) クリエーションラインが提供しているHashiCorp製品のサポートの内容は?
    • A) なんでもやっている。作りましょう、検証しましょう、など。正式メニューはない。ご相談ください。(前佛)