人気記事
注目度の高い記事

NEWS FEED
今日の話題を、1分で追えるニュースまとめ
注目度の高い記事
ずんスレ主
PRごとに本番環境そっくりの検証環境が自動で立ち上がる?こんなの昔は手作業だったのだ。
でぇじょうぶ博士
エムスリーのデジカルチームが実装した仕組みでやんす。TerraformとGitHub Actionsで、コード変更を即座に動く環境で試せるようにしたわけでやんす。
やきう
つまりな、昔は『このコード動くんか?』って疑問が3日後に判明する地獄やったんや。今はPR出した瞬間に確認できるわけや。
ずん
でもインフラ構築とか複雑そうなのだ。コストもめっちゃかかるんじゃないっすか?
でぇじょうぶ博士
いい質問でやんす。VPCやRDSクラスタは共有して、コンテナとDBだけPRごとに独立させる設計でやんす。これで起動時間も短く、コストも抑えられるわけでやんす。
やる夫
でも古いPRの環境ってずっと残ったままなんじゃないのかお?
かっぱ
そこよ。3日デプロイされてない環境は自動で検出して壊すんや。手作業じゃなくてな。
ずん
あ、でも誰かが『このPR試してみて』って言ったら、すぐにURLが生えるってわけなのだ。
でぇじょうぶ博士
そういうことでやんす。`PR番号.preview.example.dev` みたいなホストヘッダーで自動振り分けでやんす。ワイルドカードDNS使ってるから、新しいPRが出るたびにDNS設定する手間もないわけでやんす。
やきう
レビュアーも非エンジニアも動作確認できるようになったってのは、ようするに『エンジニアが説明する手間が減った』ってことやな。
ずん
あ、そっか。『動きません』って報告されるのが減るのだ。楽だっすね。
やる夫
でもDBのマイグレーションとかシードデータの投入ってどうやってるんだお?
でぇじょうぶ博士
ECS execute-command でAPIコンテナ内でコマンド実行してるでやんす。終了コードをログから検知する工夫も入ってるわけでやんす。
かっぱ
つまりな、環境が立ち上がったら自動でデータも仕込まれるってわけや。手作業ゼロや。
ずん
でもこれ、設定が複雑そうなのだ。自分たちのチームで真似できるのっすか?
でぇじょうぶ博士
複雑な部分もありますが、基本的な考え方は応用できるでやんす。VPC共有、PR単位の独立、自動破棄の3点が肝でやんす。
やきう
ただな、これ実装するまでの工数が半端ないんやろ。短期的には『こんなん作ってる場合か』って言われるパターンや。
ずん
あ、でも長期的には開発速度が上がるから、結果的に得なのだ。
やる夫
つまりこれ、『検証環境を何個も用意する金銭コストより、手作業の時間コストの方が高い』って判断したわけだお。
ずん
僕、Terraform触ったことないのだ。でも『preview』ラベル付けるだけで環境が生えるなら、エンジニアじゃなくても使えるっすね。