グリーインフラの組織
グリーのインフラ部は、グリーグループで運営しているゲームやWebサービスなどを横断的に支援しています。インフラ内には様々なチームがありますが、その中で事業部を支援をするチームが複数あります。
各チームはいずれも10名以下の少人数で構成されており、サービスの状況にあわせて様々な支援を行います。
- クラウド技術の選定/設計
- リリース時の負荷試験の実施及びボトルネック調査。
- 運用の効率化や自動化
- クラウド費用最適化
- 障害対応
- サービスクローズ対応
このように各チームは事業部のサービスの運営フェーズに合わせて業務を行います。もちろんサービスによって使用するクラウド (GCP, AWS)や実行環境(GKE, EKS)、サーバアプリケーション (PHP, Rails, Go)、データベース(Spanner, Aurora, Dynamo) などが異なります。
そこで、横断組織の利点を活かし支援するサービスの技術だけに囚われず、各エンジニアの技術的専門性を育む、ユニット制度というものを導入しています。
ユニットの制度
各エンジニアは、チームに所属しながらユニットという技術的専門性をもったグループに所属します。本人の希望に基づいて、任意のタイミングでユニットに所属することができます。複数に所属するエンジニアも居ます。
現在あるユニットは
- CDN/HTTPユニット
- 担当領域: CDNやWebサーバ、HTTP関連
- RDBMSユニット
- 担当領域: MySQL, Spanner
- KVSユニット
- 担当領域: Redis, Memcached, Flare, (全文検索)
- Monitoringユニット
- 業務領域: Grafana, Prometheus, その他監視サービス
- GHEユニット
- 業務領域: Github Enterprise
- Infra Platformユニット
- 業務領域: OSバージョン、DNS、NTPなど
- ネットワークユニット
- 業務領域: ネットワーク全般, BGP, クラウドのダイレクトコネクト
最近では、GKEやEKSといったk8sを多く採用していますが、Kubernetes/Docker, CI/CD, Infrastructure as Code などの技術領域についてはユニットはありません。ですが、チーム横断での情報交換会をエンジニアが自発的に行っています。
ユニットのお仕事
ユニットのお仕事は、事業部向き合いチームからお仕事が依頼される場合と、ユニットから改善の作業を行うこともあります。
事業部向き合いチームからの依頼の例としては以下のとおりです。
- 「専門知識を必要とするトラブルシュートの依頼」
- 「ミドルウェアバージョンアップに伴う、注意点の調査」
- 「新しいミドルウェア利用に伴う、運用ツールの開発や、監視設定の追加」
逆にユニットの方から能動的に改善を提案していく場合もあります。日々、主幹システムの情報を集めており、新機能導入、運用自動化、耐障害性向上、費用削減施策などを行っています。
例えば
- CDN/HTTPユニット
- CDNの新機能の導入
- キャッシュヒット率が低いサービスの設定改善
- HTTP/3導入
- RDBMSユニット
- Google Spannerのキャパシティー自動コントロールする運用ツールの開発
- Monitoring
- 自前運用していた旧モニタリングシステムのGrafana Cloud移行
- GHEユニット
- 自社ホスティングのGithub Enterpriseインスタンスの、Github Enterprise Cloudへの移行
新機能の導入先サービスの選定は、エンジニア自身が向き合いする事業部に限定されません。インフラ部で支援するサービスのうち適切なものを選定し、効果や必要性をユニットのエンジニアとして説明し導入を進めていきます。
その他直接事業に関わらないところで、各人が専門性を高める活動を行っています。
- ミドルウェアなどのソースコードリーディング
- OSSへのコントリビューション
- 各クラウドベンダー内のエンジニアとの技術的交流
- HTTPプロトコル仕様の標準化への参加
仲間を募集しています
グリー株式会社では一緒に働く仲間を募集しています。
次のポジションでは事業部の支援をしながら、ユニットに所属し技術的専門性の高めるような業務に従事できます。