社内 heroku を作ることはできるのか?
先日、議論の場所で「heroku を作って提供すればいいんですよ」的な発言をした。
これだけ聞くと無理だろとなるのだけど、個人的なコンテキストを多分に含んだ発言だったので補足しておく。
heroku を作る = 一連の開発体験を作るということ
heroku が提供しているのは開発体験であるというのが個人的見解である。
言い換えると「Rails のアプリを開発すればその他に何も考えずにサービスを展開できる」という体験を提供している、と解釈している。
つまり、ここでいう heroku
という言葉は、「heroku.com が提供する PaaS」を指すのではなく、「アプリケーション開発者が得る体験」を指すことになる。
誰のために heroku を作るのか
アプリケーション開発者のために行われるものである。heroku.com の開発者のために heroku.com は開発されていないよね!
そのため、アプリケーション開発者とのタッチポイントを機能要件、その他プラットフォーム運用に必要なものは非機能要件に分類できる。
開発体験に含まれるもの
アプリケーション開発をする際に行われる作業には、以下のことが含まれる。
- 開発自体
- 運用
- トラブルシュート
網羅性に欠けるけど、この辺が実装できていれば「heroku を作る」ということができたのではないかと思う。一部本物の heroku でも不十分な項目があるね!
自分ならどうするか
自分なら、コマンドラインツールで対応したい。仮に名前を appctl
とすると、以下のようなインターフェースと動作にすると思う。
# 対話インターフェースで設定する
appctl setup
# datadog logs の URL をブラウザで開く
appctl logs
# デプロイの GitHub Actions workflow をディスパッチする
appctl deploy --production
# コンソールに入る
appctl exec
さらに、appctl deploy を最初に実行したら、datadog がセットアップされて監視とアラートが自動でセットアップされるように実装すると思う。
よしなにデプロイされて、監視もされて、ログもすぐに見れる。そこまでできたらそれは heroku と呼べるのではないか。