紙一重の積み重ね

アラフォーのエンジニアがなれる最高の自分を目指して、学んだことをこつこつ情報発信するブログです。

【デブサミ2019レポート】新技術導入を成功させる組織のつくりかた~spanner,GKE導入の実体験から得たこと~ #devsumi

f:id:yokoyantech:20190219205153p:plain

はじめに

Developers Summit 2019初日のセミナーレポートです。 走り書きの部分もありますので、内容に不備がありましたらご了承ください。

デブサミ2019のテーマ

SHARE YOUR FUN! 新しい技術や課題解決をシェアしよう!

event.shoeisha.jp

以下、セミナーレポートです。

テーマ

新技術導入を成功させる組織のつくりかた~spanner,GKE導入の実体験から得たこと~

※本セッションは写真撮影禁止でした。

講師

コロプラ 廣本洋一氏

コロプラ紹介

  • 白猫プロジェクトなど作ってる会社
  • 機能別組織
    • 2年前から事業部制から変化
      • エンジニアのノウハウ共有の促進
      • 事業に固定化されていた人の流動性を高める
  • エンジニアリングから見た特徴
    • これまでに出したものと近いゲームをあまり開発しない
    • 基本的にサーバのメンテナンスしない
      • メンテがあるとユーザが減る
    • 他プラットフォームに移行できなくなるようなマネージド・サービスは使わない
  • 技術スタック
    • PHP Zendから、
      • Laravelへ
        • メリット
          • ライブラリ最適化
          • 不要機能の棚卸し
          • トレンドな機能が使えた
        • デメリット
          • 過去タイトルとの2重管理
    • MySQL on VMから、
      • Google Cloud Spannerへ
        • メリット
          • スケールアウト・ダウンのオペレーションコスト減
            • 1分くらいになった
          • 高い可用性
        • デメリット
          • ノウハウがあまりない
          • ローカルエミュレータがない
            • ローカル開発もお金かかる
          • メトリクスが余り見れない
    • VMから、
      • GKEへ
        • メリット
          • オートヒール
          • オートスケール
          • 増減のオペレーション楽
        • デメリット
          • デプロイ時間の増加

コロプラが抱えていた問題点

application

  • 使っているFWが古い
    • Support切れそう
  • 新しいタイトルは最新のタイトルからコードをコピー
  • ライブラリの作りが甘い。各タイトルで変更が入ってる
    • それはライブラリとは呼べないのでは

運用

  • メンテナンスしない、はかなり大変
    • 特にDB...
      • MySQLが動いているVMのメンテが来たら、オンラインでDB入れ替え
      • DBのスケールアウト、シャーディングもメンテなしで実施
  • DBのVM障害によるダウンはちょこちょこ発生
  • jsoxなど
    • ライブラリが独自進化してる
    • 課金周りの変更が各タイトルでやってる

新しい取り組みのきっかけ

  • ついにFWのサポートが切れた
    • やるしかない
  • 言語は社内に掛ける人がたくさんいるPHPを選択
    • Laravel採用
    • ライブラリ問題も一緒に解決しよう
      • 無事に新タイトルローンチ
        • 同じ言語を選定したことでインフラ構成などの変更が局所化できた
  • GCPへの移行
    • 全タイトルで移行決定
    • CGP
      • live migrationをはじめ高いテクノロジーを使うことが大きな理由
  • Spannerの発表
    • DB含めノーメンテ課題解決はこれしか無い!
    • 分散型KVSは考えなかった
      • SQL便利
      • MySQLのマネージドサービスだと1クラスタでは完結しない上にメンテがある

チーム結成

  • サーバ基盤チーム5名
    • 取締役に相談
  • 導入ターゲット
    • 開発中のゲームタイトル
  • 増員
    • 運用ツールなどの開発に影響する部分の準備や、負荷試験
      • 人が足りない!
        • 3名追加

