Twitter を作るのはなぜ難しいのか

アーキテクチャオタクらしくアーキテクチャの話をします。 前: https://togetter.com/li/1975837
253
Yuta Okamoto @okapies

例えば一時期、猫も杓子もビッグデータって言ってた時期があったけど、あれは根本的には「コンピュータの中に入ってる文章に含まれる単語の出現回数を数え上げる」っていう、それだけ聞くと至極簡単そうな仕事でも、文章の量がある規模を超え始めるととんでもない難題になる、という話だったりする。

2022-11-23 00:30:30
Yuta Okamoto @okapies

つまり、Twitter が技術的に難しいシステムである理由をとても雑に言うと、ツイートを他の人のタイムラインにバラまいたり、他の人のツイートを自分のタイムラインに集約してくる処理を、数億人に対して個々にやっているから、ということになる。しかも、人によっては一億人のフォロワーがいたりする。

2022-11-23 00:38:16
Yuta Okamoto @okapies

もちろん、これはすごく抽象的な話。じゃあ、Twitter スケールで「バラまいたり集約したり」する時に具体的にどういう課題があるのか、というのを解説したのが2017年のこの記事。話題はハードウェア構成からストレージ、書かれたコードの配備まで多岐に渡る。 blog.twitter.com/engineering/en…

2022-11-23 11:32:54
リンク blog.twitter.com The Infrastructure Behind Twitter: Scale The Infrastructure Behind Twitter: Scale 42 users 81
Yuta Okamoto @okapies

どれも、Twitter 規模のシステムで初めて問題になるような話で、最高の技術力に加えて、前例のない暗闇の中を進んでいくため、高い現状把握能力と創意工夫が不可欠な問題ばかり。Twitter のエンジニアたちは、サービスの普及や進化に合わせて、こうした問題を解き続けてきた。

2022-11-23 11:43:30
ろん2 @double_RONN

映画と美術展とコミックとSFと、そしてその日目に止まったNewsを呟きます 観た映画はこちら https://t.co/6jGmG581nM

https://t.co/h9X779TioH

ろん2 @double_RONN

twitter の今後が良く判らない点として、どの分野のエンジニアが残っているのかの情報が見えないこと。 マスクに著名ハッカーが参加を申し出たいうエピソードで盛り上がったりしているけど、フロント、ネットワーク、DB、AI等々、様々な分野の集合体のシステムの人材の足りているかが不明。 twitter.com/okapies/status…

2022-11-23 11:42:37
Yuta Okamoto @okapies

なお、たかだか一プロダクトのために専用のデータベースシステムを内製するというのは、一般的には正気の沙汰ではない。Wired の記事に載ってる三人は、おそらく「コアエンジニア」なんて気軽な表現では間に合わないような方たちだと思う。 wired.com/2014/04/twitte…

2022-11-22 09:54:28
Yuta Okamoto @okapies

そうなんですよね。この George Hotz 氏は、経歴を見るとリバースエンジニアリングの能力が高い人ではあるんだろうけど、Twitter スケールの開発組織で必要とされる才能のほんの一部でしかないし、総じて「イーロン・マスク劇場」という感じがする。 en.m.wikipedia.org/wiki/George_Ho… twitter.com/double_RONN/st…

2022-11-23 12:01:44
リンク Wikipedia George Hotz George Francis Hotz (born October 2, 1989), alias geohot, is an American security hacker, entrepreneur, and software engineer. He is known for developing iOS jailbreaks, reverse engineering the PlayStation 3, and for the subsequent lawsuit brought agains 14 users 318
Yuta Okamoto @okapies

あと、この人、既存の車を自動運転対応にすると称するキットを開発・販売して、その売り込みでマスクと会ったりしてるみたいなので、全く面識がないわけではないし、その経緯とかを見ていると、自分だったら採用したいかなー?と思ってしまう(婉曲表現)。

2022-11-23 12:06:57
Yuta Okamoto @okapies

話を戻して、こういうシステムを開発するエンジニアたちはどういう人たちなのか、というのは、Twitter という巨大開発組織の中で使われるツールチェーンの開発、という難しい仕事をされてきた横田さんのブログからも垣間見ることができる。 eed3si9n.com/ja/2years-at-t…

2022-11-23 12:31:45
リンク eed3si9n.com Twitter での 2年 · eed3si9n 394 users 12
Yuta Okamoto @okapies

で、今回のリストラでこうしたエンジニアのかなりの部分が解雇されたわけだけど、ソフトウェアって、メンテし続けないと「腐る」んですよね。果たして、イーロン・マスクは残ったエンジニアたちの協力を得て、システムが腐り切る前に開発体制を組み直すことができるのか。

2022-11-23 13:48:29
Yuta Okamoto @okapies

