ミクシィグループではこちらで説明している通り、様々な事業領域にてサービスを展開しています。運営しているプロダクトには10年以上稼働しているシステムもあれば、リリースしたばかりのものまで多岐にわたっているため、様々な技術が各所で採用されています。
多数のサービスを展開していることもあり、改めてミクシィグループの各サービスや事業部が現在どのような技術を採用しているか、技術スタックをまとめてみました。開発言語やインフラ環境、デプロイツールなどをサービス/事業部ごとにまとめています。
【サービスおよび、技術スタック一覧】
※サービスやプロダクトに該当しないケースは、各事業部で採用している技術を紹介します。
※2018年8月30日時点での情報です。
※8月30日に実施された社内イベントの内容を元に作成しています。
スマートヘルス
事業部の取り組み
スマートヘルス事業部は、超高齢社会を迎えた日本において、「コミュニケーション」と「運動」の2つを軸に健康寿命の延伸を目指すサービスの開発を行っています。
開発言語/ライブラリなど | Android | Java |
サーバーサイド | Go, Java10, C++ | |
インフラ | GCP (GAE, Pub/Sub, Dataflow) | |
ミドルウェア | nginx, Memcached | |
データベース | Datastore | |
モニタリング | Stackdriver | |
データ分析 | BigQuery, Google Analytics | |
環境構築 | Ansible, Docker | |
CI | Travis CI | |
機械学習ライブラリ | Caffe2, TensorFlow, Keras |
コメント
2017年からスタートしているスマートヘルス事業部は、コミュニケーションと運動を通じて健康寿命を延伸することをビジョンに掲げています。具体的には、予防理学療法に基づいて身体の歪みやバランスの計測・評価を行い、身体の状態に合わせた運動プログラムを提供していきます。
エンジニアの平均年齢は24.5歳と若いメンバーで構成された組織で、それぞれが専門技術を持ち、様々な技術を駆使してサービスを実現しています。
今後は、サービスを提供する実店舗のオープンや、ヘルスケアアプリの提供、サービス利用者のPHR※を蓄積したデータベースの構築など、多角的なアプローチで日本の健康寿命延伸に取り組む予定です。
※Personal Health Record
スマートヘルス事業部 開発グループ マネージャー 橋口
Find Job!、COSMiKA
事業部の取り組み
「Find Job!」「COSMiKA」のサービス開発・運営、新規サービスの開発
開発言語/ライブラリなど | フロントエンド | TypeScript, SCSS, webpack, React, Redux |
サーバーサイド | Perl, Python (Django) | |
インフラ | AWS (ECS, RDS, S3, CloudFront, ElasticSearch) | |
ミドルウェア | Memcached, Solr, nginx | |
データベース | MySQL | |
モニタリング | CloudWatch, nagios | |
データ分析 | Google Analytics, Redash | |
CI | Jenkins, CircleCI |
コメント
Vantage スタジオ ミクシィ・リクルートメント事業部では、個人、企業の働く事を様々な形でサポートして、事業が生まれ成長し続ける社会を作ることを目標とし、「働くで未来を形作る」をミッションに掲げ事業を展開しています。「Find Job!」はIT・Webに特化した求人情報サービスで、ミクシィグループの創業サービスでもあり、20周年を昨年迎えています。20年と老舗のサービスですが、最近では一部PerlからPythonへの移行やAWS,SCSS, webpackなどモダンな環境を取り入れながら改善しています。
「COSMiKA(コズミカ)」は、起業家やフリーランスの方々を支援するサービスで、2018年の6月に新規サービスとしてローンチしています。新しい収益柱になるようにこれからどんどんブラッシュアップをしていくフェーズです。また、詳細はお伝えできませんが、別の新規事業も進めています。どのサービスにおいても少数のエンジニアがインフラ、バックエンド、フロントエンドなど幅広い範囲を対応している開発スタイルです。
Vantageスタジオ ミクシィ・リクルートメント事業部 エンジニア 飯塚
mixi
事業部の取り組み
SNS 「mixi」の開発・運営
開発言語/ライブラリなど | iOS | Swift, Objective-C |
Android | Java | |
フロントエンド | JavaScript, TypeScript, LESS | |
サーバーサイド | Perl, Ruby, Python | |
インフラ | AWS (EC2, S3, CloudFront, Route53, Elasticsearch, etc.), GCP(Cloud Vision API) | |
ミドルウェア | Apache, nginx, ElastiCache | |
データベース | RDS, MySQL, Aurora | |
モニタリング | CloudWatch, Sensu, Datadog | |
データ分析 | Google Analytics, EMR, Spark, SageMaker | |
デプロイツール | Consul, stretcher | |
環境構築 | Chef, Docker, Ansible | |
CI | Jenkins |
コメント
Vantage スタジオ mixi事業部が開発・運営している「mixi」は、最大時、数千万規模のユーザーが利用していたプロダクトで、15年の歴史があるSNSです。日記やコミュニティ、足あとなどSNS機能のほか、ソーシャルボタンやゲームプラットフォームなど外部連携機能をもち、独特なコミュニケーションの場を提供しています。
マネージドサービスへの移行や機械学習による自動化にも積極的に取り組み、大規模かつ複雑なコードやデータに対処しつつ、変化に対応できる組織/システム構造を実現しています。
Vantageスタジオ mixi事業部 エキスパートグループ 岩瀬
minimo
事業部の取り組み
サロンスタッフと個人をマッチングする「minimo」の開発、運営
開発言語/ライブラリなど | iOS | Objective-C, Swift |
Android | Java, Kotlin, RxJava, DataBinding, Retrofit | |
フロントエンド | React.js, ES6 | |
サーバーサイド | Perl (Mojolicious), Go | |
インフラ | AWS (EC2, RDB, S3, CloudFront, Elasticsearch, Route53, etc.) | |
ミドルウェア | nginx | |
データベース | MySQL | |
データ分析 | Redash | |
CI | Jenkins, bitrise |
コメント
ライブエクスペリエンス事業本部 minimo事業部では、サロンスタッフと個人をマッチングする「minimo」の開発、運営を運営しています。「minimo」のサービスの特徴は、お店単位ではなく、サロンスタッフの個々人がスマホさえあれば集客ができるという点です。2014年にリリースして5年目の現在、アプリは300万ダウンロードを突破しています。
現在11名のエンジニアでお客様とサロンスタッフの方の双方が使うiOS, Androidアプリ、Web、サロン向けのReactによるSPA、サロンスタッフ向けのブログメディア等のプロダクトを開発しています。
ライブエクスペリエンス事業本部 minimo事業部 プロダクトグループ マネージャー 尾関
家族アルバム みてね
事業部の取り組み
「家族アルバム みてね」の開発・運営
開発言語/ライブラリなど | iOS | Swift,Objective-C, RxSwift,Alamofire, Realm,Codable, SDWebImage, Firebase, MVP + Clean Architecture |
Android | Kotlin/Java, RxJava2, retrofit2, Realm, gson, Glide4, Dagger2, Firebase, DataBinding, MVVM + Clean Architecture | |
サーバーサイド | Ruby (Rails) | |
インフラ | AWS | |
ミドルウェア | nginx, Unicorn, Sidekiq | |
データベース | MySQL | |
モニタリング | NewRelic, CloudWatch, Grafana | |
データ分析 | BigQuery | |
CI | CircleCI |
コメント
「みてね」は、子どもの人生を丸ごと残せるアルバムを作るというコンセプトで、写真を整理する時間が無いパパやママ、ITに不慣れな方でも使ってもらいやすいサービスを目指しています。現在、ユーザー数が300万人を突破し、アップロードメディア数が10億件を超えており、順調に拡大しています。
現在エンジニアは15名で、アプリ開発、コンテンツ開発、SREとチームにわかれてはいるものの、サーバーサイド、iOS、Androidそれぞれの分野にエンジニアがチャレンジできる環境です。そのため、エンジニアが幅広く技術を学べる環境です。
Vantageスタジオ みてね事業部 開発グループエンジニア 玄馬
AI・ロボット事業部
事業部の取り組み
家庭用ロボットの設計・開発
開発言語など | Python |
言語処理 | word2vec, mecab (neologd) |
インフラ | AWS, GCP |
データベース | RDS, DynamoDB, Elasticsearch |
モニタリング | CloudWatch |
環境構築 | Ansible |
CI | CircleCI |
機械学習ライブラリ | TensorFlow |
コメント
私たちの事業部では、新規事業として、人と会話ができる家庭用会話ロボットを研究開発しています。スマートスピーカーなど世の中の多くの会話システムは、便利な機能を実現するための手段として会話を使います。一方、私達は便利な機能ではなく、雑談的な会話をして情緒、感情的なニーズを満たすことを目的としています。これはとてもチャレンジングな課題で様々なアルゴリズムを組み合わせて検証を行っています。
アルゴリズムは大きく分けて2つの系統に分かれており、片方は End-to-End Learning と呼ばれ数十万〜数千万単位の対話データを集め Deep Learning のモデルに学習させるアルゴリズム群です。もう一方のアルゴリズムは、会話の意図を判定し、記憶やルールから情報を引き出し、応答を構築するような、部品部品で会話を組み立てるアルゴリズム群です。笠原会長直下の事業部で、研究的な側面がありつつも、動くものを作りアジャイルに検証・適応を行いながら事業を進めています。
Vantage スタジオ AI・ロボット事業部 開発グループ マネージャー 信田
ライブエクスペリエンス事業本部 新規事業開発部
事業部の取り組み
リアルイベント「XFLAG PARK」の運営、オンラインショップ「XFLAG STORE」の運営、店舗「XFLAG STORE SHIBUYA」、「XFLAG STORE SHINSAIBASHI」の運営など
開発言語/ライブラリなど | Ruby (Rails), Go, gRPC, Node.js, TypeScript |
インフラ | AWS, GCP |
ミドルウェア | nginx, Puma, Unicorn, Sidekiq |
データベース | MySQL, DynamoDB |
モニタリング | Grafana, CloudWatch, CloudWatch Logs |
デプロイツール | Capistrano, CircleCI |
環境構築 | Docker, AWS Elastic Beanstalk, Terraform, GKE(Kubernetes) |
CI | CircleCI, Jenkins |
コメント
ライブエクスペリエンス事業本部では、IPを活用したビジネス開発とコンテンツマーケティングを展開しており、新規事業開発部では、各事業の開発・運用を行っています。例えば、「XFLAG PARK」でのチケットの購入・抽選応募ができる「XFLAG TICKET」の開発、入場ゲートのシステム開発、「XFLAG STORE」のポイントを利用できるポイントくじ、「モンストーク」では、ビーコンを利用した記念写真を配布するシステムの開発・運用、プレミアムラウンジ予約システムの開発、他にも、サイネージや筐体など、オンラインだけでなく、リアルなイベントで利用するシステムを開発しています。「XFLAG PARK」でスタッフとしてその場に参加するケースもあるため、ネット越しではなく、リアルなユーザーを感じられる開発部署です。
ライブエクスペリエンス事業本部 新規事業開発部 サービス企画グループ LX開発チーム リーダー 浜田
モンスターストライク
事業部の取り組み
「モンスターストライク」の開発、運営、「モンスターストライク スタジアム」の開発
開発言語/ライブラリなど | iOS | C++, Objective-C |
Android | Java | |
サーバーサイド | Ruby, RSpec, padrino | |
ゲームエンジン | Cocos2d-x | |
インフラ | Alibaba Cloud, AWS, GCP, GMOクラウド, IBM Cloud | |
データベース | MySQL | |
モニタリング | CloudForecast, Grafana | |
デプロイツール | Capistrano | |
環境構築 | Terraform, Chef, Ansible | |
CI | Jenkins |
コメント
モンスト事業本部の開発室では、世界累計利用者数4,500万人を突破した「モンスターストライク」を中心に様々なサービスを開発している部署です。サーバーサイドでは、オンプレミスに加え、国内外さまざまなクラウドを使用して運用を行っている点が大きな特徴です。2017年8月の時点では、約1,400台のオンプレミスサーバーが稼働しています。また、eスポーツイベント「モンストグランプリ」で使用するアプリ「モンスターストライク スタジアム」では、端末の不調や遅延を回避するために通信を会場内で完結できるローカルサーバーを採用するなど、サービスを安心安全に楽しんでいただくために様々な技術を駆使しています。
モンスト事業本部 開発室 室長 白川
ファイトリーグ
事業部の取り組み
「ファイトリーグ」の開発、運営
開発言語/ライブラリなど | iOS | Objective-c |
Android | Java | |
エンジン | Unity、C# | |
フロントエンド | Elm | |
サーバーサイド | Elixir (Phoenix Framework) | |
インフラ | AWS | |
ミドルウェア | nginx, Redis cluster, exq | |
データベース | Percona XtraDB Cluster, AWS DynamoDB | |
モニタリング | Prometheus, Grafana | |
デプロイツール | Slack,Hubot, Jenkins, edeliver, Consul, Stretcher, AWS CodeDeploy, AWS S3 | |
環境構築 | Ansible | |
CI | Jenkins, Docker |
コメント
「ファイトリーグ」は、キャラクターである「ファイター」を3×4マス内に配置し、繋げて攻撃し敵を倒していくパズルゲームと将棋を融合させたようなゲームです。
このサービスの開発体制については、インゲーム(ゲームのプレイ部分)、アウトゲーム(ホーム画面やガチャ画面)、ゲームロジック(クライアントとサーバーサイドの情報の受け渡しなど)、ツールベース(処理の負荷対策やメッシュ結合など)と別れて開発しています。開発箇所は別れているものの、インゲームやゲームロジックなどエンジニアが希望する箇所を開発できるのも部署の特徴です。
デジタルエンターテインメント事業本部 ファイトリーグ事業部 マネージャー 塩谷
デジタルエンターテインメント事業本部 ファイトリーグ事業部 マネージャー 袁 雷
マーケティング開発チーム
事業部の取り組み
広告配信のシステムの開発・運用、マーケティングの実施
開発言語/ライブラリなど | Ruby, Python |
インフラ | AWS (EC2, AWS Batch, Lambda, S3) |
ミドルウェア | Resque |
モニタリング | CloudWatch, M/Monit |
データ分析 | Redshift, Jupyter Notebook, Zeppelin |
デプロイツール | Capistrano |
環境構築 | Ansible, CloudFormation, Docker |
CI | CircleCI |
機械学習ライブラリ | TensorFlow |
コメント
デジタルマーケティンググループには3つのチームがあり、そのうちの一つマーケティング開発チームでは、広告配信全般に関わる開発や、配信設計と結果の分析などを行っています。その目的は、「モンスターストライク」を遊んでもらうためです。
オンラインの広告配信では、どんなユーザーがどこで広告に接触し、実際にモンストで遊んだのかなどをデータを元に検証を行うことが容易なため、データから現状を把握し、細かく検証をして改善を行っています。
ゲーム運営部 解析グループ
事業部の取り組み
各種サービスの分析
インフラ | AWS (Redshift, EMR, Kinesis, S3) | |
可視化 | Zeppelin, Metabase, Redash | |
分析ツール | Python, R, Ruby |
コメント
解析グループでは、ミクシィグループの各部署が業務遂行時に発生する様々な課題を調査、分析しています。各サービスで発生する疑問を分析し、フィードバックしています。課題によっては、1時間から1ヶ月かかるものもあれば、2TB/1日のデータ量を扱うものもあります。より具体的に説明すると「正確に素早く集計をする仕組みを作り、さらにチューニングする」「分析の助けになるツールを作る」「計算結果の評価をしやすい可視化を行う」「人手がかかっている定型作業を、データを用いて自動化する」などがあります。
モンスト事業本部 ゲーム運営部 解析グループ マネージャー 石川
事業開発室 エンジニアリンググループ
事業部の取り組み
新規エンタメサービスの企画・開発
開発言語/ライブラリなど | クライアントサイド | Unity, C++ |
サーバーサイド | Ruby (Rails) , Go | |
インフラ | AWS, GCP | |
ミドルウェア | nginx, Memcached, grpc-proxy | |
データベース | MySQL, Cloud Datastore | |
モニタリング | Prometheus | |
環境構築 | Kubernetes, Ansible, Docker | |
CI | Jenkins |
コメント
私たちの部署では、“アドレナリン全開”のバトルエンターテインメントを創出し続けるために、サービスとしてゲーム作りに取り組んでいます。
「プロダクトごとに最適な技術を採用する」という文化を大事にしているため、各プロダクト、プロジェクト毎にエンジニアが最適な技術を選定しているのが特徴です。
また、現在開発中の「モバイルボール」では、Go、GCP、Kubernetesを採用しています。ゲーム開発ではまだまだ事例の少ない技術ですが、新しい技術を取り入れながらサービス開発を行うことは非常にチャレンジングでやりがいのある仕事です。
デジタルエンターテインメント事業本部 事業開発室 エンジニアリンググループ マネージャー 野田
ミクシィグループの技術スタックをサービス/事業部でまとめてみました。事業部によってはここで紹介しきれなかった技術もありますし、現在導入を検討中の技術などもあります。ミクシィグループの技術に関してもっと知りたいという方がいらっしゃいましたら、mixi-developersやTwitterで情報発信しておりますので、チェックいただけますと幸いです。
※サービスが終了したため、記事内の一部リンクを削除しました(2020/4/6)
– – – – – – – – – ※※※ - – – – – – – – –
■ pick up! ■
【良質なアウトプットノウハウについて、ミクシィのエンジニアに聞いてみた。】
【【DroidKaigi 2018】ミクシィグループのエンジニアが登壇しました】