Wantedly 開発チームブログ
エンジニアの内田 @spesnova です。
2015年8月5日に、@deeeet さんと一緒に Wantedly のオフィスにて Hashicorp Product Meetup と称して、 Hashicorp プロダクトに関する知見、悩み、展望 etc をフランクに共有する会を開きました。
参加者全員がゆるくざっくばらんに話せる場を作りたいと思って招待制のイベントにしました。 参加者の方は @deeeet さんと自分の知り合いの方から、Hashicorpプロダクトを既に利用していたり、導入予定の方々にお声をかけせて頂き、その方々がまた数名招待するという形にしました。 「行きたかった…」というツイートもチラホラありました、、参加できなかった方ごめんなさい。。
どんな内容だったのかをtogetterと以下に簡単にまとめておきます: http://togetter.com/li/856947
LT のトップバッターは @glidenote さん。
Kaizen おなじみの hubot からプルリクを作ってマージしたら CircleCI でデプロイというフローを、 AMI を作るケースでデモされていました。 Packer の実行も、 Packer のバージョンだったり、AWS API を扱えるキー渡したりと案外ちょっと環境依存するので、誰がやっても同じ結果を得るために CI でやるのいいなぁと思いました。Terraform 使おうと思ってる方はスライドに載ってる Terraform 知見は必見です。あと Hashicorp とは関係ないですが、 Kaizen の行動哲学好きです。
ref: Terraform + GitHub + CircleCI + Atlasを利用してAWSの操作を自動化した - Glide Note - グライドノート
Quipper でも @glidenote さんのブログで紹介されている CircleCI を使った Terraform 利用を紹介されていた。特徴的なのは Codenize Tool との併用をしていて適材適所で使い分けているところ。また .tf
ファイルをどのように分けてます?という投げかけがあって、座談会の方では、AWS リソースごとにわける、つまり ec2.tf
とか rds.tf
のようにするよりも、プロジェクトごとに分ける方が依存関係とか見やすいよねという話になった。
こちらは非公開になります
Wantedly での Terraform 利用例の話。Terraform は Codenize Tools のように既存のリソースの export 機能がないので、新規に追加するリソースにしか導入しづらいのだけど、@dtan4 作の terraforming という便利ツールを使って、既存リソースへ導入していったという話。
ref: dtan4/terraforming
Atlas 及び Atlas の Consul 連携について。まず Atlas を実際に使ってる人は自分の観測範囲であまりいないのでとても貴重な話が聞けた。Atlas は CircleCI と被っている部分もあって即採用すべきものでもない。ただ、Consul クラスタを作る際に Atlas に join させるだけで良かったり、 consul-alert 相当のものが Atlas + Consul に搭載されていたりと Atlas 固有のおいしいポイントもあるとのこと。あと @rrreeeyyy は「れい」と読むことを知った。
ref: consul & consul-alerts を使った監視システム (hbstyle-2015-01-08)
@deeeet さんの話は Hashicorp プロダクトの利用例というよりその内側の話。Hashicorp がプロダクトを作る中で生まれてきた副産物というかライブラリについて紹介されていた。 Golang 使う人には有用な内容だったし、合わせて Hashicorp が利用者のことやバグ報告ちゃんとしてもらうためにわかりやすいエラーを出すといった Hashicorp tao にも言及していて勉強になった。
@tkak さんの発表。社内独自環境向けに Custom Provider を作る方法だったり、Module について紹介されていた。Chef や Puppet でインフラをコード化したから誰でもインフラのコード触れるよね、と思ったら結局 Chef 職人しか触れないみたいなことと同じく、 Terraform 使って誰でも AWS リソース追加できるねと思ったら今度は RDS のパラメータ良くわかりませんみたいなことは現実に起きてくる。なので、 Module を使ってリソースを抽象化して必要なパラメータを絞ってあげると良いことをこの発表で学べた。
ref: TerraformのProviderを作った - tkak's tech blog
@hsbt さんによる GMO ペパボでも Packer での AMI イメージ作成事例の話。Packer の中で cloud-init 使ったり、serverspec 流したり、何をイメージ化するか等々 Packer の知見が詰まった発表でした。さらに詳細な話は YAPC でされるとのこと。
@fujiwara さんによる自作のデプロイツール stretcher の話。@sora_h さんの mamiya にインスパイアされたとのことで、 S3 に置いたアプリコードを rsync で取得してくる指示を SSH ではなくて consul event でトリガーすることで、スケーラブルかつ速い。10 秒でデプロイが完了するらしい、速い…。こちらも自作の Consul を使ったダッシュボードと組み合わせたデプロイデモも見せてもらった。
ref: fujiwara/stretcher
LT のあとは 1 時間くらい皆で自由に話してました。この時間が勉強会の中で一番濃い時間かなと思います。(メモがなくてごめんなさい)
参加してくださった皆さん、イベント開くにあたって協力してくれた同僚の皆さんありがとうございました!
Wantedly では今後もインフラに限らずエンジニア向け勉強会を行っていく予定です。 本日来れなかった方もぜひ次回オフィスにいらしてください :)