2017-11-29

ニコニコ動画(く)リリース失敗に寄せて

そういうわけなので今日は公開資料を中心にリリース失敗の技術的な要因を分析してみたいと思います

Scalaにおける最適なDependency Injectionの方法を考察する 〜なぜドワンゴアカウントシステムの生産性は高いのか〜 - Qiita

ドワンゴアカウントシステムScalaコードだけで22万行を越え、ドワンゴ社内で最大のScalaリポジトリとして知られています

ドワンゴユーザーアカウント基盤は明らかに破綻しています10 年以上にわたりガラケー時代から今に至るまで多くの業務コードに落としていくことは極めて難しい作業であったと思います。そうはいってもやってるうちに一回なんとか出来なかったのかとは思うわけです。やっている当人たちがテンションを上げているほどには開発効率が出ていない、むしろ足を引っ張っているという可能性はかなり高いと思います

ニコニコ生放送におけるdockerの活用事例:dwango エンジニア ブロマガ:ドワンゴ研究開発チャンネル(ドワンゴエンジニア) - ニコニコチャンネル:生活

ニコニコ生放送(以下「生放送」)ではバックエンドフロントエンドサーバーを建てる環境として、2016年からDocker Swarm採用し始めています

Docker Swarm Mode については私も検証をしたことがあり、非常に優れた思想をもった将来性のあるプロダクトであると感じていました。個人的検証はずっと続けています。まず swarm mode の何が優れているかと言えば、コマンド体系の分かりやすさです。開発者は何のストレスを感じることもなくクラスタを扱うことができますさらに、サービスディスカバリ層を極めて扱いやすい形(サービス作ると公開することを指定したポートクラスタ内の全マシンで公開されるので、あとはクラスタ全台に向けてロードバランシングするだけでいい事実上ゼロコンフィグレーション)で実装たことは素晴らしいと思いますしかし、残念ながらこの素晴らしい思想を持ったプロダクトは砂上の楼閣でした。その肝心なサービスディスカバリは安定しておらず信頼できません。またマスターコケてそのままクラスタ全部が機能を停止するだとか、ノードが気づいたら行方不明だとかはざらです。こうした問題は 2016 年末から現在に至るまで残念ながらあまり改善されていません。

私は kubernetes が嫌いです。 Google 製品開発者UX考慮しないからです。しかし、 2016 年においても、 2017 年の今においても彼のプロダクトが商用環境における事実上唯一の選択肢でした(ついでに言うならば docker service コマンドで kubernetes いじれるようになるので UX 問題解決する)。正直、 2016 年から swarm mode を仕事で使おうとしたのは、深刻なソフトウェア検証能力の欠如を感じます

http://gihyo.jp/dev/serial/01/dwango-engineersoul/0002 大量トラフィックを支えるインフラ独自プロトコル,ファイルシステム実装もいとわない!~

実は分散ファイルシステム独自に開発しました。もともと既存オープンソースファイルシステムを使っていたのですが,それだと期待する性能が出ないことがわかり,独自調査開発を進めることにしました。

現状は初期バージョンの開発完了にかなり近づいています

こちらの記事を読んでいただければわかりますが、配信基盤の再構築を行うにあたって

  1. OSS分散ファイルシステム使用するという目論見が失敗した
  2. 自前の分散ファイルシステムは 9 カ月まえの時点で全く完成していない

ということが分かります

なぜ彼らはパブリッククラウドCDN を使わないのか?

触れない話: 事実上全然稼働しなかった CTO北の将軍様

パブリッククラウド特に CDN採用することは開発負担の軽減に多いに貢献するように考えられます。実際「 akamai 使えよ」みたいなこと言ってるユーザー結構いるわけです。ではなぜ彼らがそうしないのか、その意思決定理由をここでは探ってみます

ASCII.jp:niconico(く)開発の遅れを謝罪

動画ストリーミングサービスとして遅れているというのは恥ずかしいことではありますが、ハードウェアや使っている回線の影響もありますので、どのサービスも最終的には同じになると思っています。その差をつけられることはこの先はなくなると思っています

