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

AWSにおけるモダンアプリケーション開発のベストプラクティス /best practices for modern application development on aws

Atsushi Fukui
September 11, 2023

AWSにおけるモダンアプリケーション開発のベストプラクティス /best practices for modern application development on aws

AWSにおけるモダンアプリケーション開発のベストプラクティス

Atsushi Fukui

September 11, 2023
Tweet

More Decks by Atsushi Fukui

Other Decks in Technology

Transcript

  1. © 2023 Amazon Web Services, Inc. or its Affiliates.
    福井 厚 Atsushi Fukui
    シニアソリューションアーキテクト
    Developerスペシャリスト - DevAx
    アマゾンウェブサービスジャパン合同会社
    AWSにおける
    モダンアプリケーション開発
    ベストプラクティス
    2023/04/17

    View full-size slide

  2. © 2023, Amazon Web Services, Inc. or its Affiliates.
    ⾃⼰紹介
    v 名前
    v 福井 厚(ふくい あつし)twitter: afukui@
    v 所属
    v アマゾン ウェブ サービス ジャパン合同会社
    v シニアソリューションアーキテクト
    v Developer スペシャリスト - DevAx
    v 関⼼領域
    v ソフトウェア アーキテクチャ、オブジェクト指向設計、アジャイル開発
    v 好きなAWSサービス
    v サーバーレステクノロジー全般、 AWS Code シリーズ

    View full-size slide

  3. © 2023, Amazon Web Services, Inc. or its Affiliates.
    Agenda
    o なぜクラウドネイティブなモダンアプリケーションが求められているのか
    o 内製化、バイモーダルな組織への移⾏
    o クラウドネイティブなモダンアプリケーションの特⻑
    o モダンアプリケーション開発のベストプラクティス
    o モダンアプリケーションへの移⾏
    o まとめ

    View full-size slide

  4. © 2023, Amazon Web Services, Inc. or its Affiliates.
    7割
    33 年
    企業を取り巻く環境の変化
    1964 年 ⽼朽システムが、DXの⾜かせ
    になっていると感じている
    S&P 500 の企業の平均寿命
    12 年
    2027 年
    出典: Innosight 「2018 Corporate Longevity Forecast」 出典:経済産業省 「DX レポート」
    https://www.meti.go.jp/press/2018/09/20180907010/20180907010-2.pdf
    レガシーが⾜かせ

    View full-size slide

  5. © 2023, Amazon Web Services, Inc. or its Affiliates.
    書店︖ タクシー︖ DVD︖
    業界の再定義
    ホテル︖
    気分や⽬的に合わせた
    宿泊体験
    不安、⾯倒のない
    タクシー移動
    いつでもどこでも
    娯楽を提供
    世界最⼤の
    宿泊サービス提供
    世界最⼤規模の配⾞事業
    世界有数の
    エンターテイメント
    世界最⼤規模の EC で
    品揃え・低価格・利便性を提供
    Amazon Account を使⽤し⾳
    楽・映画等のサービス提供

    View full-size slide

  6. © 2023, Amazon Web Services, Inc. or its Affiliates.


    https://www.economist.com/weeklyedition/2015-08-0
    “…innovation is now recognized as the
    single most important ingredient in
    any modern economy…”
    イノベーション こそが近代経済において
    最も重要な要素と考えられている。
    競合よりも早く、新しい波を
    創っていくことが重要

    View full-size slide

  7. © 2023, Amazon Web Services, Inc. or its Affiliates.
    イノベーションがビジネスを進化させる
    新たなマーケット
    新たな顧客価値
    New economics
    新たなデジタル製品とサービス

    View full-size slide

  8. © 2023, Amazon Web Services, Inc. or its Affiliates.
    9
    競合への優位性を保つためには、ビジネスは可能な限り
    迅速でコスト効率良くイノベーションを起こさなければならない
    フィードバック
    アイデア
    実験
    Innovation
    Flywheel
    モジュラーアーキテクチャ
    より⾼速なリリースサイクル
    より⼩さな単位、⼩さなリスク
    低コストの変更
    データ駆動の洞察⼒
    インクリメンタルなリリース
    低コストの変更
    ITへの影響
    ITへの影響
    ITへの影響

    View full-size slide

  9. © 2023, Amazon Web Services, Inc. or its Affiliates.
    なぜモダン化するのか?
    顧客満⾜ 市場への迅速
    な投⼊
    ビジネス
    リスクの低減
    収⽀改善 業績向上
    ü パーソナライズ
    ü スケーラビリテ
    ィーの改善
    ü 反応の速さ
    ü 従業員の⽣産性
    ü ビジネスのアジリ
    ティーとスピード
    ü 実験コストの削減
    ü 硬いセキュリティ
    ü 弾⼒性の改善
    ü コスト削減
    ü ⾃動化
    ü 無駄の削減
    ü イノベーション
    ü グローバル化
    ü 新規市場の拡⼤

    View full-size slide

  10. © 2023, Amazon Web Services, Inc. or its Affiliates.
    バイモーダル
    バイモーダルとは、2 つの異なる組織形態を企業内に取り⼊れること
    モード1 は、より予測可能でよく理解されている領域向けに最適化されています。
    これは、従来の環境をデジタル世界に適した状態に刷新しながら、既知のものを活⽤
    することに重点を置いています。
    モード2 は探索的であり、新しい問題を解決するために実験し、不確実性の領域に最
    適化されています。これらのイニシアチブは、多くの場合、短い反復を含むプロセス
    中にテストおよび適応される仮説から始まり、実⽤最⼩限の製品 (MVP) アプローチ
    を 採⽤する可能性があります。
    どちらのモードも、価値を⽣み出し、変化を推進するために不可⽋です。モード1と
    モード2を組み合わせることが、企業のDXにおいて重要な役割を果たします。
    Gartner IT Glossary “Bimodal” https://www.gartner.com/en/information-
    technology/glossary/bimodal

    View full-size slide

  11. © 2023, Amazon Web Services, Inc. or its Affiliates.
    バイモーダル
    モード1 モード2
    守りのIT 攻めのIT
    安定性 スピード

    View full-size slide

  12. © 2023, Amazon Web Services, Inc. or its Affiliates.
    バイモーダル
    モード1 モード2
    IT導⼊理由は効率化による
    コスト削減
    探索型
    トップが決定したことを
    統率⼒を持って実⾏
    ボトムからの繰り返し探索で
    結果を出す
    予測可能型
    IT導⼊理由は差別化による
    利益拡⼤

    View full-size slide

  13. © 2023, Amazon Web Services, Inc. or its Affiliates.
    バイモーダル
    モード1 モード2
    ネクタイ、スーツ、古臭い
    遅い、頭かたい
    茶髪、ちゃらちゃらしてる
    責任感ない︖
    互いの印象

    View full-size slide

  14. © 2023, Amazon Web Services, Inc. or its Affiliates.
    ガーディアンの重要性
    モード1 モード2
    ネクタイ、スーツ、古臭い
    遅い、頭かたい
    茶髪、ちゃらちゃらしてる
    責任感ない︖
    互いの印象
    ガーディアン 双⽅に敬意をはらいつつ
    間に⼊り調整を⾏う

    View full-size slide

  15. © 2023, Amazon Web Services, Inc. or its Affiliates.
    バイモーダル
    モード1
    • ウォーターフォール
    • ⼗分な検討を経て実施
    • アプリとインフラチーム
    • 利⽤費: 確保型
    • システム品質: それぞれに確保
    モード2
    • アジャイル
    • Try & Error
    • アプリとインフラの垣根がない
    • 利⽤費: 実績ベース
    • システム品質: ⼀定レベルを担保
    計画・概要設計 詳細設計 開発 …


    実プロジェクトベースのPoC
    実践しながら調整していく

    計 … …
    次の新しいことへ

    View full-size slide

  16. © 2023, Amazon Web Services, Inc. or its Affiliates.
    バイモーダル
    モード1 モード2
    システム特性 SoR (System of Record) SoE (System of Engagement)
    システム要件 正確性、安全性、堅牢性 迅速性、柔軟性、スケール
    開発⼿法 ウォーターフォール型 アジャイル型
    規模 ⼤規模、⻑期 ⼩さく始めて、⼤きく成⻑
    経営的視点 効率性、ROI 新規性、⼤きなリターン
    利⽤費⽤ 確保型 変動型、実績ベース
    マインド 失敗しないこと 早めに失敗して、成⻑すること
    評価 減点⽅式 加点⽅式
    業務 予測可能 未知の探索
    運⽤者 IT部⾨が集中管理 ユーザー部⾨が分散管理
    事業ループ PDCAループ (plan, do, check, act)
    OODAループ (observe, orient, decide,
    act)
    リリースサイクル ⽉次、年次 ⽇次、週次
    プロダクト
    万能の製品や完全な製品
    (が期待される)
    MVP (Minimum Viable Product)
    EVP (Exceptional Viable Product)

    View full-size slide

  17. © 2023, Amazon Web Services, Inc. or its Affiliates.
    バイモーダル組織の構築と進化
    権限委譲
    • CIO/CTO を設け、
    権限委譲して少数
    精鋭チームを構成
    する
    バイモーダルの導⼊
    • 早期に成果を得ら
    れそうなプロダク
    トにモード2を適
    ⽤する
    モダナイゼーション
    • 変化に柔軟に対応
    するためクラウド
    に移⾏し早期に
    ⼩さな成功体験
    ( MVP ) を得る
    モード2の領域を拡⼤
    • 新サービスにモード
    2を適⽤、次第に
    モード1を取り込ん
    でいき グラデーショ
    ン組織化
    モード1とモード2
    の垣根をなくす
    • モード間を API や
    イベント駆動でつ
    なぎ 疎結合でシー
    ムレス化

    View full-size slide

  18. © 2023, Amazon Web Services, Inc. or its Affiliates.
    クラウドネイティブなモダンアプリケーションとは
    o イノベーションによって競争的差別化を作り出すためにクラウドが
    提供する様々なサービスを利⽤して
    o セキュリティー担保しガバナンスや統制を保ちつつも
    o 素早く、頻繁に機能をリリースすることが可能で
    o スケーラビリティーや弾⼒性、可⽤性に優れ
    o 疎結合でイベント駆動なアーキテクチャを持ち
    o 観測性、障害対応性に優れている

    View full-size slide

  19. © 2023, Amazon Web Services, Inc. or its Affiliates.
    Secure Resilient Elastic
    Modular Automated Interoperable
    モダンアプリケーションの能⼒

    View full-size slide

  20. © 2023, Amazon Web Services, Inc. or its Affiliates.
    モダンアプリケーション開発のベストプラクティス
    ⎕ アプリケーションのライフサイクル全体に渡ってコンプライアンス
    とセキュリティを構築する
    ⎕ アプリケーションの構造をマイクロサービスの集まりにする
    ⎕ 可能な限りサーバーレスの技術で構築する
    ⎕ アプリケーションのモデリングとインフラにコードを利⽤する
    ⎕ CI/CDを利⽤して⾼品質な機能を迅速にリリースする
    ⎕ モニタリングによってアプリケーションの振る舞いの洞察を得る

    View full-size slide

  21. © 2023, Amazon Web Services, Inc. or its Affiliates.
    アプリケーションのライフサイクル全体に渡ってコンプラ
    イアンスとセキュリティを構築する

    View full-size slide

  22. © 2023, Amazon Web Services, Inc. or its Affiliates.
    アプリケーションのライフサイクル全体に渡ってコンプライアンスとセキュリティを構築する
    ライフサイクルをセキュアにすることでイノベーションの速
    度を落とすことなく脅威に対応
    Authenticate Authorize Audit & Govern Validate
    強⼒なアクセス制御で認
    証されていないアクセス
    を防ぐ
    柔軟なポリシーを使⽤し
    てロールベースのアクセ
    ス制御を実装する
    アプリケーションの振る
    舞いを評価し、コンプラ
    イアンス要件に従ってい
    ることを確認する
    各ステップを検証し、ソ
    リューションが意図した
    とおりに機能することを
    確認する

    View full-size slide

  23. © 2023, Amazon Web Services, Inc. or its Affiliates.
    アプリケーションのライフサイクル全体に渡ってコンプライアンスとセキュリティを構築する
    イノベーションの速度を下げずにセキュリティを担保
    ⾃動化された、継続的な セキュリティ評価

    View full-size slide

  24. © 2023, Amazon Web Services, Inc. or its Affiliates.
    シークレット検出
    漏洩防止
    セキュアなコーディングプラクティス
    動的コード解析
    脆弱性テスト
    ペネトレーションテスト
    静的コード解析
    使用するライブラリの
    コンプライアンス
    コンプライアンスチェック
    環境設定
    秘匿情報と鍵の管理
    セキュアなネットワーク設計
    Well-Architected
    アーキテクチャのガードレール
    コンプライアンス
    脆弱性評価
    シークレット管理
    セキュリティ監視の有効化
    コンプライアンスチェックの
    有効化
    脆弱性評価
    ペネトレーションテスト
    コンプライアンスチェック
    行動異常
    脅威モデリング

    View full-size slide

  25. © 2023, Amazon Web Services, Inc. or its Affiliates.
    AWS Identity and
    Access Management
    (IAM)
    AWS Single Sign-On
    AWS Organizations
    AWS Directory Service
    Amazon Cognito
    AWS Resource Access
    Manager
    AWS Security Hub
    Amazon GuardDuty
    Amazon Inspector
    Amazon CloudWatch
    AWS Config
    AWS CloudTrail
    VPC Flow Logs
    AWS IoT
    Device Defender
    AWS Firewall Manager
    AWS Network Firewall
    AWS Shield
    AWS WAF – Web
    application firewall
    Amazon Virtual
    Private Cloud
    AWS PrivateLink
    AWS Systems
    Manager
    Amazon Macie
    AWS Key Management
    Service (KMS)
    AWS CloudHSM
    AWS Certificate Manager
    AWS Secrets Manager
    AWS VPN
    Server-Side Encryption
    Amazon Detective
    CloudEndure DR
    AWS Config Rules
    AWS Lambda
    AWS のセキュリティソリューション
    AWS Artifact
    AWS Audit Manager
    ID とアクセス管理 インフラ
    保護
    インシデント
    対応
    データ
    保護
    コンプライアンス
    発⾒的制御

    View full-size slide

  26. © 2023, Amazon Web Services, Inc. or its Affiliates.
    アプリケーションの構造をマイクロサービスの集まりにする

    View full-size slide

  27. © 2023, Amazon Web Services, Inc. or its Affiliates.
    アプリケーションの構造をマイクロサービスの集まりにする
    変更の影響は⼩さくなると、リリースの速度が向上可能に
    Monolith
    すべてを実⾏
    Microservices
    ひとつのことを実⾏

    View full-size slide

  28. © 2023, Amazon Web Services, Inc. or its Affiliates.
    アプリケーションの構造をマイクロサービスの集まりにする
    APIと疎結合なコミュニケーションが⾃動化を
    可能にして信頼性を向上
    FUNCTION
    API
    API
    MICROSERVICE
    FUNCTION
    EVENT
    API
    MICROSERVICE
    EVENT
    API
    MICROSERVICE
    APPLICATION

    View full-size slide

  29. © 2023, Amazon Web Services, Inc. or its Affiliates.
    アプリケーションの構造をマイクロサービスの集まりにする
    ワークフローで複数のサービスを連携することで、
    敏捷性、⽣産性、および柔軟性が向上
    データと処理の状態を
    トラッキング
    冗⻑なコードを削除

    View full-size slide

  30. © 2023, Amazon Web Services, Inc. or its Affiliates.
    AWS Step Functions
    • 弾⼒性のあるワークフローオートメーション
    • 組み込みのリトライ、エラーハンドリング
    • AWSサービスとの強⼒な統合
    • 同期型Express Workflowも提供
    • ビジュアル編集可能な Step Functions
    Workflow Studio
    o フルマネージドなオーケストレーター

    View full-size slide

  31. © 2023, Amazon Web Services, Inc. or its Affiliates.
    可能な限りサーバーレスの技術で構築する

    View full-size slide

  32. © 2023, Amazon Web Services, Inc. or its Affiliates.
    サーバーレス とは︖
    サーバーがない?
    サーバーの存在を意識しない

    View full-size slide

  33. © 2023, Amazon Web Services, Inc. or its Affiliates.
    サーバーレス とは︖
    サーバーがない?
    サーバーの存在を意識しない
    • ユーザーコントロール可能なサーバーを前提としない
    • AWSのフルマネージドな管理

    View full-size slide

  34. © 2023, Amazon Web Services, Inc. or its Affiliates.
    従来型の三階層アプリケーションアーキテクチャ
    Web サーバー
    プレゼンテーション層
    App サーバー
    ビジネスロジック
    DB サーバー
    データ層
    Apache, Nginx 等
    Tomcat, Weblogic 等
    Oracle, MySQL 等

    View full-size slide

  35. © 2023, Amazon Web Services, Inc. or its Affiliates.
    モダンな三階層アプリケーションアーキテクチャ
    プレゼンテーション
    ビジネスロジック
    データ
    キュー/メッセージ
    イベント イベント
    APIで統合

    View full-size slide

  36. © 2023, Amazon Web Services, Inc. or its Affiliates.
    AWS
    Lambda
    AWS
    Fargate
    Amazon
    API Gateway
    Amazon
    SNS
    Amazon
    SQS
    AWS
    Step Functions
    コンピュート
    データストア
    インテグレーション
    AWS
    AppSync
    Amazon Aurora
    Serverless
    Amazon
    S3
    Amazon
    DynamoDB
    Amazon
    EventBridge

    View full-size slide

  37. © 2023, Amazon Web Services, Inc. or its Affiliates.
    AWSによって管理されるもの: お客様が管理すべきもの:
    • データソース統合
    • 物理的ハードウェア、ソフトウェ
    ア、ネットワーキング、施設
    • プロビジョニング
    • アプリケーション
    コード
    • コンテナオーケストレーション、
    プロビジョニング
    • クラスタのスケーリング
    • ハードウェア、ホストOS/カーネル
    ネットワーキング、施設
    • アプリケーションコード
    • データソース連携
    • セキュリティ設定および
    アップデート、
    ネットワーク設定
    • 管理タスク
    • コンテナオーケストレーション
    制御プレーン
    • ハードウェア、ソフトウェア
    ネットワーキング、施設
    • アプリケーションコード
    • データソース連携
    • 稼働するクラスタ
    • セキュリティ設定および
    アップデート、ネットワー
    ク設定、
    ファイアウォール
    • 管理タスク
    • 物理的ハードウェア、ソフト
    ウェア、ネットワーキング、
    施設
    • アプリケーションコード
    • データソース連携
    • スケーリング
    • セキュリティ設定および
    アップデート、
    ネットワーク設定
    • 管理タスク
    • プロビジョニング、
    管理スケーリング
    およびサーバーのパッチ
    当て
    計算資源 - 運⽤責任の⽐較
    AWS Lambda
    サーバーレスファンクション
    AWS Fargate
    サーバーレスコンテナ
    Amazon
    ECS/EKS
    サービスとしてのコンテナ
    管理
    Amazon EC2
    サービスとしてのインフラ
    Less
    More
    カバー範囲

    View full-size slide

  38. © 2023, Amazon Web Services, Inc. or its Affiliates.
    可能な限りサーバーレスの技術で構築する
    ⾃動化と抽象化によって課題から開放
    インフラストラクチャの
    プロビジョニングや管理が不要
    利⽤単位ごとに
    オートスケール
    価値に対して⽀払う
    課⾦モデル
    ⾼い可⽤性と耐久性

    View full-size slide

  39. © 2023, Amazon Web Services, Inc. or its Affiliates.
    可能な限りサーバーレスの技術で構築する
    サーバーレス アーキテクチャは最⼩の努⼒で最⼤の
    アジリティを提供
    Focus on creating
    business value
    Remove heavy lifting with
    serverless everything
    CUSTOMER
    AWS
    Messaging & Orchestration
    Compute
    Physical Infrastructure
    API
    Business logic
    Storage & Databases

    View full-size slide

  40. © 2023, Amazon Web Services, Inc. or its Affiliates.
    可能な限りサーバーレスの技術で構築する
    コンピュートの選択はトランスフォーメーションの
    核⼼
    サーバーレスコンテナ
    ロングランニング
    OSを抽象化
    フルマネージド オーケストレーション
    フルマネージド クラスタスケーリング
    AWS Fargate
    サーバーレス ファンクション
    イベント駆動
    多言語ランタイム
    データソースとの統合
    サーバー管理不要
    AWS Lambda

    View full-size slide

  41. © 2023, Amazon Web Services, Inc. or its Affiliates.
    アプリケーションのモデリングとインフラにコードを利⽤
    する

    View full-size slide

  42. © 2023, Amazon Web Services, Inc. or its Affiliates.
    アプリケーションのモデリングとインフラにコードを利⽤する
    すべてをソフトウェアとして扱うことでインフラの
    デプロイのスピードとアジリティを向上
    設計
    アプリケーション
    コードの記述
    インフラ テンプレートの
    作成
    スタックの作成 繰り返し

    View full-size slide

  43. © 2023, Amazon Web Services, Inc. or its Affiliates.
    アプリケーションのモデリングとインフラにコードを利⽤する
    AWS Cloud Development Kit(CDK)
    CDK Application
    CloudFormatio
    n Template
    Stack(s)
    Construct Construct
    Resources
    AWS
    CloudFormation
    Amazon Simple
    Queue Service
    AWS Lambda Amazon S3
    bucket
    Amazon
    DynamoDB
    https://github.com/awslabs/aws-cdk

    View full-size slide

  44. © 2023, Amazon Web Services, Inc. or its Affiliates.
    CI/CDを利⽤して⾼品質な機能を迅速にリリースする

    View full-size slide

  45. © 2023, Amazon Web Services, Inc. or its Affiliates.
    30x
    頻繁なデプロイ
    440x
    リードタイムの短縮
    60x
    ミスが減少
    -21%
    予期しない作業の削減
    +44%
    新しい作業
    https://puppet.com/resources/whitepaper/2017-state-of-devops-report
    CI/CDを利⽤して⾼品質な機能を迅速にリリースする
    CI/CDを⾃動化しているチームは
    コードをより速く、⾃信を持って書いている

    View full-size slide

  46. © 2023, Amazon Web Services, Inc. or its Affiliates.
    CI/CDを利⽤して⾼品質な機能を迅速にリリースする
    AWS Developer Tools for CI/CD
    AWS CodeBuild +
    Third Party
    AWS CodeCommit AWS CodeBuild AWS CodeDeploy AWS X-Ray
    Source Build Test Deploy Monitor
    AWS CodePipeline

    View full-size slide

  47. © 2023, Amazon Web Services, Inc. or its Affiliates.
    モニタリングによってアプリケーションの振る舞いの洞察
    を得る

    View full-size slide

  48. © 2023, Amazon Web Services, Inc. or its Affiliates.
    モニタリングによってアプリケーションの振る舞いの洞察を得る
    より速く問題を識別すると、より速く解決できる
    メトリックス、
    ログとトレース
    モニタリング、デ
    バッグ、アラート
    リソースとアプリ
    ケーションの
    可視化
    リアルタイム
    インサイト
    MONITORING
    OBSERVABILITY

    View full-size slide

  49. © 2023, Amazon Web Services, Inc. or its Affiliates.
    モニタリングによってアプリケーションの振る舞いの洞察を得る
    分散されたアプリケーションを
    どのように可視化すべきか︖

    View full-size slide

  50. © 2023, Amazon Web Services, Inc. or its Affiliates.
    モニタリングによってアプリケーションの振る舞いの洞察を得る
    AWSモニタリングとトレーシング
    クラウドリソースとアプリケーションに
    可視性をもたらす
    o アプリケーションのモニタリング
    o パフォーマンス変化に応答
    o リソース使⽤率を最適化
    o オペレーショナルヘルスを⼀元観察
    プロダクション環境、分散アプリケー
    ションの分析とデバッグ
    o 性能のボトルネックを特定
    o 根本原因をトラブルシュート
    o あらゆるアプリケーションの
    ユーザーリクエストをトレース

    View full-size slide

  51. © 2023, Amazon Web Services, Inc. or its Affiliates.
    最も重要なことは何か
    ビジネスエキスパートの要件を正しくサービスに反映すること
    モダンアプリケーションでビジネスをドライブする
    ビジネスのドメインモデルを正しく設計しコードに落とすこと
    これが最も重要なこと

    View full-size slide

  52. © 2023, Amazon Web Services, Inc. or its Affiliates.
    でもどうやって︖
    o サービスが価値を提供するためにはビジネスについての理解が必要
    o そのためにはビジネスを理解している⼈(ドメインエキスパート)の知識
    が必要不可⽋
    o ドメインエキスパートの要件を正しくサービスに反映させる必要がある
    o そのためには正しくドメインモデルの設計を⾏い、実装コードに反映させ
    る必要がある
    o ではドメインモデルを正しく設計するにはどうすれば良いのか

    View full-size slide

  53. © 2023, Amazon Web Services, Inc. or its Affiliates.
    ドメイン駆動設計 (Eric Evans - 2003)
    o 設計における意思決定とドメイン
    設計の議論における技術的な⽤語の
    広義のフレームワークを提供
    o ユビキタス⾔語 ー ビジネスドメイン
    エキスパートと開発者の間の意思疎通
    として利⽤される⽤語によって
    モデリングと設計を⾏う
    o 戦略的な設計のためのガイドライン
    境界づけられたコンテキスト、
    蒸留、⼤規模な構造の考察
    o マイクロサービスによって再度注⽬
    される

    View full-size slide

  54. © 2023, Amazon Web Services, Inc. or its Affiliates.
    境界づけられたコンテキスト
    o 境界づけられたコンテキストはユビキ
    タス⾔語によって設計されたモデルを
    適⽤できる限定された範囲
    o コンテキストの境界を定めることで、
    チームメンバーは何を⼀致させるべき
    で何を独⽴して開発できるのかについ
    ての理解を明確化し、共有できる
    https://www.martinfowler.com/bliki/BoundedContext.html
    Customer
    Ticket
    Product
    Product
    version
    Customer
    Product
    Territory
    Opportunity
    Pipeline
    Salesperson
    Defect
    Sales context Support context

    View full-size slide

  55. © 2023, Amazon Web Services, Inc. or its Affiliates.
    コンテキストマップ
    Sales context Support context
    Marketing context
    境界づけられたコンテキストだけでは、ドメインの
    全体像を⽰すことはできない
    コンテキストマップは、境界づけられたコンテキスト
    を統合することにより、異なるが関連するユビキタス
    ⾔語のマッピングを処理する
    DDDでは境界づけられたコンテキストを統合するため
    の7つのパターンを説明
    • 共有カーネル (Shared Kernel)
    • 顧客/供給者の開発チーム (Customer/Supplier
    Development Teams)
    • 順応者 (Conformist)
    • 腐敗防⽌層 (Anticorruption layer)
    • 別々の道 (Separate ways)
    • 公開ホストサービス (Open/Host service)
    • 公表された⾔語 (Published language)

    View full-size slide

  56. © 2023, Amazon Web Services, Inc. or its Affiliates.
    パブリッシュ/サブスクライブ
    • 特定ドメインのイベントを発⾏︓
    ⼀貫した境界を適⽤する
    • 複数種類のカップリングに対応(Pub/Sub)
    • 個々のサブスクライバは個別の
    境界づけられたコンテキストで
    ドメイン イベントに反応
    • ドメインモデルのシンプルで効果的な
    ドメインイベントの発⾏⽅法︓軽量なオブザーバーパターン

    View full-size slide

  57. © 2023, Amazon Web Services, Inc. or its Affiliates.
    詳しくはこちらをご参照ください︕
    o AWS DevAx::Connect シーズン1「イベント駆動」
    o https://aws.amazon.com/jp/devax-connect-on-demand/

    View full-size slide

  58. © 2023, Amazon Web Services, Inc. or its Affiliates.
    まとめ
    ⎕ イノベーションがビジネスを加速する
    ⎕ そのためには失敗を恐れずに実験を繰り返す
    ⎕ モダン化するためには組織、カルチャーの変⾰が必要。バイモーダル
    な組織作りを考える
    ⎕ クラウドネイティブなサービスを利⽤してモダンアプリケーションを
    素早くリリース
    ⎕ モダンアプリケーションのベストプラクティスを取り⼊れる
    ⎕ イベント駆動アーキテクチャがポイント

    View full-size slide