architectureはじめまして。サーバエンジニアの鳥居と申します。業務ではYourTVプラットフォーム全般の設計/開発/運用などを担当しております。先日より弊社の技術ブログが始まりました。エンジニア第一弾としてYourTVプラットフォームのアーキテクチャについてお話をします。前回、小野寺から概要を説明させていただきましたが弊社のサービスはTVの視聴をトリガーとしてアクセスされることが多いサービスです。このため、番組での告知や企画トリガーが発生するとリアルタイムで一気にアクセスが増えます。普段からこういったアクセスをいかに効率よく対処するかを考えてサービスの設計しています。現在は大きく分けて以下のサービスが存在しています。プラットフォームサービスプロジェクトサービスBridgeサービスリアルタイムログサービスこれらの特徴をかいつまんで説明します。プラットフォームサービスHAROiD全体を管理するためのサービスです。個々のサービスと常にやりとりするため24時間365日稼働しています。日常的に行われるTV連動企画のプラットフォームにもなるため企画の規模に合わせて無停止でスケールする必要があります。プロジェクトサービス企画毎に動的に起動されるサービスです。様々な種類があります。いった要件に応えるため、弊社製の管理画面からクラスタ起動/スケール/削除といったすべての操作を行うことが可能になっています。BridgeサービスTVのデータ放送と通信する場合、BMLという規格に則って通信する必要があります。TVとの通信は通常のWebと異なる部分も多く、直接サーバとのやり取りを行うことが困難です。そのためBridgeサービスがその間の通信を仲介し、やりとりを容易にしてくれています。リアルタイムログサービス企画に参加したアクセスを集計し、どのようなユーザがどの程度アクセスしているかをリアルタイムに可視化するためのサービスです。kinesis+Lambdaを利用することにより、柔軟なスケールを実現しています。要件を満たすためにサーバサイドの必須要件をまとめると以下のようになります。企画ごとに出来るだけ干渉しないような構成を構築可能いらなくなったら捨てられるエンドユーザ/開発者は可変なプラットフォームのエンドポイントなどを意識せず利用出来るまずオンラインスケールを実現するために、データストアの多くにはDynamoDBを利用しています。DynamoDBStreamと組み合わせてデータ集計に利用しています。イミュータブルなクラスタを管理するためにCloudFormationのJSONをバージョン管理し任意のCFバージョンを任意の大きさで起動/更新することができます。Agentで同期し自動的にすべてのサーバに伝搬させています。プラットフォームの今後の展開についてまだ詳しくは言えない部分が多いのですが、エンドユーザ/サードパーティ(企画用アプリケーション開発者)に対してよりバリューのあるサービスや機能を提供していくロードマップがすでに引かれています。それらをリリースしていくことによりHAROiDに触れていただくすべての方々によりよい価値を与えられると信じています。次回以降の記事について今回は概要レベルの話に留まりましたが今後はもう少し個々の技術にフォーカスし、さらに面白いお話が出来ると思います。サーバサイドだけではなくフロントエンドやその他技術に関するお話も続々掲載予定です。今後も随時チェックしていただけると嬉しいです。この度、YourTVのポイ...2019-07-31戦闘力5300万との戦い方どうも。