HashiCode#2 HashiCorp道場番外編 〜HashiConf 2015報告会〜

  • HashiConf 2015

Otto

  • Vagrant, Packer, Terraformを抽象化
  • GitとGithubの関係をOttoとAtlasに対応させたい様子

Sessions

  • Electric Cloud
    • 課題:Wikiを使わなくなってしまった
      • '10: 一人で何でも
      • '11: メンバが増えてくる
        • 10程度のWiki
        • 古い、不完全、見つからない、誰が管理するのか?
    • Vagrantを使い始めた
    • 新た問題: 複数アプリを複数サーバで動かしたい、Vagrantは環境切り替えが大変
      • Terraform導入
    • いろんな開発環境が出てくる
      • テスト環境まではTerraform、本番環境はDockerという棲み分け
    • 新しいツールを導入するとき、どうするか
      • 仮説を論理建てて、そしてツールやソリューションを見る
      • ✕:「このツールすげえ」「誰もこんなのしないよ」
        • とはいえ、外からは技術を追ってるように見えるかも
  • Groupon
    • Databases as Pets
      • ペットのように手厚くかわいがる
      • 家畜のように病気になったものはとっかえひっかえ
    • State Engine
      • Consul, Consul Templateを組み合わせてステート管理をするサーバがいる
    • Efficacy vs Efficiency
      • どこまで効率化するか、という問題
      • ヒトの三倍くらいがグルーポンの目処
        • 3回やったら自動化、という感じ
  • Capital One
  • Pinterest

    • Layer 0, 1, 2
      • AWS: 0
      • ベース環境: 1
      • 本番環境: 2
    • Jenkins
      • 開発環境のイメージを回して、本番にイメージでもう一周
  • 詳しくは: http://hashiconf.com/schedule.html

KeyNote day1, day2

  • Mitchell Hashimoto氏
  • Vault 0.3公開
    • 使い捨て認証のサポート
  • HashiCorp DevOps
    • Slackの画面にAtlas - Packer BuildsAtlas - Terraform Builds
    • EAST-AWS Services(35) Nodes(61)
  • Nomad

    • 多分ノーマッド
    • 何をするか
      • 分散スケジューラ
        • k8sより多様な環境に
      • デプロイを簡単に
      • ジョブの詳細設計
    • 対応環境
      • コンテナ対応
      • HCLによるジョブ定義
      • リソースを最大限に集約
    • 使用例の一部
    • アーキテクチャはConsulのそれに近い
      • 内部では実際にSerfやConsulが動いてるっぽい
    • nomad agent -devチュートリアル
    • 設定ファイルはApache Auroraで見たような...
  • Otto

    • おっとサーバ店ではありません
    • Vagrant後継ソフト
      • 開発者はデプロイしたい
      • マイクロサービスは未来
    • otto dev, otto build -> Vagrant
    • otto infra -> Terraform
    • otto build -> Packer
    • otto deploy -> Nomad
    • Appfileがあってもなくても動きます
      • Vagrantfile, Terraform Templatesなど既存のリソースも読んでくれる
      • Appfileは開発中だけど、最終的にコレ1ファイルのバージョン管理で完結したい
        • otto compileでAppfileから各フォーマットに変換、中間ファイル生成みたいな
      • 必ず裏にConsulが居て、スケール管理がしやすい
    • windows版はバギーなのでまだおすすめしません
    • otto status
    • デプロイ先は今はAWSのみ、拡大予定
    • Vault, Atlasと連携予定
    • 既存の構成管理ツールとのすみ分けは?
      • 現状Appfileは既存構成管理ツールとの互換性がない、殺しに来てるのではないか
    • 開発ツールでもあり、デプロイツールでもある
    • Docker対応
  • おまけ

    • HashiCorpのポートランドは西海岸の山の中でした、浮浪者も少なくて安全でした
    • 各サービスのステッカーをIDに貼って、
    • HashiCorpの箸が配られていた
      • ロゴの彫刻入り、ちゃんとしてる
    • アメリカ入国は指紋をとった人は2回目以降アメリカ人の列の端末でも入国ができます、日本語メニューもあります
  • Q&A

    • バージョンアップ頻度は?
      • 可能なかぎり速く
      • Issueは上がっていて、進行状況は見える
      • 3ヶ月〜半年ごとに0.1は上がってるという感覚
    • Serf自体はConsulに吸収される?
      • 多分どちらも残り続ける
      • Serfはオーケストレーションツール単体としては優秀、しかしConsul内部にもいる
      • Consulに実装する、とはいっているが未実装
      • ホントはSerfとConsulで別の仕事をするはずが、Consulで全部できちゃってる、というような状況
  • http://hashidocs.jp

LT

吉田さん

  • @yoshidashingo
  • mizzyさんもHashiConfに
    • otto testがない
    • もしかしてあんまりMitchelテストが好きじゃない?
  • VagrantだけRubyプロダクトが残ってる
    • Vagrantがgoに書き直されることって有るんだろうか?
    • (前佛さん)ないみたい、もしくはottoが取り込むかも
      • Vagrant->ottoは数年かけて徐々に完全移行に向かう、ということらしいです
  • 20のセッションの半分以上はだいぶショボかったです
    • 「使ってみた」レベルのセッションもある
    • CFPの期間があったので、日本のユーザー事例で半分もワンチャンある
    • 雰囲気はアットホームでした

@deeet

  • 「ottoを読む」
    • 第一印象:すごくPaaSに似てる
      • herokuのheroku pushのごときotto deploy、抽象化のレベルが近い
    • スケールを簡単にするのはまだできない

    • モニタリングはまだあまり考えてなさそう

    • コードを見てるとめっちゃテスト書いてるんで、嫌いではないと思う
      • あんなにテストとドキュメント書く人はめったにいない気がする
  • Nomad

    • スケジューラ、有名なのはYARN
      • リソースをスロットごとに分けて、Map/Reduceを割り振る
      • スロットが大雑把でリソースが結構あまりがち
    • Mesosはリソースマネージメント面に注力
      • 「こんだけのリソースが欲しい」に対して合うホストを返す
      • Information Hiding、そのホストで動いてる他のジョブを考慮しない
    • Nomadの凄いのは2-Level Model
      • Google Omegaを参考にしているので、ホスト内の他のジョブの状況(帯域つかうジョブとか)を気にしてくれる
    • OttoはGlobal State Model
  • Q&A

    • IoTへの細かいCSV数百種類のデリバリを自動化する術はあるか
      • Serf agent経由でイベントを握らせて、サーバに問い合わせるとか
      • HashiCorp以外であればBourbon IoT(?)
    • クリエーションラインのサポートはどういう?
      • 「ご相談下さい」
      • 今メニュー化してる最中です
    • モニタリングツールの成熟が遅れている?多様な環境の監視はどうする?こまめに見るしか無いのか?
      • 確かにこれからどうしようという感覚
      • とりあえずは環境に合うように作っていくしか無い、銀の弾丸は今のところない
      • 個々の画面から取れる情報(Zabbix/CloudWatch)を個別に見るしか無いのだろうか
        • 時間とお金があればゼロから考えなおしましょう、となるでしょうが...