NIKKEI Digital Recruiting Site

リアルタイムデータ処理基盤 「Atlas」 のソースコードを公開します

ワクワクしています。 内製したリアルタイムデータ処理基盤Atlasのソースコードを段階的に公開します。

まず最初に、日経電子版を継続的にご利用頂き支援くださっている読者の皆様と、Atlasの開発に参加した方々、Atlasを活用して日々業務を遂行している全ての利用者に、お礼を申し上げたいと思います。有り難うございます。

課題意識から生まれた Atlas

2年半前、日経ではデータについて大きな課題をいくつも抱えていました。

膨大な記事が流通する電子版で、その運営に必要不可欠なデータをいかに迅速に編集業務の現場で活用するか? サービス開発やマーケティング施策において、全ての読者・全ての記事について正確な情報に基づく意思決定を下すためのデータはどうすれば得られるのか? 読者が必要とするであろう情報を提案できる賢いレコメンデーションやプロアクティブなコミュニケーションを実現するには、どれくらいの速度でどれくらいのデータ量を扱えなければならないのか?

これらの課題に対し、「リアルタイムに」「全てのデータを」扱える、データの計測から活用までを担うプラットフォームを作ろうということで、「Project Atlas」が始まりました。 1ヶ月ほどかけ、6通りの設計案を持ち寄りソクラテス式問答法を応用し性能と可用性に対する徹底的な評価を経て、現在のキューとマイクロバッチのチェーン構造を採用することが決定しました。およそ2ヶ月でプロトタイプを稼働させ、改良を経て2年以上に渡り運用し、400人以上(協力会社を含みますが、社員数約3,000人の10%以上の規模)が直接的または間接的にAtlasのデータを活用するに至ります。

Atlas開発や活用については、過去にイベントでお話したことがありますので、公開されているスライドをご覧ください。(ブラウザで正しく表示されない場合はダウンロードしてみてください)

リアルタイムアクセスログ分析基盤をAWSに構築した話 (JAWS UG ビッグデータ支部)

AWSで作るリアルタムMA・コスト効率と性能を追求したLambda Architecture

技術の話

AtlasのコードはNode.jsの利用を前提に主にES2015 (ES6)で記述されています。これにはいくつか理由がありますが、いくつかの言語で処理性能を評価した結果や、社内の技術者人口やフロントエンドの技術の応用によりメンテナーを確保できるだろうということで採用しました。

現時点では、計測用SDKを除く全てのコンポーネントがAWSで動くように作られていますが、開発当初より「よりよい選択を続けるためのアプリケーションのポータビリティ」を意識して設計しているので、AWS以外の環境でも容易に似た構成を再現できるはずです。

安定性を追求しているので、堅実な技術を採用しました。反面、流行の技術や目新しさはありません。これは、Atlasの開発を「技術的挑戦」ではなく、「組織的挑戦」であると位置付けているためです。

オープンソース化の対象

Atlas データ処理部分の構成

オープンソース化は以下の順序で段階的に進めます。

  1. Atlas Tracking JS - 公開済み ウェブサイトの計測に使うSDK、所謂「計測タグ」
  2. Atlas Endpoint EB - データの受け口、計測エンドポイント
  3. Atlas Enrichment EB - エンドポイントが受け取ったデータに対する拡張処理をするパイプライン
  4. Atlas Consumer Lambda - データをDBに格納する仲介役

公開に向けたコードの汎用化やセキュリティチェックをフロントに近い側(図の左)から進めており、最終的には2018年11月中を目処に、誰でもGitHubからコード一式を入手してリアルタイムアナリティクスを開始できる状態になります。

※ この他に個々のコンポーネントのモニタリングに必要なモジュールも公開します

オープンソース化の狙い

日経としてはAtlasが最初のオープンソースソフトウェアとなりました。

しかし、(形態は違えど)ビジネスパーソンに向けた「情報発信」自体は、140年以上に渡り社業として取り組んできたことでもあります。Atlasを公開することが、「ビジネスに必要な情報を入手する手段」あるいは「意思決定を支援するツール」としてを多くの方にお使い頂けるのであれば、日経のミッションをこれまでとは違う形で具現化する機会であると、個人的には考えています。

社内で内製ソフトウェアのオープンソース化を議論する中で、以下のようなメリットが挙げられました。

  • 技術者の採用に貢献する(より多くの人の興味を惹く、理解を促進する)
  • 社外から評価を受ける緊張感により、社内の技術者の技術力やモチベーションが向上できる
  • 社外からの改善提案によるソフトウェアの品質向上
  • 利便性・汎用性の高いソフトウェアを配布することによる社会貢献

Atlasの公開においては、これらに加え、「リアルタイムデータの民主化」によるサービス開発やマーケティング活動の効率化・高速化を支援し、生活者に利益還元されるようなUX/CX改善が広く浸透するきっかけとなると良いと願っています。

補足

Atlasのオープンソース化に際して、全てのコードはMIT ライセンスのもとで公開されます。As Is での公開、利用に際しては自己責任でお願いします。 また、オープンソース化を踏まえた運用プロセスの整備を進めている途上であり、現時点ではAtlasの各リポジトリへのプルリクエストはレビューされない可能性があります。お気づきの点はイシューを作成する形でご連絡頂けますと幸いです。

佐野玄
ENGINEER佐野玄

Entry

各種エントリーはこちらから

キャリア採用
Entry
新卒採用
Entry