git clone即起動論
大抵のGitリポジトリは、cloneしてもビルドできないし、起動しない
より大きなプロジェクトになればなるほどその傾向は顕著である
その理由は2つに大分できる
1. 依存関係が複雑になっている
2. 秘密情報がリポジトリにない
両方共、会社規模のプロジェクトになればなるほど複雑化の一途をたどり、そのまま放置すれば収集がつかない
Service Cure Engineeringできには、こういった自体は早期に対処すべきである
DockerとMakeだけ入れておけば、開発環境のシェルもDockerコンテナ内に入ってやればいい
次に2は、プロジェクトで使う秘密鍵を暗号化してリポジトリに入れておけばいい
大抵の場合(僕の経験上)、プロジェクトで使う秘密鍵は、別のアカウントでAuthorizeされた場所に置かれていて、それを手動でDLして.gitignoreしておくのが普通だが、Gitで管理しているプロジェクトでGit外の登場人物が出てくるのは混乱の原因である
「xxのパスワードってなんですか?」
「yyに保存してあるよ」
「yyにないんですがどこにありますか?」
「あ、共有してなかった。今共有リンク送るわ」
プロジェクトにnewcomerが来るたびにこういう不毛なやり取りを無限にやるのが現代のソフトウェア開発だが、上記のようなやり取りをしたあとに残るのは、作業者のPCに保存された平文の秘密鍵である
Gitとは別の認証システムで秘密鍵を管理してはいるものの、パスワードを平文で保存するというのはおかしいと思う
Webサービスなどでは、秘密鍵は環境変数としてプロセスに渡すというのが丸いとされている
であれば、秘密鍵は暗号化してGitで管理し、その復号化に適切な権限を設けるのが正道であろう
AWSやGCPを使っているのであれば、そのIAMシステムとKMSを使ってAWS/GCP CLIで復号化するような仕組みを作ればいい
僕は実際それを作ってサービスで使っている
しかし、こういったPaaSのKMSがイケているかというと、そうでもない
何故かと言うと、大抵の場合
会社のアカウント
パソコンのアカウント
PaaSのアカウント
Gitリポジトリのアカウント
はすべて全く違う認証基盤の上で動いており、互換性がない
パスワード(と生体認証)を突破してPCにログインしているのに、その上で行われるサードパーティのアクティビティは何も認証されていないというのは不便の極みだと思われる