アドテクの基盤システムにKubernetesを採用した3つの理由
サイバーエージェントでアドテクノロジー分野のサービス開発を行っている部署、アドテクスタジオ。そこに2016年新卒で入社して以来、インフラエンジニアとして活躍しているのが青山真也氏だ。「普段はOpenStackを使ったプライベートクラウドの構築・運用やKubernetesを使ったコンテナ基盤の構築およびクラウドネイティブなシステムアーキテクトにも携わっている」と自身が関わる業務を説明する。
とにかく最近はKubernetes推しだそうで、インプレスが運営する技術メディア「Think IT」で「今こそ始めよう! Kubernetes入門」という連載を持っている。また、Certified Kubernetes Administratorを取得したり、OpenStackのコントリビュート活動に従事したりしている。
趣味は「Kubernetesと公言している」と青山氏。同セッションが行われたイベント「JAPAN CONTAINER DAYS v18.04」の展示スペースに、手のひらサイズの「Kubernetesのラズベリーパイ包み」を展示。「これを見たらきっとみなさんほしくなると思い、プレゼント企画も用意してきた」と、Kubernetesのラズベリーパイ包みが作れる「おうちKubernetesの素」を紹介。「みなさんほしいですか」と会場に呼びかけると、大きな拍手が沸き起こっていた。
こうして会場の空気を温め、本題のセッションに入った青山氏。なぜ、アドテクノロジーの基盤システムにKubernetesを採用することにいたったのか。その背景には「アドテクノロジーのシステムには次のようなシビアな性能が求められるため」と説明する。
第1は低レイテンシーであること。「例えばスマートフォンでWebサイトを開くと広告のバナーが表示される。あの瞬間に、裏側では数ms間のリアルタイムビッティング(RTB)というオークションが行われており、どの広告枠を見せるか、入札をしている」と青山氏。DSPシステムの場合、通常はブラウジングを含めて50ms以内にレスポンスを返すことが求められているという。
第2はハイトラフィックであること。アドテクノロジーのシステムでは小さなデータを大量に送るロードワークになっている。「1システムあたり、30万req/secのリクエストがくる。これをさばくコンテナが求められる」と青山氏。
第3がハイコンピューティングであること。広告システムではマシンラーニングを用いたモデルを生成し、どのユーザーにどの広告を出すかといったロジックを構築している。データセットはPB(ペタバイト)クラスに大規模なので、GPU/分散処理などを積極的に利用することが求められているのだ。
以上のようにアドテクノロジーのシステムに必要とされる性能を示し、青山氏は、「こういった厳しい3つの要件を達成できるコンテナ基盤を構築することが求められてきた」と話した。
ここで、青山氏は所属するアドテクスタジオについて簡単に紹介した。同部署が扱っているのは、DSPやリワード広告、アドネットワークなどの広告主に関するアドテクはもちろん、SSPなどのメディアに関するアドテク、DMPや広告効果計測ツールなどのターゲット分析に関するアドテクなど、非常に幅が広い。そのため所属メンバーはみんな「新しいものが好き。だからコンテナ技術もそうで、触れている人が多い」と青山氏は言う。
例えばローカルマシンにMinikubeをインストールし、Kubernetesを使っている人もいれば、GPUが搭載されたマシンではNvidia-Dockerを使って開発している人もいるという。またDockerコンテナを実行・管理するため、GCP GKEやAWS ECSなどのパブリッククラウドも活用しているという。
そしてオンプレミス環境で活用しているのが、「AKE」というプライベートコンテナ基盤だ。AKEは青山氏のチームでセルフマネージドしている。