最近のDHH「サーバーレスをやめろ」

(インターネットやめろジェネレーターで作成)

Ruby on Rails生みの親であり最強の逆張りおじさんであるところのDHHが昨年あたりからしきりに脱パプリッククラウドの主張をしている。

これは彼らの会社が運用しているBasecampやHEYのインフラをAWSから自社保有のベアメタルサーバーへ移行しようとしているからで、実際に移行作業は進んでおり、今後5年間で700万ドルのサーバー費用を節約できるだろうという見込みがあるようだ。

world.hey.com

world.hey.com

あとタイトルに「サーバーレスをやめろ」と書いたけどDHHのファンボである筆者の誇張表現であり、サーバーレスというキーワードに関しての言及は正確には以下のポストを読んで欲しい。

world.hey.com

この文章における「the computing cycles」とは、一台のコンピュータが持つ計算能力全体を指します。つまり、そのコンピュータが持つCPUの処理速度と、メモリ、ストレージ、ネットワークなどのリソースを含めた、総合的な計算能力を指しています。

この文章では、サーバレスによって提供される個々の機能を必要なときに必要なだけ実行できるというメリットがある一方で、コンピュータ全体の計算能力が必要な場合には、サーバを所有することが最適であるという点を強調しています——とChatGPTが言っていました。

彼らのサービスは、他のユーザーに100万円配りはじめたりするアカウントがいるわけでもないし、週末に急遽テレビ出演が差し込まれるようなイベントもないだろうし、ただ契約した企業や個人がアクセスしてくるだけなのでクラウドが持つ弾力性をあまり必要としないという前提がありその主張も頷ける。

加えてBasecampは長い歴史を持つサービスでオンプレ環境を長年並行して運用しているはずなので、AWSから全部エイヤと移動するという話でもなくてどちらに寄せるかを検討したという文脈も加味する必要がある。

MRSKへの道

脱パプリッククラウドするぞと言っても自社サーバーでどういうインフラを構築するのかについては宣言後も試行錯誤していたみたいで、コンテナベースのデプロイにするという基本方針はあったと思うが(HEYのインフラで既にKubernetesを使ってる)、これは要はプライベートクラウド化に近いリアーキテクチャであるのでクラウドネイティブ関連の代替製品を検討したり、SUSE Rancherの高額見積りにブチ切れたりしていたらしい。

いろいろあった末「コンテナアプリケーション向けのCapistrano」の位置付けであるMRSKという自作ツールにやりたいことを落とし込むことでこれを達成するつもりらしい。流石Ruby on Rails生みの親であり最強のBig TechアンチであるところのDHHである。

そして先日このツールのリリースについてのステートメントが書かれていた。

world.hey.com

github.com

彼はプロダクトをブチ上げる時は決まってスクリーンキャスト動画を公開していて、今回も例に漏れずアップロードされていた。

www.youtube.com

(MRSKの読み方は動画によると「マスク」に近い発音のようだけど心の中でムラサキって呼んでた)

MRSKは要は「SSHしてdocker startして本番サーバー運用」が実現できるRuby製のCLIで「概念的距離の圧縮や〜(妄想的DHH理解)」と同じ考え方でできたのだと思う。

自分の知識の中だとDokkuというツールにコンセプトが似てるなと思ったけど、PaaS的なインターフェイスを意識しているDokkuと比べると、MRSKはより抽象度が低くて「サーバーとDockerがあってあとはそれを操作するだけ」というレイヤーの違いがある。

起動したコンテナへのアクセスをどうやって振り分けるのかというのもTraefikという軽量リバースプロキシに丸投げしており、Railsにおける「CoffeeScriptやImport Mapsの仕様がちょうどいいから活用」ぐらいのノリに見える。

(Traefikと各プロセスが協調する図: https://doc.traefik.io/traefik/providers/docker/ より)

※デプロイサーバーが複数ある場合は手前にロードバランサを配備する必要があって、そこも自分たちで運用する。

感想

まとめるとDHHは「クラウドに課金している費用でデカいサーバー買ってコンテナを運用した方が良い」という意見をとなえている。

自分はHotwireの感想の時と同じくBasecampに近ければ近いほど同じ戦略がフィットしそうだなと思った。

そして脱クラウドを指向して内々で実践するだけでなく、自分のソリューションをOSSに昇華して第三者が再現できる状態にまで行動をするのがDHHのカッコイイところだよなと思った。見習いたい。