この記事は?
@cosmeを運用するistyleでは、
業務でNode.jsを積極的に活用しています。
istyleは今年で創業25年を迎え、長年にわたってサービス開発を行なってきた結果、会社にマッチする技術として今後新規の技術選定では第一推奨としてNode.js(TypeScript)、第二推奨としてJavaが推奨されています。
この記事では国内外でNode.jsが使われている企業を紹介し、なぜNode.jsが世界で採用され、注目される技術であるのか?を振り返りたいと思います。
Node.jsの特性
Node.jsはサーバー上で動き、ブラウザでJavaScriptが動く機構とは異なります。近年、サーバー開発はもちろん、Next.js、HonoなどのNode.jsを利用できる各種のフレームワークが、サーバーに処理を寄せる流れになってきていることから、サーバー開発者だけではなくフロント開発者にとってもNode.jsの理解は重要でしょう。高性能なv8エンジンを搭載していること、そして何より、Node.jsの最も大きな特徴として、シングルスレッドおよびノンブロッキングI/Oであること、イベント駆動型アーキテクチャを採用していることはNode.jsをNode.jsたらしめる特徴であると言えます。
もっと詳しく知りたい方は著者の前記事
Node.js/TypeScriptの特性と現場での活用をご覧ください。
Node.jsが採用されている国内サービス
(数えきれないほどの国内サービスでNode.jsが採用されていますが、書面の関係上何個かに絞って紹介させていただくとともに、あくまで各記事で紹介された内容の考察に留めます)
Yahoo! Japan
少し前の記事ですが、Yahoo! Japanのテックブログには以下の記載があります。
"トップページやニュースなど、ヤフーの中でも非常に大きな規模のアクセスを Node.js で受けている実例も多くなってきました。これらのアクセス規模に耐えられるということは、他の多くのサービスでも十分に利用できるポテンシャルの証明だと考えています。" (引用元: https://techblog.yahoo.co.jp/entry/20191120782387/ )
我々アイスタイルでも、日々の大規模トラフィック(MAUとしては月間1760万程度、直近IRに公式公開された値から抜粋)を捌くためにNode.jsの特性をフルに活用して安定したサービス提供をしてきたので、こういったアクセス規模が大きい場合の処理に対しても強い技術であると言えます。
ダイニー
ダイニーではフロントエンドにReact、 サーバーサイドにTypeScript、 Node.jsを採用しフルスタックに開発をできるようになったことで、より本質的に事業に向き合えていることがメリットとして述べられています。
引用元) https://whatweuse.dev/article/dinii
これは著者の所見とも一致することで、私の場合、技術スタックをTypeScriptにフォーカスさせることで、サーバーサイド開発を軸足に置きつつ、フロントエンドとインフラまで幅を広げることができたため、開発だけでなくより本質的な事業貢献とは何か?を視座として動けるようになったと思います。
@cosme
最後に、@cosmeもNode.jsを積極採用している企業です。@cosmeは日本最大級のコスメ・化粧品・美容の総合情報サイトで、日々大量に受けるトラフィックを効率的に捌くために主にWeb領域でNode.jsを積極採用し、今まで安定したサービス提供を行なってきました。著者はNode.jsでの開発を専門としているエンジニアであるため、今後もNode.jsやTypeScriptといった諸技術を活用しつつさらなるサービス発展に寄与していきたいと考えています。
Node.jsが採用されている海外サービス
(数えきれないほどの海外サービスでNode.jsが採用されていますが、書面の関係上何個かに絞って紹介させていただくとともに、あくまで各記事で紹介された内容の考察に留めます)
1. Netflix
オンラインで世界から動画を閲覧できるサービスであるNetflixは、ストリーミングサービスのバックエンドにNode.jsを使用しており、その結果、起動時間が70%短縮され、開発効率が大幅に向上したことが記載されています。Netflixの技術チームは、スタートアップタイムの短縮とパフォーマンスの向上を実現するために、Node.jsを使用しています。
(引用元: https://blog.itbrains.jp/top-companies-that-use-node-js-in-production-netflix-trello-and-co.html )
2. Uber
Uberは高速かつ信頼性の高いデータ処理、エラー分析と開発効率、OSSによる継続的な改善などを高く評価してバックエンドでNode.jsを採用しています。Uberでは、200万リクエスト/秒 という我々の想像を遥かに上回る負荷をNode.jsをフル活用して捌いている記載があります。UberはNode.jsを選定し、リアルタイムでの配車マッチング、位置情報の更新、料金計算など、多岐にわたる処理を高速かつ効率的に実行する要件を満たしているようです。
(引用元: https://www.linkedin.com/pulse/how-uber-using-javascript-node-js-mandepudi-nobel-chowdary )
3. NASA
NASAでは2013年に宇宙飛行士のLuca Parmitanoが宇宙遊泳(EVA)中に深刻な事態に遭遇するという痛ましい事件が起きました。
原因として宇宙服の仕様データが複数のデータベースに分散、メンテナンススケジュール情報の一元管理ができていない、過去の宇宙遊泳データへのアクセスが非効率などの課題があることが判明したことが述べられています。
散らばったDBは統合されるとともに、新規のマイクロサービス構成にはNode.jsが採用され、人命に関わるシステムを支える技術としてNode.jsを用いて信頼性の高いサービスを提供していることが述べられています。
(引用元: https://www.linkedin.com/pulse/how-nasa-uses-nodejs-rahul-rathod)
終わりに
国内外で数えきれないほど多くのサービスにおいてNode.jsが技術スタックとして採用されており (本記事で紹介できなかったサービスとしては 世界最大級の越境EC Ebay, 米国最大のスーパーチェーンである Walmart, 世界最大級のビジネス特化型SNSであるLinkedinなど)、
大量トラフィックがあって負荷が極大化するグローバスサービスであっても、パフォーマンスを発揮できる技術であるとともに、NASAのような人命に関わるミッションクリティカルなシステムまで採用される信頼性の極めて高い技術であると言えます。
今後、国内外でのサービス拡大に伴うビジネスニーズに答えていきつつ今後のNode.js、 TypeScriptのますますの発展を祈って、本年度アドベントカレンダー5日目を閉めさせていただけますと幸いです。