ネットサービス

公開から2年で550万ユーザー規模へと成長したBlueskyはどのようにして構築されてきたのか?


BlueskyはTwitter(現X)の代替SNSとして人気を博し、公開からの2年間で550万ユーザーを獲得するなど多くの人に利用されています。そんなBlueskyは14~15人のエンジニアによって構築されているのですが、「これまでどのように構築されてきたのか」という内容についてエンジニア向けのニュースレターである「The Pragmatic Engineer」が掲載しました。

Building Bluesky: a Distributed Social Network (Real-World Engineering Challenges)
https://newsletter.pragmaticengineer.com/p/bluesky


Twitterの代替SNSとしてMastodonやThreadsなど多数のSNSが登場しましたが、その中でもBlueskyは誰もが独自のサーバーを実行できる分散型のSNSであったり、コードがオープンソースでGitHubに公開されていたり、招待制ベータ版の発表後12カ月で500万人のユーザーを獲得したり、3人のエンジニアという小規模なチームでスタートし、記事作成時点でも14~15人しかいなかったりするなどの特徴を持っています。

Blueskyの開発は2022年よりスタートしました。2022年1月から10月までというプロジェクトの最初の10か月間は調査をメインに行っていたとのこと。2022年にはイーロンマスクによるTwitterの買収という大きなイベントも発生しました。


イーロンマスクによる買収が発表されて数日後、Blueskyはアプリの待機リスト登録を開始。Blueskyのモバイルアプリはもともとプロトコルが正しく動作するのを確認するためのプロトタイプであり、目的を終えたら廃棄される予定でしたが、Twitterの買収ニュースによって予期せぬ関心が高まったため1人で作成したモバイルアプリが製品版アプリ化することになってしまいました。

これまでの歴史を3つのフェーズに分けると下図の通り。2022年にさまざまな実験を行い、2023年には招待限定でのローンチを行いました。2024年は公開ローンチに向けた準備を行い、分散ネットワークのフェデレーションを可能にするためアーキテクチャを更新したとのこと。


また、正式リリースに向けてロゴを一新しました。TwitterやInstagram、TikTok、Youtubeなど既存のソーシャルメディアプラットフォームと異なり、Blueskyはユーザーをウェブサイトやアプリにロックインせず、人々が自由に使用するアプリやウェブサイトを選択できます。そうした自由と変化の象徴としてチョウのロゴが採用されたとのこと。


BlueskyのCEOであるジェイ・グレイバー氏がビジョンについて語ったプレゼンテーションには下図のようなスライドも登場しました。


Blueskyの開発においては「既存のSNSより使いやすさ・拡張性・機能の開発者エクスペリエンスで上回る」「アプリ開発とプロトコル開発を統合する」「アイデアやデザインがうまくいかない場合はすぐに捨てる」という原則が採用されました。

開発の初期段階ではインフラストラクチャとしてAWSを使用し、DBにPostgreSQLを使用することとしました。最初はBlueskyアーキテクチャが個人データサーバー(PDS)単体に集約されていました。


Blueskyの開発チームはPDSに集約されていたサービスを小さな部分に分割し、オープンネットワーク向けのアーキテクチャのモジュール化に取り組んだとのこと。最初にフィードジェネレーターサービスが分割され、サードパーティーが独自のアルゴリズムを使用してフィードを生成することが可能になりました。


続いてビューに関連する全てのものを「Appview」サービスに移動し、ウェブアプリやモバイルアプリにデータを送信する際に他のシステムの手を煩わせないようにしました。


さらに、将来的にBlueskyネットワークに数百から数千のPDSが参加する場合に備え、データをやりとりするための準備としてリレーが導入されました。


また、完全なフェデレーションを実現するためアーキテクチャをv2へと更新。内部でフェデレーションを構成し、フェデレーションが正常に行われることを確認しました。


そして2024年2月、外部のフェデレーションサーバーのクロールを開始しました。


実際に個人でPDSを立ち上げる際の手順は下記の記事で確認できます。

Blueskyのデータを独自サーバーでホストする仕組み「PDS(Personal Data Server)」を使ってみた - GIGAZINE


その後、2024年3月にOzoneというモデレーションを行うサービスが追加され、ユーザーが独自のモデレートを行えるようになりました。


Blueskyのアーキテクチャ全体の姿は下図の通りとなっています。


また、ユーザーが増加するにつれてデータベースのスケーリングに問題が生じたため、開発チームはPostgreSQLからScyllaDBおよびSQLiteにデータベースを移行しました。この点について、チームは「データに対してどのようにクエリするかを正確につかめていなかったので初期段階でPostgreSQLを使用したのは良かった。そして今では必要なデータとクエリを理解できたので、Scyllaでインデックスを作成してAPIを提供できるようになった」と述べました。


インフラストラクチャに関しても、最初はAWSを使用していましたが2023年の6月までにオンプレミスへと切り替えを行い、コストを数分の1へと減少させたとのこと。

Bluesky開発チームのテクニカルアドバイザーを務めるWhy氏によると、Blueskyのデータセンターは2つ存在し、1つはサンフランシスコのベイエリア、もう1つはブラジリアに設置されているとのこと。各データセンターには30台のビッグサーバーが置かれており、それぞれのサーバーでEPYC Genoa(AMDのサーバーCPU「EPYC」の第4世代モデル)が動作しています。また、3つ目のデータセンターは日本への設置を考えているとのこと。Why氏からBlueskyについていろいろ聞いた内容は、以下の記事にまとまっています。

Blueskyの中の人に「Blueskyの野望」「Blueskyの収益化計画」「Bluesky公式サーバーのスペック」「APIが使えなくなることはあるのか」「ジャック・ドーシーとBlueskyの関係」など今知りたいことを全部聞いてきました - GIGAZINE

この記事のタイトルとURLをコピーする

・関連記事
Blueskyの開発者に「鍵アカウントの実装予定は?」「日本支社の設立予定は?」など何でも聞けるイベントが開催されたので行ってみたら開発者の「やることリスト」に追加されるアイデアが続々飛び出す充実のイベントでした - GIGAZINE

Blueskyに「GIFアニメ投稿機能」「投稿を人気順か新着順で検索」「メールでの2要素認証」などの機能が追加される - GIGAZINE

分散型SNSのBlueskyはP2P技術からどういった影響を受けているのか? - GIGAZINE

Blueskyが投稿の埋め込みに対応&日本語検索を改善 - GIGAZINE

in ネットサービス, Posted by log1d_ts

You can read the machine translated English article here.