Slide 1

Slide 1 text

©MIXI MIXI での HCP Terraform 活⽤事例 株式会社 MIXI 開発本部 CTO 室 SRE G 濱野悠介 TED CONNECT 2024

Slide 2

Slide 2 text

©MIXI 会社紹介

Slide 3

Slide 3 text

©MIXI エモーションと コミュニケーションで 「心もつながる」場と機会を 創造し続けます。 MIXI GROUPは、 ただ「つながればいい」という効率的な機能の提供ではなく、 歓喜や興奮、温かな思い、幸せ、居心地の良さの共有を通じて、 その先に、もっと深くて濃く豊かな、心のつながりを生み出すような、 サービスの開発・提供を目指しています。 現在、スポーツ・ライフスタイル・デジタルエンターテインメント の3つの領域で事業を展開しており、 それぞれの主な事業内容は右の通りです。 また、近年の投資活動の拡大と重要性を勘案し、 FY2023からはスタートアップやファンド出資等の投資活動を事業化しました。 スポーツ事業 プロスポーツチーム運営および 公営競技ビジネスの推進 ライフスタイル事業 インターネットを活用し、 人々の生活に密着したサービスの提供 デジタルエンターテインメント事業 スマホゲームを中心としたゲームの提供 MIXI GROUPの事業領域 
 3つの領域で “「心もつながる」 場と機会” を創造する事業を推進

Slide 4

Slide 4 text

4 ©MIXI エンジニアリング組織体制

Slide 5

Slide 5 text

5 ©MIXI アジェンダ ● Infrastructure as Code (IaC) 概要と MIXI における IaC の実情 ● HCP Terraform の活⽤ ○ 導⼊検討 ○ 活⽤⽅針 ○ 成果 ○ 今後の展望

Slide 6

Slide 6 text

6 ©MIXI Infrastructure as Code (IaC) とは IaC は「ソフトウェア開発のプラクティスをインフラの オートメーションに活かすアプローチ 」です ソフトウェア開発のプラクティスにはバージョン管理システム による構成管理やテストとデプロイの⾃動化等が挙げられます インフラを単にコード化するだけに留まらずこれらソフトウェ ア開発のプラクティスをインフラに適⽤させることが⼤事です Infrastructure as Code ―クラウドにおけるサーバ管理の原則とプラクティス, O'reilly japan, Kief Morris 著,宮下 剛輔 監訳,⻑尾 ⾼弘 訳

Slide 7

Slide 7 text

©MIXI MIXI における IaC の実情

Slide 8

Slide 8 text

©MIXI MIXI では技術選定を含めたプロダクト開発における意思決定は 各事業部の開発チームがオーナーシップを持って⾏う⽂化がある IaC も例外ではない

Slide 9

Slide 9 text

©MIXI 開発本部としては IaC を積極的に適⽤してもらい、 IaC の恩恵を享受しながらプロダクト開発に取り組んでほしい

Slide 10

Slide 10 text

10 ©MIXI IaC 適⽤の課題 ● IaC を適⽤して運⽤に乗せるためには⼀定のスキルが必要でありそういったスキルを持った エンジニアが不⾜しているチームは適⽤に踏み切れない ● IaC の CI/CD ワークフローにて共通利⽤できる処理があったとしても各開発チームがイチか らワークフローを構築しており開発⽣産性が⾼いとは⾔えない ● セキュリティ的にもよろしくない運⽤/設定をしている場合がある ○ クラウド環境へのプロビジョニングに利⽤するクレデンシャルの扱い ○ セキュリティリスクがある設定でリソースをプロビジョニングしてしまう

Slide 11

Slide 11 text

©MIXI HCP Terraform 活⽤への道

Slide 12

Slide 12 text

12 ©MIXI 導⼊検討 ● Terraform は IaC を実現するためのデファクトスタンダードツールであり MIXI でも多くの チームで利⽤されていた ● Terraform における IaC 適⽤の課題を解決するアプローチとして HCP Terraform が挙がった ○ Terraform による IaC を実現/運⽤するための各種機能が揃っていること ○ SaaS 版が提供されていること ○ Terraform の開発元である HashiCorp 社が提供し、サポート対応があること

Slide 13

Slide 13 text

©MIXI 2023/06 導入検討開始 HashiCorp 社にコンタクト 2023/08 PoC 開始 抱えていた課題を解決できるか開発本部内で 検証を実施した HCP Terraform に関心があるプロダクト開発チー ムにお願いして PoC 利用してもらい、実際に本番 環境の一部のリソースを HCP Terraform で管理し てもらう等も実施した 2023/09 PoC 評価 抱えていた課題を一定解決できることが分 かったため導入を決定 PoC 期間中に洗い出された機能改善要望 等を HashiCorp 社にフィードバック 2023/10 正式契約 販売代理店として TED 様を紹介頂き、TED 様を通じて契約 導入後の活動や成果は別ページにて紹介

