CloudShift/CloudNativeArchitecture

Get Started. It's Free
or sign up with your email address
CloudShift/CloudNativeArchitecture by Mind Map: CloudShift/CloudNativeArchitecture

1. micro service architecture

1.1. サービスの分割

1.1.1. 分割の単位

1.1.1.1. なぜ知りたいか?

1.1.1.1.1. マイクロサービスとして自動処理をどのように構築するかを知りたいため

1.1.1.2. 何を調査するか?

1.1.1.2.1. 自動処理のあるべきサービス単位の調査

1.1.1.3. 含まれる要素

1.1.1.3.1. システム操作のリスト

1.1.1.3.2. 分割の視点の選択

1.1.1.3.3. 分割の障害

1.1.1.3.4. サービスAPI定義

1.2. トランザクション管理(サービス間データ整合性/インタフェース)

1.2.1. サーガを利用したトランザクション管理

1.2.1.1. なぜ知りたいか?

1.2.1.1.1. サービス間のデータ整合性をどうするか知りたい

1.2.1.2. 何を調査するか?

1.2.1.2.1. sagaパターン

1.2.1.3. 含まれる要素

1.2.1.3.1. サービス間通信

1.2.1.3.2. 形式

1.2.1.3.3. 分離性欠如へのカウンターメジャー(異常(LostUpdate,DirtyRead))

1.2.2. ストレージ

1.2.2.1. なぜ知りたいか?

1.2.2.1.1. 処理の特性に合ったデータの持たせ方を知りたいため

1.2.2.2. 何を調査するか?

1.2.2.2.1. それぞれのストレージ技術を知る

1.2.2.2.2. 自動処理の

1.2.2.2.3. どういった可能性があるか、どういう前提だったら

1.2.2.3. 含まれる要素

1.2.2.3.1. 種類

1.2.2.3.2. ストレージを分割するか?

1.3. ビジネスロジック設計

1.3.1. なぜ知りたいか?

1.3.1.1. 概念モデルと関連してどのようにすれば理解しやすいコードを作れるかを評価したいため

1.3.2. どういうPoCか?

1.3.3. 含まれる要素

1.3.3.1. DDD

1.3.3.1.1. アグリゲート

1.3.3.1.2. ドメインイベント

1.3.3.1.3. ドメインモデル

1.3.3.1.4. イベントソーシング

1.3.3.2. 手続き型

1.3.3.2.1. トランザクショナルスクリプト

1.4. CI/CD

1.4.1. デプロイ

1.4.1.1. PoCについて

1.4.1.1.1. サーバーレス論点に包含できるのでやらない

1.4.1.2. パターン

1.4.1.2.1. 複数サービス同居

1.4.1.2.2. シングルサービスのホスティング

1.4.1.3. ホスティング方法

1.4.1.3.1. オーケストレーター(VM/コンテナ)

1.4.1.3.2. サーバレス

1.4.2. テスト容易性(自動テスト)

1.4.2.1. なぜ知りたいか?

1.4.2.1.1. マイクロサービスとしての自動テストの組み方の肌感を持ちたいため

1.4.2.1.2. 優先度低

1.4.2.2. 含まれる要素

1.4.2.2.1. マイクロサービスとしての固有論点

1.5. 運用

1.5.1. 監視

1.5.1.1. なぜ知りたいか?

1.5.1.1.1. マイクロサービスでは管理対象が膨大になるため、通常のクラウドサービスと比較して効率的な監視方法を適用する必要がある

1.5.1.1.2. 優先度低

1.5.1.2. 含まれる要素

1.5.1.2.1. ロギング

1.5.1.2.2. ヘルスチェック

1.5.1.2.3. メトリクス

1.6. 移行方法/リファクタリング

1.6.1. サービス/モノリス間データ整合性

1.6.2. 認証/認可処理

1.6.3. やりかた

1.6.3.1. ストラングラー(徐々に移行)

1.6.3.1.1. 新機能開発をマイクロサービスとする戦略

1.6.3.1.2. フロントエンドを切り離す戦略

1.6.3.1.3. 既存機能を徐々に切り出す戦略

2. Sereverless

2.1. マイクロサービスに関係する部分は除く(モノリシックでもやる部分の整理)

2.2. マルチテナント化

2.2.1. なぜ

2.2.1.1. サーバレス/コンテナでは柔軟な自動スケールがメリットとなるため、マルチテナント化が必須

2.2.2. 要素

2.2.2.1. テナントIDの識別/管理方法

2.2.2.2. ユーザーID/テナントIDの紐づけ(Loko基盤で可能?)

2.2.3. 進め方

2.2.3.1. 一般論

2.2.3.1.1. 資料をあさる

2.2.3.2. DIVAとしての進め方

2.2.3.2.1. 他のサービス(IGA/EIGSなど)でも検討していると思われるので話を聞いてみる

2.2.3.3. 自動処理としての進め方

2.2.3.3.1. 詳しい人(今井さん?)に伺う

2.2.3.3.2. ストレージをOracleで固定してどう実現するか

2.3. ステートレス化

2.3.1. なぜ

2.3.1.1. コンテナ/サーバレスでは常時起動ではなく、インスタンスを使い捨てにすることがVM/オンプレと異なる

2.3.2. これはいらない