mastodonのソースコードを読んで思ったこと

話題のマストドンについて↓のブログを読んでみたら、どんなものか見たくなってきて、
実際に運用してみてわかった、大規模Mastodonインスタンスを運用するコツ – pixiv inside

ググったらすぐにGithubのtootsuite/mastodon: A GNU Social-compatible microblogging serverが見つかって、読み進めてみました。

Gemfile
割りと知ってるのが多いかなと思って、ググったら↓のような記事がすぐにみつかり、そんなに大それたものでもなさそうです
今流行のmastodonがRailsらしいので、せっかくだからGemfile読んでみた。 – Qiita

・appの中を見ると普通のRailsアプリのようです
Screen Shot 2017-04-21 at 22.57.30

・controller と model
コントローラーのhome_controller.rbを見てみると、before_actionで認証があって〜みたいになってて、
親クラスのapplication_controller.rbをみるとフムフムって感じ。
モデルもAccount.rbとか見てくとてテーブルの関係性とかも垣間見えてきます

・DBスキーマ
schema.rbを見ると300行くらいでテーブル数は20数個といったところ。
これなら追えそうな気がしてきます。

ということで、とてもシンプルな感じで、以前取得したRails技術者認定試験の知識があれば読みこなせるようなものかなと思います。

大規模Webサイトの保守運用とかやっている人からすると、xxがボトルネックになったりしそうかな?とか思ったりすると思うのですが、Twitterだって昔はしょっちゅう落ちてて癒やし画像みたいのが表示されることになんとも思わなかったしな、と。

自分の場合は2007年に楽天に入って、Ruby on Railsなプロジェクトで一日数百万PVが発生し、読み込みだけでなく書き込みも多くて、かなり苦労したのですが、凄い少ない台数で、シンプルな構成で、自分で開発しておいて、、なのですが、コレでここまでいけるんだ!とかなり衝撃的でした(但し、業務的に複雑なものではなかったのでMyISAMでやりくりできた、というところもあるのですが)。
元々エンタープライズなSIの世界で高価なハードウェアやミドルウェアを扱っていて自分にとって、上記の経験はエポックメイキングなことだったのですが、今となってはAWSを使えば簡単にスケールアップもスケールアウトもすることが出来るし、シンプルな実装でそこまでカリカリに頑張らなくてもSpotインスタンス等を上手いこと組み込めれば結構なところまでいけるよな、と。

日頃ソリューションアーキテクトとして、もの凄い規模の洗練されたシステムやアーキテクチャばかり目の当たりにしていると、色々感覚が麻痺してくるところがあるけど、もし、自分が起業をするようなことがあれば、こういうシンプルなRailsのモノリシックというか一枚岩な実装で行けるとこまで行くよな、と思ったりして、なんというか、このマストドンのおかげで、自分の中で原点回帰というか、開発現場から離れて数年経つけど、もう一度技術者としての自分について考えるよい機会になりました 🙂

Ruby on Rails 5アプリケーションプログラミング
技術評論社 (2017-04-14)
売り上げランキング: 2,759

シェアする

  • このエントリーをはてなブックマークに追加

フォローする