Slide 14

Slide 14 text

©MIXI HCP Terraform 活⽤⽅針

Slide 15

Slide 15 text

©MIXI 開発チームが IaC を実践する上で HCP Terraform の利⽤は 強制せずにあくまで選択肢の1つとして提供を開始

Slide 16

Slide 16 text

©MIXI IaC を実践している/実践しようとしている開発チームが HCP Terraform をすぐに活⽤できる状態を⽬指した

Slide 17

Slide 17 text

17 ©MIXI 社内マーケティング活動 ● 社内ドキュメントに概要、メリット、利⽤⽅法を記載して公開する ● 社内のエンジニアリング共有会で宣伝する ● HCP Terraform を利⽤しているプロダクト開発メンバーに適⽤事例を社内に公開して もらった ● 講師として TED 様を招いて HCP Terraform 勉強会を開催

Slide 18

Slide 18 text

18 ©MIXI 組織管理者と利⽤者の役割分担 ● 組織管理者 ○ HCP Terraform の組織全体に関わる設定の管理 ■ SSO ■ Audit ログの取得 ■ Plan 契約周り ■ etc.. ○ 特定 Project に対する Terraform 実⾏環境(Workspace)管理権限を利⽤者へ付与 ○ Terraform 全般のサポート ● 利⽤者 ○ Workspace の管理 ○ Terraform コード管理

Slide 19

Slide 19 text

19 ©MIXI 組織管理者と利⽤者の役割分担 開発者体験を重要視して利⽤者に強めの権限を与えつつ 組織全体に関わる設定は組織管理者のみ設定可能とするように権限設計を実施 ● 組織管理者 ○ HCP Terraform の組織全体に関わる設定の管理 ■ SSO ■ Audit ログの取得 ■ Plan 契約周り ■ etc.. ○ 特定 Project に対する Terraform 実⾏環境(Workspace)管理権限を利⽤者へ付与 ○ Terraform 全般のサポート ● 利⽤者 ○ Workspace の管理 ○ Terraform コード管理

Slide 20

Slide 20 text

©MIXI

Slide 21

Slide 21 text

©MIXI HCP Terraform 導⼊の成果

Slide 22

Slide 22 text

22 ©MIXI VCS 連携による CI/CD ワークフロー構築の簡略化 「PR 作成をトリガーに plan を実⾏して差分を確認、plan 内容が意図したものであれば PR を マージして apply を実⾏する」といった⼀般的な Terraform の CI/CD ワークフローを VCS 連携 で簡単に構築できる VCS 連携以外にも API, CLI での操作や Run Tasks による plan と apply 前後への 任意処理組み込みで独⾃のワークフローを構築することも可能

Slide 23

Slide 23 text

23 ©MIXI Policy as Code によるセキュリティ向上 ● Sentinel もしくは Open Policy Agent を⽤いた Policy が設定可能 ● Policy から逸脱した設定でリソースをプロビジョニングしようとしていないかを apply 前にチェックできる ● MIXI では Policy Registry で提供されている Policy を利⽤して advisory (warning のみ) によるチェックを全 workspace に対して⾏っている

Slide 24

Slide 24 text

©MIXI HCP Terraform 導⼊により 開発⽣産性とセキュリティの向上を実現できた

Slide 25

Slide 25 text

25 ©MIXI 今後の展望 ● Policy チェック項⽬の拡充 ○ Policy Registry はまだ発展途上ということもあり公開されている Policy が限定的 ○ 必要な Policy の洗い出しと実装を今後進めていく ● Private module の活⽤ ○ 社内の利⽤に特化した module ○ 組織を跨いだとしても共通的に利⽤できる構成を module として⽤意することで、開発⽣産性向上に寄与する

Slide 26

Slide 26 text

©MIXI まとめ

Slide 27

Slide 27 text

27 ©MIXI まとめ ● MIXI における IaC の実情 ● HCP Terraform 導⼊までの経緯 ● HCP Terraform 導⼊による成果と今後の展望

Slide 28

Slide 28 text

©MIXI 最後に

Slide 29

Slide 29 text

©MIXI We are hiring!! 採用情報 https://mixigroup-recruit.mixi.co.jp/ MIXI 採用 \ 様々なポジションで積極採用中 /

Slide 30

Slide 30 text

©MIXI 今後も MIXI は東京エレクトロンデバイス様とのパートナーシップ を通じてより優れたプロダクトの開発を推進していきます

Slide 31

Slide 31 text

©MIXI