今年も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をしっかりしておいたほうがいい