GKEもやりたい

  • Spannerの導入はほぼ完了
    • 欲が出た
      • GKE試せないだろうか
        • やってみた
          • 部下からひげ部長に強引にやらされた的な風評被害にあう
            • 笑い話にはなった
            • 自分の立場は考えて発言しないといけない事案
          • 無事ローンチ

新技術導入の壁

既存の仕事で一杯で、新技術に取り組む人がいない

  • R&D的な部署はない
  • 既存の仕事から人を引っ張ってくるか、新しく採用するか
    • エンジニアが余ってる会社は少ないのでは!?
  • 既存から引っ張ってくる場合は、ケアが必要
    • 情熱をもって説明する
  • 未来への投資は足元の業務に影響する
    • ただし、やらないと未来の足元はもっと悪くなる(はず)
  • 新技術に取り組みたい人はアピールするといいかも

新技術に挑戦する人がいない

  • 素養のある人は絶対いる
  • エンジニア5人いれば1人はいるはず
  • 経験ないけど興味ある若い人とかおすすめ
  • 本当にいなかったら、採用頑張る

短いスケジュール

  • 短すぎるのは論外
  • 間に合うかどうかはマネジメントによる部分も大きい
  • 本番に必要な機能を優先順位として潰していく
    • いつか使う系はあとで。
  • それでも間に合わなければ調整

本番導入での障害

  • Serviceがダウンするかも
    • 何かしら不測の事態は起きる
  • DBが止まることもある
    • 諦める、は絶対ダメ
    • 前進あるのみ
      • コードを修正してひたすらデプロイ

オーバーエンジニアリングとの戦い

  • エンジニアはやりたがる
  • 期日、コスト、リスクの大きさ、確率など考慮
    • ときにはやらない選択肢も大事
  • 業務にのめり込むと意外なところでハマる
  • スケジュールがあると抑制しやすい問題

新技術導入から得た気付き

若い人にチャレンジしてもらう

  • 学生時代にITを学んだ新卒は優秀
  • 流行りの技術を学んでいるケースがお多い
  • チャレンジして一気にシニア層になるかのうせいがある
  • 勢いがある
    • 一緒にいると気づきがある
    • 活気づく
  • 経験者だけでやろうとしていませんか?
    • 未来を見ると、経験者だけだと弱くなる
    • みんな老いる

事業における課題から選定する

  • 興味だけで選定すると泣きを見る
  • Productionで使うときは事業課題にフィットしている物を選ぶべき
  • 基準は
    • 文化
      • 等色々ある

小さい変化を積み重ねる

  • FW変更がきっかけで色々やることになった
  • 成果を確実に出すことで、大きな変化への不安を減らす
    • 上司・役員の不安の払拭にもなる

最終目標を常に共有

  • エンジニアリングとしては面白いところ
    • 不安・迷いも出てくる
  • 最終的にどうしたいか、雑談レベルでも定期的に共有する

足元課題に注力しすぎて、未来課題をないがしろにしない

  • エンジニアが余ってる会社はあまりない
  • 組織を作る人は足元を見がち
  • 勇気を持って慎重に人を動かす

セッションのまとめ

  • 若い人に新しいことにチャレンジしてもらう
  • 事業における課題からテクノロジーを選定しよう
  • 小さい変化を積み重ねよう
  • 最終目標を常に共有しよう
  • 足元の課題に注力しすぎない

今後やりたいこと

  • マイクロサービス化
    • スピードアップ、コストダウン
    • 再利用性の高さ
  • やらなくて良いことを増やす
    • 長く運用したタイトルが多く、定常的にやることが多い
  • ゲームSREをしっかりやれる会社にしたい
    • GoogleのCREによるワークショップを受けている(アジア圏初)

まとめ

「ひげロン毛メガネのポエムを45分聞いていただいてすみません!」とのことでしたが、とても楽しかったです。

写真撮影禁止のセッションでしたが、コロプラとして社内の話をするのは稀だそうで、炎上リスクにビビってしまったwとのことでした。 それだけに生々しい話が多く、実体験から得る学びはとても多いなと感じました。自分の組織でも参考にしたいと思います!