HashiCorp UG Japan Meetup #3
行ってきた!✨
補欠だったんですが、藁人形20個分くらいでなんとか繰り上がりました。
生ハム生ビール、ワインなどが設置されていました。
例によって感想などを書きます。
※ 日を跨ぐと公開するのがめんどくさくなるので生メモの状態で公開します。スライド等上がってきたタイミングで清書しようかな…。
ご挨拶、HashiCorpについてご紹介とツール解説
hashicorpの紹介。
学生時代に作った会社なのか…vagrantから始まったらしい。
vagrantとpackerはoss。
terraform, vault, consul, nomadはエンプラ版がある。エンプラ版は可用性とかパフォーマンスの面が強化されている。あとサポートがある。
vaultの説明とconsulの説明が気になる。
vauld: セキュイリティのツール。「ipベースのセキュリティは難しくなるだろう」「ダイナミックに変化していく時代」をれを解決するのがvault。「権限の管理を確実にできるソフトウェア」「1つ1つのデータをエンクリプションしてauthorizationして管理する」
consul(コンソル?コンスル?の中間の発音): マルチクラウド、マイクロサービスの時代。サービスがどこにあるか探してくれる。ipアドレスで探すのは大変。つなぎこみが大変。dnsベースでそれをやるのがもともとのconsulの機能。identベース。
nomad: 簡単に言うとk8sに似てる。リソースマネージャー。k8sと違うのはスケジュールの対象がコンテナ以外に、シェルやvmなど多岐にわたる点。
cnosul connect!
最近出たやつ。
consul connectの考え方。サービス名で接続先を探す。自分のところのプロキシを使って自動でtlsコネクションをオンザフライで暗号化してくれる。ipを気にしなくていい。どんどん上がってくるサービスをハンドリングしながら、その間の通信を暗号化してくれる。それがconsul connectの特徴。
Consul Connect - Consul by HashiCorp
DeNA AIインフラでのTerraform活用について(仮)
aiインフラをhashicorpのツールで管理。
いろんな部署で集まったログなどのデータを大規模に解析。
マシンラーニングで解析。
とかやってる。
ai研究開発エンジニアが容易に自由に開発できるインフラを構築運用する。部署がある。
あとアナリストが容易に自由に分析できるインフラを構築運用する。
各部署にデータアナリストがいる。
aiインフラの課題。とterraform。
- r&dのエンジニアが多い
- awsとかgcpアカウントがボコボコ立ち上がる
- そこをterraformで管理している
- インスタンスの中身はitamaeを使っているものが多い
- terraformはクラウドベンダーに依存しないので良い
- packerによってdockerimageに移行して〜みたいなことをしている
- gcp, awsのそれぞれのdoclerレジストリに同じイメージ置こうと試している
分析インフラの課題と解決。
- いろんなログとかをhadoopnい一旦投げて、embulkでbqにおいている場合が多い
- hadoopはデータレイクとして使っているらしい
- アナリストがダッシュボードからクエリを投げている
- hadoopの運用が大変。。分散系ミドルウェアの運用は辛い。
- バージョナップの前に検証するのが大変
- vagrantを使って検証はしているが、やっぱり大変
コンテナ基盤を支えるHashiCorpソフトウェア
今回のコンテナ基盤 = 独自のコンテナ環境
oohoriやfastcontainer, haconiwaの話
↓
オーケストレーター(k8sに相当)/アーキテクチャ/コンテナランタイム(dockerに相当)
ロリポップで使われている。
なぜ独自開発か = 要求を満たすため
- 安価でコンテナ環境を底k等 連鎖ばゆえの理由。 コンテナを高集積したい
- ユーザ管理のコンテナが継続的に安全である必要がある(ミドルウェアとか常に最新に)
- コンテナリソースや権限に対して柔軟に設定可能であることと、それが能動的である必要がある(コンテナ自身が動的にリソース変更)
vagrantで開発
openstackのイメージはpackerでイメージ固めてterraformで展開
ベアメタルの方はmaasとknife-zeroで
↓
openstackとbaremetalのハイブリットなのが特徴
運用の特徴から、あえてimmutabke infraを捨てる戦略。
nomad以外のほとんどのhashicorp製品使っておる!
consul
- メインはサービスディスカバリ
- 外形監視はmackerelサービス管理はconsul
- ホストの名前解決はconsul dnsとunbound
- vaultのストレージバックエンドとして使用
- 踏み台サーバで、consul使って簡単にsshできるようにしている。sugoi
- consul templateでkeepalivedの設定をやっている。レイヤー的にipベースなツールなので。
- consulにジョインすることで全てのサービスロールにジョイン
vault
- pkiとトランジットシークレットを使用
- etc
max ttlに注意!!
secret毎にmax ttlがある。ミスるとトークンが失効する。
大きいシステムだなあ…。いろいろ組み合わされていて面白い…。
ApplibotのDevOpsを支えるTerraform/Packer(仮)
1アプリケーション毎にカンパニー制
sysopがサーバを用意
2人!!
過去にあった課題をterraform, packerで解決
イメージの作成
- rundeck x ansible x packer
- ami,gcp,container imageの作成
- andibleと併用
- ec2起動、ansbleでprovision, ami作成、サーバ削除、を今まで手動でやっていた
- めんどくさい
- packerでコマンド一発になった
- rundeckでジョブ実行、packerでイメージ作成
- ブログでう上の話がある
負荷試験
- terraform x hubot
- sysopは環境作成、構成変更、結果をレビューする
- 用意するもの半本番と同様のもの。負荷をかけるサーバ、各種モニタリング
- 時間がかかる
- 負荷をかけるサーバも都度作っている
- 以前はawscliをゴリゴリ、起動順をスクリプトで制御、秘伝のタレ化、、
- 管理が大変 属人化
- そこでterraform
- terraformで作り直し
- スケールとか順序とかいろいろ簡単に
- hubotで上を実行!
- 負荷試験環境作成をappチームからできるように
共有可能なインフラ大事ね…。
自動化は最高。
tfnotify - Show Terraform execution plan beautifully on GitHub
tfnotify
tfの実行結果をパースして通知するツール
prをトリガーにcirclrci実行、plan結果をtfnotifyでコメント
applyはマージを契機に行う。
なぜ作ったのか
- ownewrship観点からインフラの管理レビューマージもかくmiccoserviceチームがするべき
- とはいえplatformチームにレビューされたいケースもある
- レビューの流れで、github場でクイックに確認したい
メルカリはtf, consul, vaultを使う
70以上のすべてのインフラの構築にterraformを使っている
developerにinfra as codeを実践してもらう
今の所1つのリポジトリですべてのterraformコードを管理している。
ci ciplineが一度ですむ。
プラットフォームチームがレビューしやすい
io.teereaderでgithubのポストだけでなくcircleciへの出力も行えるようにしている
丁寧に作られてる感。
使いやすそう…。
dwangoでのHashiCorp OSS活用について(仮)
dwangoのインフラ
- vmware
- aws
- ベアメタル
- その他一部zaureとかopenstackとか
vagrant packer terraform consul 使ってる
terraformでのci/cd事例
- 実際に環境立ち上げてciしている
- それが通ったらsandboxに適用
- sandboxは立ち上がりっぱなしの環境
- 差分を見たいため
- slackに通知が来る
cd
- ボタン一つでapplyできるように
- jenkinsでビルド実行するだけ
- 誰でもデプロイできるのが便利
- slack通知で成否も確認できる
感想
terrafofrmのworkspaceはあまり使われてい印象。
consulとvaultのprod環境の事例あまり聞いたことがなかったので興味深かった!!!
HashiCorpケーキとても完成度が高かった。 🎂