単なる情報の塊にすぎないソフトウェアが腐る、というのは専門家でない人には不思議な表現だと思うけど、本当に起こる現象なんですよね。個人的な感覚だと、数ヶ月くらいなら大丈夫だけど、半年くらい放置すると黄色信号、一年以上経つと危険、という感覚。

2022-11-23 13:52:26
Yuta Okamoto @okapies

僕が仕事で新しい OSS モジュールを採用する時も、真っ先に見ているのは、そのモジュールの機能の豊富さでもスター(いいねみたいなもん)の数でもなく、ソースコードの更新頻度。いくら多機能でも、一年以上更新されていないものを採用する時は相当慎重になる。

2022-11-23 13:55:22
Yuta Okamoto @okapies

なぜソフトウェアが腐るのか、ということへの答えは「変化しないから」ということになると思う。食べ物が腐るのは、食べ物自身が微生物によって変化させられるからだけど、ソフトウェアの場合は逆で、周りの変化についていけなくなることで、本来求められていた機能を果たせなくなっていく。

2022-11-23 14:24:21
Yuta Okamoto @okapies

ソフトウェアを取り巻く状況の変化というのは、例えばユーザの使い方であったり、それを使っている他のモジュールの性能要件であったり、まぁいろいろある。その中でも一番危険なのが「新しいセキュリティホールが見つかる」というやつで、これが一部の識者が強く指摘している問題の本質だったりする。

2022-11-23 14:24:21
Yuta Okamoto @okapies

これは単にその部分を取り替えれば済むという話ではなく、往々にして、その機能を代替する別製品は設計思想が違うので他の既存モジュールとの繋ぎこみが上手くいかず、既存モジュールの改良で対応しようにもメンテされてなくて…といった具合に影響が連鎖的に波及する、ということが稀によくある。

2022-11-23 14:24:22
Yuta Okamoto @okapies

ソフトウェアは一輪のお花で、丁寧に水やりして雑草を取り除き、優しい言葉をかけて(これは要らないけど)あげないといずれ枯れ腐る、という感覚はさすがにイーロン・マスクも持ってると思うけど、さて、間に合いますかどうか。

2022-11-23 14:48:32
Yuta Okamoto @okapies

これを見て思い出したんだけど、士郎政宗が攻殻機動隊の端書で「電脳化が進んだ未来では『検索員』という職業の人間が社会的に重要な役割を担うようになる」という話を書いていて、人間とAIが融合する未来を描き切った彼ですら、情報の集約と拡散が一大装置産業になる未来は想像できなかったんだなと。 twitter.com/maniadougap/st…

2022-11-24 12:27:20
アニメエロ動画相互フォロー100%返します。 @maniadougap

15年前の森博嗣「ネットは一般の人が評論家になっていくので使い物にならなくなる」 ya-yoko.mixh.jp/wi/2019/06/25/… pic.twitter.com/qCrpAHywVF

2019-06-25 09:35:06
Yuta Okamoto @okapies

何人かの方がコメントして下さっているけど、ソフト屋さんでこの分野について知見を深めたい方に一冊お勧めするとしたら、やはり「データ指向アプリケーションデザイン」ですかねぇ。恥ずかしながら、偉そうなことを言っている癖に読破できていないのでアレですが…。 medium.com/@taroleo/ddia-…

2022-11-24 21:19:57
リンク Medium データ指向アプリケーションデザイン 信頼性、拡張性、保守性の高い分散システム設計の原理 149 users 121
Yuta Okamoto @okapies

SNS ビジネス、あるいは情報を集めて加工して広告を売るビジネスそのものがこれからどうなっていくかは不透明な情勢だけど、少なくとも、この本にまとめられているような知見を生み出しソフトウェア技術の進歩を促した面はあるので、これを継承しつつ、今後を考えていけたらいいなぁとは思っている。

2022-11-24 22:04:06
Yuta Okamoto @okapies

やはりこのレベルのインフラ自動化はされてるよなー、流石だなーと思うものの。いやぁ、Mesos かー。んーーー。僕の認識が間違ってたら指摘してほしいんだけど、これも「最早メンテされてないソフト」なんですよね。最大の大口ユーザが Twitter 自身ということもあり得る。 gigazine.net/news/20221124-…

2022-11-26 13:08:26
リンク GIGAZINE 従業員の3分の2がクビになってもTwitterのシステムが停止せず動き続けた理由を元Twitterエンジニアが語る イーロン・マスク氏がTwitterを買収してわずか3週間で従業員が7500人から2700人にまで激減したと報じられています。通常、従業員の3分の2が辞めてしまうと会社の運用に支障をきたし、Twitterのシステム維持にも大きな影響を与えてしまいそうなものですが、Twitterは記事作成時点でも問題なく稼働を続けています。大規模な人員削減があってもTwitterというシステムが維持されていた仕組みについて、Twitterのサイト信頼性エンジニア(SRE)を5年間務めていたマシュー・テージョ氏が語っています。 406 users 538