ようするに CDN 屋だろうが自前だろうが最終的に同じようなところに落ち着くだろうという予測を彼らは立てているということです。しか現実問題として現在競合他社との差は大きく、新配信基盤のリリースの目途は立っていません(半年以上の遅れというのは通常そういうことでしょう)。ではなぜ彼らは最終的に差は無くなると予測するのか。私はこの点において彼らが空元気をふりまわしているとは思いません。

CDNのトラフィックエンジニアリング:CDNの現状とSDNの可能性

大規模配信 | 強烈な価格競争 原価割れ総合サービス提供で収支合わせ)

要するに CDN 各社は現在逆ザヤで出血を続けながら戦闘しており、 DDoS 対処を中心としたセキュリティサービスにより最終的な帳尻を合わせている状態です。自前で動画配信インフラを構築した経験のあるドワンゴCDN流行の早い段階から「成立するビジネスではない」という見通しを立てていたであろうと思います

ただしこの点において今後もビジネス環境技術環境現在のように推移するのかは、私にはよく分かりません(誰にも分かってないでしょう)。結局同じようなところに落ち着くならありもの使っとけよとは思わなくはない。

まとめ

まあもう無理でしょいろいろ

  • ドワンゴは、2012年頃に600万行のPHPスパゲティに絶望して、 Scala に移行したわけで、 22万行のうちの半分はテストコードなんだし、外野の人間が考えるほど破綻しているとは思いないの...

    • 色々要因としてはかけるけど一言でいうと 「Youtubeに勝てるビジネスモデルをこの数年で構築できなかった」 で完結するな

      • kawangoの言動を見てると、事業の進め方や人事が人情的過ぎると思う。 リーダーと別にそこにいなくてもいい人だけが生き残るパターン。

        • 人情的にも仁義みたいに理を持ってして貫き通す誠実さじゃなくて 哀れな人情、間違えた人情、なんだよな 人情をPDCAに落とし込むこと、仕組み化して守ることって可能なんだけどドワ...

          • 話はズレるけど、 1年に2日だけ焼きそばを焼く仕事をさせられて、それに不満を言うのは社会人としてどうなのかなぁとは思った。 プログラマとして就職したのに、1年中焼きそばを焼か...

            • 外野の人間からはそう見えるだろうし、俺も最初は思ったけど、おそらくそういう意味ではないかと。 「エンジニアに焼きそばを焼かせる」 っていうのは事件だったけど、実態はドワン...

            • エンジニアに焼きそば焼かせない、ドワンゴより高給な職場が、他にいっぱいあるんだから、不満言って辞める自由がある立場

  • 私の周辺の話だと、ドワンゴからエンジニアの退職がずっと続いていると言う話を耳にする。 とにかく毎年何人ものエンジニアが入社してくるのだが数年足らずで退職してしまうらしい...

    • ドワンゴの高い技術力についていけなくて、落ちこぼれて退職していくんでしょ。 そんな状況で退職エントリー書いたら、自分自身の無能さを世間に晒し出すだけになるので、恥ずかし...

      • そんなGoogleみたいにエリートだけを集める体質ならこんな状況にそもそも陥ってないんだが。

        • Googleもエリートだけではないよ。 当たり前だけど研究開発だけでなく実際のサービスを行うには大量の泥臭いエンジニアリングが必要で、 Googleにも下っ端エンジニアが大量に存在する。...

      • そんな複雑なものになってるなら新規の人にきっちり説明できない限り誰も理解できないだろ

      • それが正しいなら採用プロセスに問題があるわけで、結局マネジメントがイケてないことには変わりないな。

      • レベルは高いけど汚れ仕事はしたくないって状態だと技術的負債は溜まる一方かも

      • 俺がニコニコを立て直す、 みたいな意気込みとアイデアを持って入社するも数年で心折れて帰るみたいな感じなのかな

    • 焼きそば事件の顛末知ってるなら退職エントリなんか書かんでしょ。 翌年のイベントであれを小馬鹿にした企画通したのは結構致命的だったと思う。

  • ところで人工知能の方は出口あんのかな。 立派なGPUサーバ作ってたけど。

記事への反応(ブックマークコメント)

ログイン ユーザー登録
ようこそ ゲスト さん