Blog

サービスインフラチームSIAのご紹介


はじめに

 

こんにちは。 AI事業本部Strategic Infrastructure Agency(以下SIA)に所属している山本 孔明です。

 

SIAは「エンジニアが開発に集中できる環境を提供する」ことをミッションとして、自身の強みであるインフラの技術力を活かしてAI事業本部内で活動しています。

SIA内ではメインとなるチームが二つあります。

 

  • AI事業本部向けにサービス基盤を提供するPlatform チーム(以下、PF チーム)
  • 開発チームと一緒に仕事をするインフラエンジニアが集まっているSolution Architect チーム(以下、SA チーム)

 

今回はAI事業本部とSAチームについて紹介させていただきます。

 

AI事業本部におけるアドテク技術について

 

AI事業本部は元々アドテク本部という部署でした。ですのでAI事業本部と名前が変わりましたが、AI事業本部内にはアドテクに関わるプロダクトが多数あります。アドテクの技術は以下の図でも分かる通り、それぞれに役割があり構造が複雑です。この役割毎に、それぞれ事業に特性をもった開発プロダクトがあります。

 

参考:日本一やさしいアドテク教室

 

DSPのようにRTBに関わるシステムにおいてはトラフィック要件も厳しく、 DSPが応答に利用できる時間は数十ミリ秒しかありません。また、ログの欠損に関しても特性上敏感になる必要があります。DMPにおいてはデータの集め方や集めたデータの安全な保存に気を使う必要があります。

 

AI事業本部ではAIによる広告関連の自動化を主にした開発プロダクトも立ち上がってきており、より一層技術的なチャレンジが必要となっています。

 

このような形でAI事業本部では大小20以上の開発チームが存在しており、扱っているビジネスや利用している基盤もプライベートクラウドやパブリッククラウドといった多岐に渡る環境を利用しております。

 

最近ではKubernetesをメインで使用して開発しているチームも増えてきています。プライベートクラウドであれば社内向けKubernetes基盤であるAKE(https://developers.cyberagent.co.jp/blog/archives/12058/)を使ったり、パブリッククラウドでは各種マネージドのKubernetes環境を利用しています。

 

SA チームについて

 

SAチームは開発チームでインフラの支援が必要な場合に活躍するチームです。そもそもインフラエンジニアがいない、インフラを分かる人がいない、詳しい人に支援をして欲しい時に活躍するチームです。

どんな仕事をしているのか?

SAチームがサポートする範囲も事業同様、多岐に渡ります。

 

インフラ環境の設計・構築や、緊急時や夜間のアラート対応などの運用周り、Terraformやchef・ansibleを使ったインフラのコード化及び運用、デプロイフローの設計、Solution Architect職のように問題の解決に向け、相談を受けてから改善策の提案(あるいは実施)など、大小様々です。

 

特に問題の解決については、複数のアプローチや解決方法が存在する中から、背景を考えながら最適な方法を検討・提案・議論し対応していくことが大切です。

 

例えば最近だと、私の周りでは現在の品質を維持しつつコストを抑えることを第一に考える機会が多くありました。

 

プライベートクラウドやパブリッククラウド環境で、可用性や利便性を損なうことなく、またなるべく時間もかけずに効果があるものはどれなのか、開発チームのメンバーとコミュニケーションを取りながらどうすれば良いのか案を出しながら考えます。

 

クラウド環境のコストカットについては単純なリソースの削除で達成できるものもありますが、場合によってはマネージドサービスを使用することを見直して、自分たちで運用することで大きな効果が出る場合もあります。

日々の業務事例を紹介

 

具体的な例を1つ紹介させて頂きます。AWS上で展開しているDSPプロダクトにおいてRTBシステムのログを確実にs3に置くためにkinesis-agentを使い、Kinesis Data Firehoseへログを送っていました。

 

ところがRTBシステムのログ量が多いため、Firehoseのコストが掛かりすぎる状態になっていました。今後のプロダクトのスケールを考えた場合にコストの増加がネックとなると判断し、Firehoseよりもコストの掛からないKinesis Data Streamへの変更ができないかテストし始めました。

 

結果としてFirehoseが行っているs3へのputはKinesis Data Streamのデータ追加をトリガーにしたlambdaで行うことで実現できました。

 

また、Data Streamへのプロデューサーはkinesis-agentのままだとうまくログをまとめて送ることができなかったので、fluentdのkinesis pluginを使用してログをシャードの上限までまとめて送るようにして、シャード数を抑えるように工夫しました。

 

これらの対応を行ったことで大幅なコストカットに成功しました。このような形でSAチームは要件に合わせてインフラの設計・構築・運用を行っています。

 

社内環境について

 

SIA内にはプライベートクラウドやそれを基盤としたAKEを開発しているPFチームがいることもあり、サービス提供を行うプロフェッショナルやKubernetesに詳しいエンジニアと近い環境で働くことができます

 

参考: OpenStack Days Tokyo:サイバーエージェントが明かす自社製Kubernetesサービス開発秘話

CloudNative Days Tokyo 2019/OpenStack Days Tokyo 2019参加レポート 〜「+Native」へ〜

 

毎週のように勉強会をテーマ(Go勉強会やAWS EKS勉強会等)を変えて実施したり、今期はSIA TECH NIGHTといった事業部を超えた社内向けイベントも開催し、活発に技術情報を交換しています。

 

 

また、各種ベンダーと協力して勉強会を共同で開催したりと、技術向上に関して活発に活動しています。

 

SAチームの課題について

 

AI事業本部ではなく紹介したインフラ組織内の話となりますが、大きく二つの課題を抱えています。

 

  • 機械学習基盤/MLOpsに長けたインフラエンジニアが少ない
  • 社内のニーズに合わせて組織をスケールしていきたい

 

現在SAチームではまだまだAI事業本部が求めていることに応えられていないといった現状があります。

例えば機械学習基盤ではAILab(AIの専門部隊)と連携をしながら、提供されたモデルを元に最適なクリエイティブを推論する環境構築をする必要がありますが、今までのアドテクだけの技術だけではなく、今まで使わなかった新たな技術が必要になってきています。

 

社内のニーズに合わせて組織をスケールさせるという点でも、ニーズに対して現状は満足にエンジニアが確保できていないため大きな課題となっています。

 

まとめとメンバー募集

 

SIA内のSAチームについて色々と紹介させて頂きましたが、大きく二つの特徴があると思います。

 

  • それぞれのキャリアに合わせて多種多様なインフラにチャレンジできる環境
  • レベルの高いエンジニアがいる環境

 

会社の特徴として個人の裁量も大きく、これらにやりがいを感じる方には非常に良い環境だと思います。

 

SIAでは一緒に働くエンジニアを募集しています!!この記事を読んで興味を持った人がいれば是非ご応募ないしはSNSなどでお声がけをお願いします。

 

採用情報のページはこちら

 

Author

アバター
komei