アーキテクチャ

凝集度と結合度

アーキテクチャ

概要 ソフトウェア設計において品質を測る基本的な指標として、**凝集度(Cohesion)と結合度(Coupling)**がある。これらは、モジュール化、保守性、再利用性などを考慮する際に重要な概念である。 凝集度(Cohesion)とは 凝集度とは、モジュール内の構成要素(関数や変数など)がどれほど密接に関連しているかを表す指標である。 高凝集(High Cohesion) モジュール内の要素...

設計 システム設計

OPAを利用したアクセス制御のパターン

アーキテクチャ

概要 Open Policy Agent(OPA)は、ポリシーによるアクセス制御を疎結合な形で実現できる強力な仕組みである。Regoという宣言的言語でルールを記述し、アプリケーション側からはシンプルな形式でポリシー評価を利用できる。 本記事では、OPAを利用したアクセス制御の代表的なパターンを整理し、それぞれの特徴や適した用途、実装負荷などを比較する。 以下に、あなたが挙げた4つのアクセス制御アプ...

Open Policy Agent 権限管理

設計の賞味期限を考える

アーキテクチャ

概要 システム設計に「間違い」はあっても「正解」は存在しない。あるのは、そのときの状況に応じた“最適な妥協”である。 設計とは、さまざまな制約の中で意思決定を行い、将来に向けて形を与える行為である。 「設計の賞味期限」という観点を通じて、どのように設計の寿命を見積もり、制約と向き合うべきかを考察する。 設計の賞味期限とはなにか? 「いつまで持てばよい設計なのか?」 この問いを意識することで、設計は...

設計 システム設計 アーキテクチャ戦略 アーキテクチャ

スケーラビリティを計測する

アーキテクチャ

概要 スケーラビリティの計測方法について調べたのでまとめる。 スケーラビリティの基本理解 スケーラビリティとは、ワークロードの増加に対してシステムがどのように対応できるかに関係する品質特性である。 スケーラビリティは、単なるリソース追加ではなく、**効率性(Efficiency)**に直接的な影響を与える。 重要なのは、CPU・メモリ・ストレージ・ネットワークなどのリソースを増減させたとき、シス...

スケーラビリティ

クラウドネイティブ・アーキテクチャ 可用性と費用対効果を極める次世代設計の原則

アーキテクチャ

クラウドネイティブ・アーキテクチャ 可用性と費用対効果を極める次世代設計の原則を読んだ。 クラウドネイティブの基本的な考え方について知ることができる。 本書では、クラウドネイティブ成熟度モデル(Cloud Native Maturity Model: CNMM)を軸にクラウドネイティブアーキテクチャの解説を行っている。 クラウドネイティブ成熟度モデルとは、「クラウドネイティブ・サービス」、「アプリ...

Amazon Web Service Google Cloud Platform クラウドネイティブ

アーキテクチャドキュメントを書くときに気をつけること

アーキテクチャ

概要 システム設計においてアーキテクチャドキュメントは重要な役割を果たす。特に設計段階においては、関係者に対して設計の妥当性を説明し、合意を形成するための資料として機能する。このドキュメントは、単なる設計情報の羅列ではなく、読者の理解と納得を導くための戦略的な文書であるべきである。 目的を明確にする ドキュメントを作成するにあたって最初に意識すべきは、その目的である。この文書が誰に向けたものであり...

アーキテクチャ戦略 アーキテクチャ

自分的システムの仕様書の構成

アーキテクチャ

概要 システムの仕様をドキュメントに書き出したい時にどういった構成であるべきか考えることが偶にある。 自分的システム仕様書の構成を記す。 新しいプロジェクトの設計フェーズはもちろん、既存システムの仕様理解のためにもなる構成になっているはず。 構成 01_overview.md # 全体概要 02_system_architecture.md # システム構成 03_dat...

システム設計 設計 Tips

境界付けられたコンテキストとは

アーキテクチャ

概要 コンテキストマップで整理されたコンテキストについて、なぜそのような切り分け方をしたのか、切り分ける意味が何かといったことを開発者以外にも伝えたい、という課題があった。 そこで本稿では、「境界づけられたコンテキスト」について、開発者以外にも伝わるような説明を試みる。 コンテキストの違いを意識する 同じ言葉であっても、コンテキストが異なれば言葉の意味が変わることがある。 例えば「注文」という言葉...

DDD

開発者とアーキテクトのためのコミュニケーションガイド ―パターンで学ぶ情報伝達術

アーキテクチャ

開発者とアーキテクトのためのコミュニケーションガイド ―パターンで学ぶ情報伝達術を読んだ。 視覚情報やテキスト、言語・非言語、ドキュメンテーションなどコミュニケーションに関することを話題とした本。 タイトルは、ソフトウェアエンジニアのためのドキュメンテーションガイドと読み替えても良さそうな内容であると個人的には感じた。 読みやすい内容であるため数時間程度で読める。 自分としてはあまり目新しい情報は...

アーキテクト

マルチテナントSaaSアーキテクチャの構築 ―原則、ベストプラクティス、AWSアーキテクチャパターン

アーキテクチャ

マルチテナントSaaSアーキテクチャの構築 ―原則、ベストプラクティス、AWSアーキテクチャパターンを読んだ。 SaaSアーキテクチャの概念や実践的なパターンについて書かれている。 SaaSアーキテクチャの二層構造(コントロールプレーンとアプリケーションプレーン) マルチテナントのデプロイモデル オンボーディング手法 アイデンティティ管理とテナント認証 テナントルーティングパターン データパーテ...

SaaS アーキテクチャ