Upgrade to Pro — share decks privately, control downloads, hide ads and more …

AWS から GCP に移行しようとして AWS に戻した話

1a9a84b423494e806339591efa57261d?s=47 yamagenii
January 14, 2022
160

AWS から GCP に移行しようとして AWS に戻した話

1a9a84b423494e806339591efa57261d?s=128

yamagenii

January 14, 2022
Tweet

Transcript

  1. AWS から GCP に移行しようとして AWS に戻した話
 2021/12/28 株式会社Voicy 


  2. ©2021 Voicy, Inc. 自己紹介
 山元亮典 (やまげん) @yamagenii
 
 - Voicy

    エンジニア部門責任者
 - バックエンドエンジニア -> データチームマネージャ -> エンジニ アリングマネージャ
 - 前職はヤフーで検索バックエンドをフルスクラッチ開発 
 
 - 好きな言語 : Rust
 - 趣味 : 漫画、タップダンス
 
 - 特徴 : 天然パーマ

  3. ©2021 Voicy, Inc. サービス紹介
 音声プラットフォームVoicy
 音声プラットフォームVoicy
 
 - 審査率5%のパーソナリティが 配信中


    - ニュースを音声で聴ける

  4. ©2021 Voicy, Inc. サービス紹介
 VoicyはtoC/toB 双方で事業展開しているのが特徴


  5. ©2021 Voicy, Inc. サービス紹介
 1年で500%以上成長、MAU250万以上のサービスに


  6. ©2021 Voicy, Inc. サービス紹介
 コアとなるプロダクト
 「Voicy」
 iOS
 Android
 「Voicy Recorder」


    iOS
 Android
 「Voicy Web」
 Angular
 「クライアント管理画面」
 Angular(PC)

  7. ©2021 Voicy, Inc. この発表の内容と対象者
 内容
 - 2020年から大きく成長することができたVoicyですが、
 タイトルからわかる通りシステム内で紆余曲折をしてきた
 - 何が起こって、どのようなことを学んだのか、


    スタートアップの現実を話せればと思います
 - テクニカルな部分は省いていて、GCP vs AWS みたいな話はしません
 
 対象者
 - スタートアップでシステム設計をしている
 - スタートアップでエンジニアをやっている
 - スタートアップでマネージャをやっている
 - プロダクトファーストなスタートアップの経営者

  8. AWS から GCP に移行しようとして AWS に 戻した話


  9. ©2021 Voicy, Inc. Voicyのプロダクト変遷
 設立 ~ 2019/02 MVP~PMFを目指して開発時期
 エンジニア規模
 -

    1~5人
 
 
 開発状況
 - MVP~PMFを目指して、開発をしていた 
 - とにかく世の中にローンチすることを優先 
 - Goの二つのAPIの書かれ方もバラバラ 

  10. ©2021 Voicy, Inc. Voicyのプロダクト変遷
 設立 ~ 2019/02 MVP~PMFを目指して開発時期
 課題
 -

    機能リリースを優先して、保守が辛い プロダクトに
 
 
 リプレイスPJの発足(2019/02)
 - アプリの体験含めて刷新
 - GCPへの移行を決意
 - Kubernetes採用を決定して、当時 GKEに軍配があがった
  11. ©2021 Voicy, Inc. Voicyのプロダクト変遷
 2019/02 ~ 2019/07 GCP移行PJ発足、VoicyRecorder移行完了
 エンジニア規模
 10人


    
 開発状況
 Voicy Recorderのリプレイスが完了。 
 バックエンドだけでなくiOS/Androidも移行完了 
 エンジニアが専任でアーキテクトに入り、保守し やすいアーキテクチャになった
 
 ここまでは順調だった
 設計思想はこちら
  12. ©2021 Voicy, Inc. Voicyのプロダクト変遷
 2019/08 ~ 2020/02 Voicy組織崩壊
 エンジニア規模
 10人

    -> 5人 (既存メンバー2人)
 (山元は新規メンバーとしてここでジョイン) 
 
 Voicy全体で離職率70%
 - リプレイスPJを経験してるメンバーは2人に 
 - バックエンドは0人
 - 新アーキテクチャのナレッジが失われた 
 
 
 ※組織の立て直し自体は勝村の記事を参考にしてください 
 https://www.fastgrow.jp/articles/voicy-katsumura
  13. ©2021 Voicy, Inc. Voicyのプロダクト変遷
 2020/03 AWSに戻す決意
 アーキテクチャ課題
 - リードしていたエンジニアが退職して、設計思想が 伝わらなかった


    - AWSとGCPを理解しないといけない状況 
 - これから入社する人が理解するのは難しい 
 - 品質の担保ができない 
 - BFF -> DBWrapper のアーキテクチャが伝わ りきらなかった
 
 AWSへのリプレイスPJの発足
 - AWS移行を決意
 - 基幹となるDBがRDSのままで、Auroraの実績 も大きかった
 - EKSの実績が増えた 

  14. ©2021 Voicy, Inc. Voicyのプロダクト変遷
 2020/04 ~ 2021/07 新しい組織で再スタート -> グロースへ


    エンジニア規模
 - 5人 -> 15人
 
 開発状況
 - 組織全体の成功体験を積むため、
 新規機能開発を最優先
 - Voicy Playerのリプレイス
 - Voicy初の課金機能搭載
 - ライブ配信機能
 - ほとんどのエンジニアにはGKEを触らせな かった
 - 一部のエンジニアでクラウド移行を実 施してGKEの撲滅へ

  15. ©2021 Voicy, Inc. Voicyのプロダクト変遷
 2020/04 ~ 2021/07 新しい組織で再スタート -> グロースへ


    エンジニア規模
 - 5人 -> 15人
 
 開発状況
 - 組織全体の成功体験を積むため、
 新規機能開発を最優先
 - Voicy Playerのリプレイス
 - Voicy初の課金機能搭載
 - ライブ配信機能
 - ほとんどのエンジニアにはGKEを触らせな かった
 - 一部のエンジニアでクラウド移行を実 施してGKEの撲滅へ
 負債で開発効率落としながらも 
 なんとかグロースへ 

  16. ©2021 Voicy, Inc. Voicyのプロダクト変遷
 2021/08 ~ 現在 
 エンジニア規模
 -

    15人 -> 20人
 
 
 開発状況
 - 機能開発のスピード感を落とさない 
 - プラットフォーム開発やプロセス改善にも リソースを使って品質コミットできる組織体 制に
 - 一部GCPが残っている機能など負 債の解消中
 移行中
 撲滅中

  17. ©2021 Voicy, Inc. タイムライン
 2019/02
 2021/12
 2021/08
 2020/03
 2020/08
 GCP移行PJ


    組織崩壊
 新しい組織で再スタート 
 片手間でAWS移行 
 負債解消
 MVP/PMF
 優先
 5人
 10人
 5人
 15人
 20人
 開発組織
 規模

  18. 学んだこと


  19. アーキテクチャに正解はない
 選択したものを正解にしていく気概が重要


  20. ©2021 Voicy, Inc. アーキテクチャのビジョンマネジメントが重要
 
 
 2019/07
 - GCP移行PJとしてVoicy Recorderの移行が完了


    - このとき開発チームが一丸になってリプレイスに取り組んでモチベーション高 く開発されていた
 - GCP移行の選択は正解だった
 
 2020/03
 - GCPからAWSへの移行を決意した
 - リードするエンジニアは組織崩壊中で退職。新しく入社したエンジニアが直面 したのはAWSとGCPのハイブリットPFだった。
 - GCPへのメリットを組織で感じることができずにGCP移行を辞めた。GCP移行 の選択は不正解となった。
 GCP移行が「正解」から「不正解」に変わった

  21. ©2021 Voicy, Inc. アーキテクチャのビジョンマネジメントが重要
 アーキテクチャは顧客、開発者のためにあり、企業やフェーズによってもあるべき 姿は変わる。それを分析してチームで正解にして気概が重要
 
 例 : Why,What,

    Howのフレームワークにあてはめて共有する
 
 - Why : なぜそれを選択したか、誰をどんな状態にしたいか、課題
 - What : 開発者や顧客に何をもたらすか、ロードマップ
 - How : その方法
 アーキテクチャに正解はない、選択したものを正解にしていく気概が重要

  22. ©2021 Voicy, Inc. アーキテクチャのビジョンマネジメントが重要
 なぜうまくいかなかったのか分析
 
 組織崩壊前のチーム
 - 一人のリードエンジニアが説明責任を果たしてリードしていて、
 PJとしては第一弾移行を完了していた


    
 組織崩壊後のチーム
 - リードエンジニアが辞めて説明責任をチームで果たせなくなった。AWS-GCPの状 態のデメリットが目立つ中でGCP移行のメリットを組織で感じられず頓挫した
 アーキテクチャに正解はない、選択したものを正解にしていく気概が重要

  23. ©2021 Voicy, Inc. なぜVoicyはAWSを選択したか
 Why
 長期
 - VoicyはtoC向けのプラットフォーム多くのユーザのトラフィックを捌けるスケーラビリティが必要 
 -

    音声インフラを作成する時に事業部が広がっていく 
 - セキュリティ面に問題がない 
 - 音声処理からメディア配信などに対応可能 
 - SoEで開発のPDCAを高速で回したいので、レジリエンス性が高い開発基盤が必要 
 - IaC管理可能
 - 採用に有利
 短期課題
 - ハイブリットクラウドは辛い、AWSはterraformで管理されている、DBの移行コストが高い 
 
 What
 - 3~5年後には1000万人単位のユーザを捌ける 
 - 組織毎にガバナンス管理できて、全体管理も可能 
 - コンテナオーケストレーションで実行コンピューティングが管理されていて柔軟なリリースにも対応できる 
 - 採用市場で人気
 - IaC管理できる
 Voicyのあるべき姿

  24. ©2021 Voicy, Inc. なぜVoicyはAWSを選択したか
 - 短期課題
 - GCP-AWSのハイブリットは辛い 
 -

    DBのGCP移行が重かった 
 - terraformがAWSで管理されていた 
 - システム面
 - ユーザスケールによるボトルネックがDBにかかると分かっていた 
 - 短期的にはRDB互換となるAuroraの実績が強かった 
 - 長期的にリソース効率の良いKVS採用を考えた時にDynamoの実績も強く、スケーラビリティ は問題ないと判断
 - CloudSpanner高性能だがゆえに高い 
 - EKSの実績も増えていて、GKEとのポータビリティ性があった 
 - AWS Orgなど事業部が広がった時の管理も用意 
 - TranscoderやOpenSearch等GCPにはないサービスがあった 
 - 組織面
 - 採用市場はAWSが強いと判断 
 - 社内のナレッジはAWSが強かった 
 やっぱりAWSだよね!(ポジショントークではないですよ)

  25. GCP移行は今の組織でも正解にできた
 
 ただし今の組織を分析して最適解を選んで
 それを貫くのが重要


  26. ©2021 Voicy, Inc. 負債解消もビジョンマネジメントが重要
 - リファクタリングを始めたらチームでやり切るマネジメントを徹底することが重要となる
 
 
 Why :

    現状の課題は何か?
 
 What : 課題を解決した結果、品質やスピードが上がるのか。
     ビジネスのポジティブ影響を見積もれるか?
 
 How : その方法
 技術的な負債の解決なども同様の分析が重要

  27. ©2021 Voicy, Inc. まとめ
 - 組織崩壊と相まってGCP移行PJが頓挫
 
 - 現在の組織を分析した結果AWSへの移行を決意
 


    - アーキテクチャに正解はない、選択したものを正解にしていく気概が重要
 
 - やっぱりAWSはいいですね!
 AWSからGCPにしようとしてAWSに戻した話

  28. ©2021 Voicy, Inc. 最後に
 Voicyでは一緒に働く仲間を募集しています
 共に音声プラットフォームのシステムを作ってみませんか?
 
 - サーバサイド、SRE、Angular、iOS、Android多岐に渡って募集中!
 -

    SREは正社員1人目の募集で、プラットフォームの方向性から一緒に作ります
 - サーバサイドエンジニアはインフラやKubernetesなども活用しながら開発しています
 - 興味ある方はTwitterにDMください!
 - @yamagenii

  29. 音声×テクノロジーでワクワクする社会をつくる