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

Architecture Specialist (ODC)取得のために理解しておくとよいことN選!

Architecture Specialist (ODC)取得のために理解しておくとよいことN選!

2025年2月26日(水)に開催されたOutSystems User Group Tokyoのイベントの発表資料です。
https://usergroups.outsystems.com/e/mgrzm8/

OutSystemsは「Gartner® Magic Quadrant™ for Enterprise Low-Code Application Platforms」において、8年連続でリーダー評価を獲得している製品です。
そして、クラウドネイティブ時代に合わせて再構築されたOutSystems Developer Cloud(ODC)というバージョンが近年リリースされています。

開発者は、マイクロサービスアーキテクチャやクラウドネイティブなどのODCを構成する技術要素を理解していると、よりパフォーマンスの高いアプリケーションを実装できます。
そのスキルを有していることを示すのが「Architecture Specialist (ODC)」という資格です。

「Architecture Specialist (ODC)取得のために理解しておくとよいことN選!」というタイトルで、この資格取得勉強の前に事前に把握しておいたことがよいことや、これからODCを使う人に向けたODCの魅力を発表しました。

shimackler

March 03, 2025
Tweet

More Decks by shimackler

Other Decks in Technology

Transcript

  1. © 2025 NTT DATA Group Corporation Architecture Specialist (ODC) 取得のために理解しておくとよいことN選!

    OutSystems User Group Tokyo 【Online OSUG Meetup】OutSystems 認定試験攻略! 合格への道と活用術 島倉 優人 2025年02月26日(水)
  2. © 2025 NTT DATA Group Corporation 2 島 倉 優

    人 Yuto Shimakura ◼ OutSystems MVP (2023,2024(new)) ◼ OutSystems User Group(OSUG) Tokyo Organizer ◼ イベントの企画や情報発信 ◼ 株式会社NTTデータグループ 技術革新統括本部 Apps&Data技術部 • OutSystemsを中心としたローコードオファリング • ソフトウェアアーキテクチャ • ソフトウェアプロセス ◼ その他 • トップエスイー (マイクロサービスアーキテクチャについて学ぶ) • ソフトウェアアーキテクチャ全般の研修講師
  3. © 2025 NTT DATA Group Corporation 3 資格の取得状況 Certifications &

    Specializations Sales系 (パートナー限定) • 資格をテーマにしたイベントということで共有してみる。 ODCの新資格がリリースされる前に後2つ合格して 全資格コンプリートって言ってみたい! • Delivery Specialist • Professional DevOps Engineer (O11)
  4. © 2025 NTT DATA Group Corporation 4 本日伝えたいこと • Architecture

    Specialist (ODC)取得を目指す人向け • 勉強方法 • 受験した感想 • 勉強していたときに、「説明もっとあってもいいかも!?」と思ったとこ ろを解説 • 残念ながら「出題された内容」を伝えるのはNG
  5. © 2025 NTT DATA Group Corporation 5 Architecture Specialist (ODC)取得の意義①

    https://www.outsystems.com/ja-jp/low-code-platform/developer-cloud/
  6. © 2025 NTT DATA Group Corporation 6 Architecture Specialist (ODC)取得の意義②

    あくまで私個人の見解です • ODCは、O11と比較して、クラウドネイティブやマイクロサービスアーキテクチャ(以下、MSA)など により、よりアジリティの高いアプリケーションの開発を可能とする • 特にMSAは、アーキテクチャ設計が必要。ただODCを採用するだけでは実現できない。 • ODCのメリットを最大限引き出すには、MSAなどのアーキテクチャ関連の知識が あったほうがよい。 • ODC使うならチームに最低1人以上は有資格者がいたほうがよい。
  7. © 2025 NTT DATA Group Corporation 7 勉強方法① https://learn.outsystems.com/ja-jp/training/journeys/odc-architecture-exam-957 •

    「ODC Architecture専門資格試験の準備」ページで紹介されているコンテンツを用いて学習する。 コース ドキュメント サンプル試験
  8. © 2025 NTT DATA Group Corporation 8 勉強方法② • 私は、「自分のペースで読んで理解したい」派

    • 動画はなるだけ見ない(動画しかないコンテンツを除く) • PDF資料だけ読むはNG。資料に書かれていないが、音声/字幕にしかない内容が試験に出る。 • 2024年9月10日(火)のOSUG Tokyoイベントの発表資料も参考にしてほしい -> こちら https://learn.outsystems.com/ja-jp/training/journeys/architecture-patterns-581/distributed-transactions-patterns/odc/629 PDF資料と字幕を並べて読む。字幕で重要そうなところを太字に。 ➢ 「チェックをつけた」と印象付けて覚える ➢ 試験直前に見返しやすい ➢ 時間なかったらGenAIに太字にさせる
  9. © 2025 NTT DATA Group Corporation 9 Architecture Specialist(ODC/O11)受験した感想 •

    ここでは試験問題は次の2つにジャンル分けされるものとする • 【暗記系】 丸暗記した内容で回答可能 • 【考える系】 丸暗記した内容をもとに、考えないと回答を導けない • 暗記系の問題を全部正解しても、合格は難しいと思う • 考える系の問題も、ある程度正解する必要がある • 考える系の問題で回答を導くには、「学習コンテンツを理解(≠暗記)」すべし あくまで私個人の見解です
  10. © 2025 NTT DATA Group Corporation 10 ここからが本日のメイン • 【再掲】考える系の問題で回答を導くには、「学習コンテンツを理解(≠暗記)」すべし

    • ODCが採用している技術について知らないと、学習コンテンツの理解は難しい気がする • 学習コンテンツに書かれていることを理解してもらうために、補足解説をする。 • 学習コンテンツを始める前に読むことで、みなさまの理解の促進につながるといいな! • MSAとクラウドネイティブ(分散トランザクション) • 境界づけられたコンテキスト
  11. © 2025 NTT DATA Group Corporation 12 ECサイトアプリケーション 例:ECサイト 次の3つの機能を提供する

    • ECサイト販売: 顧客に対して、取り扱っている商品を販売する • ECサイト管理: 会員情報など、ECサイトを運営するための情報を管理する • 在庫管理 : 取り扱っている商品の在庫を管理する ECサイト販売 AP(サービス) ECサイト管理 AP(サービス) 在庫管理 AP(サービス) コンテナ コンテナ コンテナ マイクロサービスアーキテクチャ(MSA)の例 モノリシックアーキテクチャ(モノリス)の例 ECサイト販売 機能 ECサイト管理 機能 在庫管理 機能 アプリケーションサーバー DBサーバー 1つのアプリケーションに複数の機能をもたせる 複数のアプリケーションを組み合わせて、 1つのアプリケーションのようにする
  12. © 2025 NTT DATA Group Corporation 13 ECサイトアプリケーション MSAは何がいいの? •

    エンドユーザーから見たとき、アーキテクチャの違いはあまり感じないかもしれない • 一方で、アジリティはMSAのほうが高くなる場合がある ECサイト販売 AP(サービス) ECサイト管理 AP(サービス) 在庫管理 AP(サービス) コンテナ コンテナ コンテナ マイクロサービスアーキテクチャ(MSA)の例 モノリシックアーキテクチャ(モノリス)の例 ECサイト販売 機能 ECサイト管理 機能 在庫管理 機能 アプリケーションサーバー DBサーバー 1つのアプリケーションに複数の機能をもたせる 複数のアプリケーションを組み合わせて、 1つのアプリケーションのようにする
  13. © 2025 NTT DATA Group Corporation 14 ECサイトアプリケーション MSAの変更容易性 •

    「在庫管理に仕様変更が発生」というケースがあったとする • MSAの場合、影響を最小限にして対応できる可能性が高い ECサイト販売 AP(サービス) ECサイト管理 AP(サービス) 在庫管理 AP(サービス) コンテナ コンテナ コンテナ ECサイト販売 機能 ECサイト管理 機能 在庫管理 機能 アプリケーションサーバー DBサーバー モノリス MSA これだけビルド/デプロイ すればよい この2つは影響なく 業務継続可能 • 在庫管理の修正のために、ECサイトアプリケーション全体を ビルド/デプロイしないといけない • やり方によってはダウンタイムが発生する場合も
  14. © 2025 NTT DATA Group Corporation 15 ECサイトアプリケーション クラウドネイティブ •

    「超人気の商品を販売することになった。販売開始時間は大量アクセスが見込まれるため、 スケールアップ/アウトしたい」 • MSAのほうが、よりクラウドネイティブであるといえる ECサイト販売 AP(サービス) ECサイト管理 AP(サービス) 在庫管理 AP(サービス) コンテナ コンテナ コンテナ ECサイト販売 機能 ECサイト管理 機能 在庫管理 機能 アプリケーションサーバー DBサーバー モノリス MSA このコンテナだけスケールアップ/アウト (低コスト) アプリケーションサーバー全体のスケールアップ/アウトが必要 (高コスト)
  15. © 2025 NTT DATA Group Corporation 16 MSAにおけるAP間(サービス間)連携 ECサイト販売 AP(サービス)

    ECサイト管理 AP(サービス) 在庫管理 AP(サービス) コンテナ コンテナ コンテナ MSA • 一般的に、AP間(サービス間)連携はREST APIを用いることが多い • ODCにおいては、Service Action(REST API)を用いる
  16. © 2025 NTT DATA Group Corporation 17 ECサイトアプリケーション トランザクション管理は、MSAのほうが考慮が必要① •

    「商品が1つ売れたので、在庫を1つ減らしたい」 ECサイト販売 AP(サービス) 在庫管理 AP(サービス) コンテナ コンテナ ECサイト販売 機能 在庫管理 機能 アプリケーションサーバー DBサーバー モノリス MSA 疎結合を維持するには 直接アクセスNG ↓ 分散トランザクションに なる すべての情報が同一DB上で管理されている。 一連の処理を同一トランザクション上で実装可能。 ✕ REST(Service Action) 在庫を減らすAPIを公開
  17. © 2025 NTT DATA Group Corporation 18 トランザクション管理は、MSAのほうが考慮が必要② • 「商品が1つ売れたので、在庫を1つ減らしたい」

    • ECサイト販売AP(サービス)にて、注文情報を追加する • 在庫管理AP(サービス)にて、在庫を減らす MSA ECサイト販売 AP(サービス) 在庫管理 AP(サービス) コンテナ コンテナ REST(Service Action) 在庫を減らすAPIを公開 在庫を減らす 注文情報を追加する
  18. © 2025 NTT DATA Group Corporation 19 トランザクション管理は、MSAのほうが考慮が必要③ • 「商品が1つ売れたので、在庫を1つ減らしたい」

    • ECサイト販売AP(サービス)にて、注文情報を追加する • 在庫管理AP(サービス)にて、在庫を減らす • ECサイト販売AP(サービス)にて、注文情報を追加する際にエラーが生じ、ロールバックが発生したとする • 在庫管理AP(サービス)の在庫を減らす処理は、別トランザクションなのでロールバックされず、コミットされ正常終了 • データ不整合が発生してしまう! ECサイト販売 AP(サービス) 在庫管理 AP(サービス) コンテナ コンテナ MSA REST(Service Action) 在庫を減らすAPIを公開 正常終了。コミットされた。 在庫は減った。 ロールバックが発生。 注文情報は追加されず。 データ 不整合! ✕ ◯
  19. © 2025 NTT DATA Group Corporation 20 トランザクション管理は、MSAのほうが考慮が必要④ • データ不整合を解消するために、新たに処理を実施する必要がある

    • 今回の場合だと、「減った在庫を元に戻す」 • トランザクションが失敗した時に実行する処理を、補償トランザクションという • 学習コンテンツでは、「SAGAオーケストレーション」パターンで補償トランザクションを実施と解説している ECサイト販売 AP(サービス) 在庫管理 AP(サービス) コンテナ コンテナ MSA REST(Service Action) 補償トランザクションの APIを公開 減った在庫が元に戻った ロールバックが発生。 注文情報は追加されず。 4.解決! ✕ ◯ SAGAにおけるオーケストレーターの 役割を持たせた。 2.補償トランザクションを リクエスト 1.失敗 3.補償トランザクションを実行
  20. © 2025 NTT DATA Group Corporation 21 メッセージ • MSAを採用してクラウドネイティブな開発すると、アジリティ高くなるのだなぁ

    • 分散システムで分散トランザクションになるから、トランザクション管理意識しないといけないのだなぁ みたいなことを頭の片隅に入れておくと、「ODCのアーキテクチャパターン」コースの理解が進むと思います! https://learn.outsystems.com/ja-jp/training/journeys/architecture-patterns-581 特にこの2つ!
  21. © 2025 NTT DATA Group Corporation 25 境界づけられたコンテキスト③ https://www.domainlanguage.com/ddd/reference/ •

    境界づけられたコンテキスト(Bounded Context)とは? • ドメイン駆動設計(DDD : Domain-Driven Design)用語 • DDD Referenceには次のように定義されている • A description of a boundary (typically a subsystem, or the work of a particular team) within which a particular model is defined and applicable. • 特定のモデルが定義され、適用される境界(通常はサブシステムや特定のチームの作 業)の説明。 (ChatGPTで翻訳) • よく分からない。。。 • どうやって境界づけられたコンテキストを決めるかを簡単に解説する
  22. © 2025 NTT DATA Group Corporation 26 境界づけられたコンテキスト④ • 境界づけられたコンテキスト(Bounded

    Context)とは? • ドメイン分析完了後のドメインモデル図 • ユースケース図とユースケース記述から名詞の抽出や分類を実施(割愛) 商品 在庫 注文情報 管理者 ユーザー 購入予定
  23. © 2025 NTT DATA Group Corporation 27 境界づけられたコンテキスト⑤ • 境界づけられたコンテキスト(Bounded

    Context)とは? • 同じ「商品」でも、人によって意味が変わってくる • 他のドメインでも同様 商品 在庫 注文情報 管理者 ユーザー 購入予定 在庫からみた「商品」 • 存在している場所 • 在庫数 管理者から見た「商品」 • 購入可否 • 販売価格 購入予定(ユーザー)から見た「商品」 • 商品詳細 • レビュー
  24. © 2025 NTT DATA Group Corporation 28 境界づけられたコンテキスト⑥ • 境界づけられたコンテキスト(Bounded

    Context)とは? • ドメインの意味が変わる境界で分割したものが「境界づけられたコンテキスト」 商品 在庫 注文情報 管理者 ユーザー 購入予定 在庫管理 コンテキスト ECサイト販売 コンテキスト ECサイト管理 コンテキスト
  25. © 2025 NTT DATA Group Corporation 29 境界づけられたコンテキスト⑦ • 学習コンテンツによると、ODCにおけるアプリ名は境界づけられたコンテキストにするのがベストプラクティス

    • 「アプリは、境界づけられたコンテキストごとに作成する」とも言い換えられる(かも) • 境界づけられたコンテキストの設計の過程をみると、各ドメインがなるだけ疎結合になるようになっている ➢ 「だからこれがベストプラクティスなのか!」と理解できた! 商品 在庫 注文情報 管理者 ユーザー 購入予定 在庫管理 コンテキスト ECサイト販売 コンテキスト ECサイト管理 コンテキスト
  26. © 2025 NTT DATA Group Corporation 31 アプリ間のロール https://learn.outsystems.com/ja-jp/training/journeys/architecture-fundamentals-559/configurations/odc/7 https://learn.outsystems.com/ja-jp/training/journeys/odc-architecture-exam-957/sample-exam/odc/955

    • 2025年2月26日(水)時点、複数のアプリケーションにまたがるアプリケーションロールは、 「対象のアプリケーションで、同じ名前のロールを作成する」と学習コンテンツで紹介されている
  27. © 2025 NTT DATA Group Corporation 32 最新の状況 https://success.outsystems.com/ja-jp/documentation/outsystems_developer_cloud/user_management/roles/ エンドユーザーロールをパブリックに設定すると、

    そのロールをアプリやワークフロー間で共有できます。 • 最新の状況では、学習コンテンツで紹介されているベストプラクティスはやらなくてよい • 学習コンテンツが古い可能性が高く、学習コンテンツのアップデートがされるかも!? • 受験する際は、Forumや学習コンテンツをチェックして、アップデートされていないか 確認したほうがよいと考える
  28. © 2025 NTT DATA Group Corporation 33 【一部再掲】本日伝えたいこと • Architecture

    Specialist (ODC)取得を目指す人向け • 勉強方法 • 受験した感想 • 勉強していたときに、「説明もっとあってもいいかも!?」と思ったところを 解説 • MSAとクラウドネイティブ • 分散トランザクション • 境界づけられたコンテキスト • 試験内容が変更になるかも、注意したほうがいいかも • 資格取得は通過点。その先の実践で活躍するためにも、理解すべし!