MIXI GROUPは多様な事業領域でサービスを展開しています。
サービスの中には10年を超えるロングタイトルもあれば、リリースしたてのプロダクトもあります。技術は時と共に変化・進化するため、サービスのフェーズや特性に応じて必要な技術も様々。そのため、MIXIでの技術選定は、それぞれのサービスを開発するエンジニアが最適な技術を選択しています。
今回は、各プロダクトで使われている技術についてまとめました。開発言語をはじめ、ライブラリやデプロイツールなどMIXIで用いている技術を全3回に分けて、すべてご紹介します!
開発本部
SREグループ
注力事業における、サービスの信頼性向上のための貢献をする組織であり、サービス開発/運用における、必要な効率化と自動化、ワークフロー改善をし続け破壊と安定をくりかえし、スパイクに耐え切るための行動を取り続ける組織です。また各事業横断で、ノウハウを最も持つ組織でもあります。
技術スタック
iOS(言語、ライブラリなど) | Flutter |
Android(言語、ライブラリなど) | Flutter |
フロントエンド(言語、ライブラリなど) | Next.js |
サーバサイド(言語、ライブラリなど) | Elixir / Go / Rust |
インフラ | AWS ( EC2 / CloudFront / Lambda / S3 / Route53 ) / Google Cloud ( Virtual Private Cloud / Compute Engine / Artifact Registry / Cloud Run / Cloud Functions / App Engine / Cloud CDN / Cloud Load Balancing / Cloud Armor / Cloud Scheduler / Cloud Workflows / Cloud Dataflow / Eventarc Cloud DNS / Cloud Storage / Pub/Sub / Secret Manager / Cloud Memorystore / Firebase Dynamic Links / Firebase Firestore Database / Identity Platform / Identity-Aware Proxy ) |
データベース | AWS RDS / Cloud Spanner |
モニタリング | CloudWatch / Datadog / Cloud Logging / Cloud Monitoring |
データ分析 | BigQuery / Looker / AppsFlyer |
環境構築 | Terraform / Ansible |
CI | GitHub Actions / CircleCI / Terraform / Bitrise |
ゲームクライアント | Unity |
その他 | Embulk / ko / Trivy / Braze / Agora.io / Twilio |
技術スタックの背景
サービスやプロダクトの技術支援をする際には当然そのプロダクトで採用されてる技術スタックを使用します。
SREグループ独自で開発・運用しているツールの技術について記載しました。
AI相談室
開発本部CTO室たんぽぽグループ内のMLチームでは、機械学習技術を用いた各プロジェクトの技術支援を主な業務としています。
これまで、ゲームAI・レコメンデーション・画像処理・音声処理・公営ギャンブル予想などに関しての検証を行い、改善がみられたものに関しては、各プロジェクトチームと連携しながら導入までの対応を行っています。
技術スタック
サーバサイド(言語、ライブラリなど) | Python |
インフラ | SageMaker / Vertex AI / Cloud Run / Pub/Sub / Cloud Functions / Cloud Workflows / Cloud Dataflow |
データベース | MySQL / BigTable |
モニタリング | Cloud Logging / Cloud Monitoring |
データ分析 | BigQuery |
環境構築 | Docker / Pipenv |
CI | GitHub Actions / Terraform |
機械学習ライブラリ | TensorFlow / Keras / Pytorch / LightGBM / CatBoost / Numpy / scikit-learn / Pandas / Polars / etc. |
映像開発グループ
映像開発グループでは、より効率的かつユーザ体験の良い映像演出を行うためのシステムを開発など、映像を必要とする各プロジェクトが効率的に演出できるよう支援を行っています。
例えば、品質を維持しつつコスト最適化を行うためにAIによる自動化を行っていたり、ユーザの視聴体験を助けるためのAR演出や位置情報と連動したシステムなどを、誰でも簡単に扱えるようなシステムを開発し、導入しています。
技術スタック
フロントエンド(言語、ライブラリなど) | Vue.js |
サーバサイド(言語、ライブラリなど) | C++ / Go / gRPC / Python / Flask / OpenCV / FFmpeg |
インフラ | Google Cloud ( GKE / Cloud Run / Cloud Function / IAP / GCS ) / Edge TPU |
ミドルウェア | nginx |
データベース | Google Cloud ( MySQL / MemoryStore ) |
モニタリング | BindPlane / Cloud Logging / Cloud Monitoring |
デプロイツール | Helm / kubectl / GitHub Actions ( self-hosted runners ) |
環境構築 | Terraform / Ansible / Docker |
CI | GitHub Actions / Cloud Build |
機械学習ライブラリ | TensorFlow Lite / AutoML Vision |
その他 | DeckLink / PTZ Camera / Unreal Engine 4 / Unreal Engine 5 / Unity |
技術スタックの背景
AIと連携しながらも人もUIで簡単に操作できるテロップ編集システムは、レンダリングがC++でロジックはGoで記載され、GKEによってインフラを管理しています。
また、一般にGPUは高額なので、必要なモデルの容量と推論速度を考慮した上で、Edge TPUを採用しています。運用中は、競輪場43会場+オートレース場5会場のモデルの再学習をする必要があるので、学習はAutoMLに任せる構成です。
AR等のシステムに関しては、ゲームエンジンであるUnreal EngineやUnityを活用し、スタジアムなど大きな会場でのARが可能な仕組みを開発し導入しています。
インフラグループ
インフラグループでは、主にオンプレミス環境のインフラ(ネットワーク/サーバ)、またオンプレミス同士やオンプレミスかクラウドに接続する部分のネットワークに関する対応を行っています。
具体的にはモンストでのネットワークに関する運用(複数拠点のデータセンタやデータセンタ間を接続するネットワーク、サーバ向けスイッチの対応)、『TIPSTAR』での全国45拠点からのVPN網を利用した安定した映像伝送、新しい映像技術に関する調査研究(ローカル5Gや位置情報他)といった事を行っています。
技術スタック
サーバサイド(言語、ライブラリなど) | WebRTC |
インフラ | AWS ( S3 / MediaLive / MediaPackage / CloudFront ) / Google Cloud ( Cloud Storage ) / オンプレ各種 ( DELL / Fujitsu / Juniper / Arista / SEIKO ) / SMPTE2110/H264/H265 / 無線LAN / ローカル5G / IPS |
モニタリング | Zabbix / Genie / sFlow / Cloud Logging / Cloud Monitoring |
その他 | 映像機器:BlackMagicDesign / 朋栄 / NTTエレクトロニクス / etc. |
技術スタックの背景
インフラ、というと一般的には電気水道ガスといったライフラインが浮かぶかと思いますが、インフラグループではまさしく各サービスが安定した運用が出来るよう、日々サービスの運用を行いながら、改善を行っています。
MIXIのインフラグループでは安定したサービスを提供しながらも、新技術に貪欲に取り組んでおり、日本初、業界初といった取り組み(プレスリリース含む)も非常に多いグループです。
近年は特に『TIPSTAR』を始めとしたスポーツ領域での新映像技術に関する開発、構築に映像技術グループと一緒に様々な取り組みを行っています。
データグループ
データグループでは、全社のデータ活用を促進するために、データ基盤やデータ管理に関する支援やデータ分析業務等を行っています。
技術スタック
データ分析 | Python / R / Dataflow / Cloud Composer / Workflows / BigQuery / Jupyter Notebook / Looker / Terraform / Dataplex |
機械学習ライブラリ | statsmodels / scikit-learn / InterpretML |
技術スタックの背景
今後のデータ活用支援としてはdbtやデータカタログ等の活用を計画しています。
次世代育成
次世代育成を担当しているチームでは、既存のプログラミングソフトの使い方などではなく、実際にプログラムのコードを使いながらも楽しくいつの間にか理解が進み、入力したコマンドでどのような動きをするのか、といった実践を中心とした教育プログラムを検討し、中学生に向け、啓発活動を行っています。
技術スタック
サーバサイド(言語、ライブラリなど) | Google Cloud Storage ( html置き場 ) |
言語、ライブラリなど | 開発言語:C# 学習用script: Lua / Python / VBScript |
デプロイツール | Unity Cloud Build |
ゲームクライアント | Unity 2020.3.X / Unity 2021.1.X / Unity 2022.1.X |
その他 | WebGL |
技術スタックの背景
本件では主に2つのソフトウェアを開発運用している。
学習用ソフトウェア①はUnityからWebGLでbuildしたものをGCSにてhtmlベースで提供しているもの、学習用ソフトウェア②はUnityからWindows / macOSにビルドしたものをzIpにて限定提供しているもの、およびそのいずれかを利用する専用カリキュラムの開発、講師派遣まで3点セットでのサービスとして取り組んでいるプロジェクト。
ソフトウェア内でLua言語Python言語によるscriptコードを作成し実行できるため、プログラミング学習に最適。「Python学習ソフトウェア」においては、渋谷区立中学全生徒の持つWindowsタブレットPCに提供しており配布先は2000台以上。そのうち、各学校から1または2学年全生徒に対して、学校へ訪問しソフトウェアをその場で全員で使ってPython指導を行なっている。ソフトウェア開発経験があればその重みは共感いただけることでしょう。
また担当エンジニアチームはゲーム開発と企画に精通しており、提供するソフトウェアのほかカリキュラムと課題やサンプルコード、サンプルアプリケーションはゲーミフィケーションの観点から課題としても楽しい。
チームでは特に「有意義なコンテンツ」に注目し、教育機関に対して、より効果的で興味を惹き必要なところに訴求できるコンテンツを企画立案開発運用まで一貫で行う。
2022年度からはアプリonアプリとしてプログラミング学習以外の教科学習アプリケーションを開発し学習ソフトウェア上で提供しており、対応の幅をますます広げている。
セキュリティ室
セキュリティ室では、脆弱性診断などのリスク分析をはじめ、情報セキュリティの監視や対策の支援を行っています。そのほかにもe-learningや新卒エンジニアの研修といった教育コンテンツを提供したり、情報セキュリティインシデントへの対応を目的としたmixirtの運営に取り組んでいます。
技術スタック
フロントエンド(言語、ライブラリなど) | Next.js |
サーバサイド(言語、ライブラリなど) | Go / Python |
インフラ | AWS ( EC2 / Lambda / ALB / Route 53 / S3 / SNS / SQS ) / Google Cloud ( Cloud Functions / Cloud Run / Pub/Sub ) |
データベース | DynamoDB / RDS for PostgreSQL |
モニタリング | CloudWatch / Cloud Logging / Cloud Monitoring |
データ分析 | BigQuery / Athena |
デプロイツール | CodeDeploy |
環境構築 | CloudFormation |
CI | CodePipeline / GitHub Actions / Jenkins |
その他 | Cognito / CloudTrail / GuardDuty / Amazon Config / Security Command Center / Google Apps Script / PowerShell |
MIXI TECH CONFERENCE 2023 を3/1(水)より開催します!
MIXI TECH CONFERENCE では、本記事で取り上げてきたサービスやプロダクトについて、それぞれの技術や開発組織など、私たち技術者たちがこれまでの経験の中から得られた知見やノウハウ、今現在、抱えている課題、思い描いている未来像などを共有します!
自社に閉じることなく、世の中の技術発展を目指し、一緒にエンジニア業界を盛り上げていければと思いますので、ぜひご参加頂ければと思います。イベント詳細や参加登録は以下の公式サイトで受け付けております。奮ってご参加ください!