そういうわけなので今日は公開資料を中心にリリース失敗の技術的な要因を分析してみたいと思います。
ドワンゴアカウントシステムはScalaのコードだけで22万行を越え、ドワンゴ社内で最大のScalaリポジトリとして知られています。
ドワンゴのユーザーアカウント基盤は明らかに破綻しています。 10 年以上にわたり、ガラケー時代から今に至るまで多くの業務をコードに落としていくことは極めて難しい作業であったと思います。そうはいってもやってるうちに一回なんとか出来なかったのかとは思うわけです。やっている当人たちがテンションを上げているほどには開発効率が出ていない、むしろ足を引っ張っているという可能性はかなり高いと思います。
ニコニコ生放送(以下「生放送」)ではバックエンド・フロントエンドのサーバーを建てる環境として、2016年からDocker Swarmを採用し始めています。
Docker Swarm Mode については私も検証をしたことがあり、非常に優れた思想をもった将来性のあるプロダクトであると感じていました。個人的な検証はずっと続けています。まず swarm mode の何が優れているかと言えば、コマンド体系の分かりやすさです。開発者は何のストレスを感じることもなくクラスタを扱うことができます。さらに、サービスディスカバリ層を極めて扱いやすい形(サービス作ると公開することを指定したポートがクラスタ内の全マシンで公開されるので、あとはクラスタ全台に向けてロードバランシングするだけでいい事実上のゼロコンフィグレーション)で実装したことは素晴らしいと思います。しかし、残念ながらこの素晴らしい思想を持ったプロダクトは砂上の楼閣でした。その肝心なサービスディスカバリは安定しておらず信頼できません。またマスターがコケてそのままクラスタ全部が機能を停止するだとか、ノードが気づいたら行方不明だとかはざらです。こうした問題は 2016 年末から現在に至るまで残念ながらあまり改善されていません。
私は kubernetes が嫌いです。 Google 製品は開発者の UX を考慮しないからです。しかし、 2016 年においても、 2017 年の今においても彼のプロダクトが商用環境における事実上唯一の選択肢でした(ついでに言うならば docker service コマンドで kubernetes いじれるようになるので UX 問題も解決する)。正直、 2016 年から swarm mode を仕事で使おうとしたのは、深刻なソフトウェア検証能力の欠如を感じます。
実は分散ファイルシステムも独自に開発しました。もともと既存のオープンソースのファイルシステムを使っていたのですが,それだと期待する性能が出ないことがわかり,独自に調査開発を進めることにしました。
こちらの記事を読んでいただければわかりますが、配信基盤の再構築を行うにあたって
ということが分かります。
触れない話: 事実上全然稼働しなかった CTO 、北の将軍様
パブリッククラウド、特に CDN を採用することは開発負担の軽減に多いに貢献するように考えられます。実際「 akamai 使えよ」みたいなこと言ってるユーザーは結構いるわけです。ではなぜ彼らがそうしないのか、その意思決定の理由をここでは探ってみます。
動画ストリーミングサービスとして遅れているというのは恥ずかしいことではありますが、ハードウェアや使っている回線の影響もありますので、どのサービスも最終的には同じになると思っています。その差をつけられることはこの先はなくなると思っています。
ようするに CDN 屋だろうが自前だろうが最終的に同じようなところに落ち着くだろうという予測を彼らは立てているということです。しかし現実問題として現在競合他社との差は大きく、新配信基盤のリリースの目途は立っていません(半年以上の遅れというのは通常そういうことでしょう)。ではなぜ彼らは最終的に差は無くなると予測するのか。私はこの点において彼らが空元気をふりまわしているとは思いません。
CDNのトラフィックエンジニアリング:CDNの現状とSDNの可能性
要するに CDN 各社は現在逆ザヤで出血を続けながら戦闘しており、 DDoS 対処を中心としたセキュリティサービスにより最終的な帳尻を合わせている状態です。自前で動画配信インフラを構築した経験のあるドワンゴは CDN 大流行の早い段階から「成立するビジネスではない」という見通しを立てていたであろうと思います。
ただしこの点において今後もビジネス環境、技術環境が現在のように推移するのかは、私にはよく分かりません(誰にも分かってないでしょう)。結局同じようなところに落ち着くならありもの使っとけよとは思わなくはない。
まあもう無理でしょいろいろ
ドワンゴは、2012年頃に600万行のPHPスパゲティに絶望して、 Scala に移行したわけで、 22万行のうちの半分はテストコードなんだし、外野の人間が考えるほど破綻しているとは思いないの...
色々要因としてはかけるけど一言でいうと 「Youtubeに勝てるビジネスモデルをこの数年で構築できなかった」 で完結するな
kawangoの言動を見てると、事業の進め方や人事が人情的過ぎると思う。 リーダーと別にそこにいなくてもいい人だけが生き残るパターン。
人情的にも仁義みたいに理を持ってして貫き通す誠実さじゃなくて 哀れな人情、間違えた人情、なんだよな 人情をPDCAに落とし込むこと、仕組み化して守ることって可能なんだけどドワ...
話はズレるけど、 1年に2日だけ焼きそばを焼く仕事をさせられて、それに不満を言うのは社会人としてどうなのかなぁとは思った。 プログラマとして就職したのに、1年中焼きそばを焼か...
外野の人間からはそう見えるだろうし、俺も最初は思ったけど、おそらくそういう意味ではないかと。 「エンジニアに焼きそばを焼かせる」 っていうのは事件だったけど、実態はドワン...
エンジニアに焼きそば焼かせない、ドワンゴより高給な職場が、他にいっぱいあるんだから、不満言って辞める自由がある立場
私の周辺の話だと、ドワンゴからエンジニアの退職がずっと続いていると言う話を耳にする。 とにかく毎年何人ものエンジニアが入社してくるのだが数年足らずで退職してしまうらしい...
ドワンゴの高い技術力についていけなくて、落ちこぼれて退職していくんでしょ。 そんな状況で退職エントリー書いたら、自分自身の無能さを世間に晒し出すだけになるので、恥ずかし...
そんなGoogleみたいにエリートだけを集める体質ならこんな状況にそもそも陥ってないんだが。
Googleもエリートだけではないよ。 当たり前だけど研究開発だけでなく実際のサービスを行うには大量の泥臭いエンジニアリングが必要で、 Googleにも下っ端エンジニアが大量に存在する。...
そんな複雑なものになってるなら新規の人にきっちり説明できない限り誰も理解できないだろ
それが正しいなら採用プロセスに問題があるわけで、結局マネジメントがイケてないことには変わりないな。
レベルは高いけど汚れ仕事はしたくないって状態だと技術的負債は溜まる一方かも
俺がニコニコを立て直す、 みたいな意気込みとアイデアを持って入社するも数年で心折れて帰るみたいな感じなのかな
焼きそば事件の顛末知ってるなら退職エントリなんか書かんでしょ。 翌年のイベントであれを小馬鹿にした企画通したのは結構致命的だったと思う。
ところで人工知能の方は出口あんのかな。 立派なGPUサーバ作ってたけど。