御成門プログラマーの技術日記

Microsoft AzureやAngularなどの技術情報を発信します

Developers Summit 2020 セッション参加メモ「楽天がモノリス→マイクロサービス & オンプレ→クラウドで経験した光と闇」

今年もDevelopers Summit 2020に参加してきたので参加したセッションのメモを備忘録的に残しておこうと思います。 event.shoeisha.jp

講演資料など全体的な情報はここでまとめてくれています。 codezine.jp

発表者の仕事

  • 楽天の多くあるサービスのうち、横断的なサービスを開発している

旧環境はどういう風なストラクチャで動いているか

  • 旧環境は生まれてから11年目で現在も稼働中。
  • IaaSを使っていて、画像データ保存の部分は実機(オンプレ)を使っている

オンプレミスからクラウドに移したときにどういうふうに苦しんだのか

ネットワークの問題

  • IaaS部分をAzureに移し替えた

    • Azureから外にでるときに課金される仕組みだった→CDNを介する仕組みに変えた
  • オンプレから移行するときに注意すること

    • 課金の仕組みをしっかり理解しておくこと
    • Architecuteはシンプルに保
    • Cacheは効率的に

DBの問題

  • Azure MySQLは予告なしに中断するのがネックで自社のMySQLを使用している
    • 計画メンテナンスの通知がいかない
    • メンテナンスWindowsがない
    • DBも落ちるもの前提で
    • 前段にMessagingの仕組みとか入れるといい

Data Transfer

  • MSではOfflineでデータ転送できる
  • ただしメタデータの変換をかまさなくてはいけないという課題があったため、原始的に移行を行っている

  • Online Data transfer:Azure Stack Edge

    • Edge側である程度データを処理してからAzureに転送する
    • EdgeからFunctionsとかも動かせる
  • datatranferがあるようなアプリケーションでは単純計算では動かないので注意

モノリスからマイクロサービスに移したときの注意

なぜマイクロサービス

  • それぞれのFunctionでリクエストが違う

    • モノリスだと全部一緒にマックスのスペックまであげないといけない
  • テスト工数の削減
    →再テストは変更したサービスだけ確認すればいいから

  • トラブルの範囲を最小限にできる

  • 起動するときに早い
    それぞれが独立したコードなのでコード量の総数が少ない
  • 開発の独立性

  • まとめ

    • マイクロサービスには絶対Service Meshを入れたほうがいい
    • ちゃんとObservabilityをしっかりしておいたほうがいい