Architecture as Code: パート2 - 基盤の構築
アーキテクチャを抽象的な概念から強制可能なコードに変換します。明示的な意思決定、自動検証、午前2時の本番障害を防ぐ生きたドキュメントを発見しましょう。
アーキテクチャを抽象的な概念から強制可能なコードに変換します。明示的な意思決定、自動検証、午前2時の本番障害を防ぐ生きたドキュメントを発見しましょう。
アーキテクチャ図が作成後数週間で時代遅れになったらどうなるか?Architecture as Codeが静的なドキュメントを実行可能で検証可能なシステム設計に変革する方法を発見しましょう。
フェラーリを維持する必要があるのに、自転車で十分な場合は?静的サイトジェネレーターが驚異的な速度、鉄壁のセキュリティ、ほぼゼロのコストを実現する方法を発見しましょう。
ユーザーとバックエンドサーバーの間に何があるのか疑問に思ったことはありますか?リバースプロキシがエンタープライズ設計で不可欠な理由と、それが本当に障害点となるのかを解説します。
複数のアプリケーションがデータベースに直接接続する—便利か、それとも破滅的か?エンタープライズアーキテクトがこの基本的な設計決定について議論する理由を探ります。
非同期リクエスト-レスポンスパターンが、長時間実行される操作を即座のレスポンスから切り離すことで、タイムアウトを防ぎ、ユーザーエクスペリエンスを向上させる方法を解説します。
バルクヘッドパターンがリソースを隔離し、分散システムでコンポーネントが障害を起こした際の影響範囲を制限することで、連鎖的な障害を防ぐ方法を解説します。
OLTPとOLAPシステムの基本的な違いを発見します。日常業務にトランザクションデータベースを使用し、ビジネスインテリジェンスに分析データベースを使用するタイミングを学びます。
Circuit Breakerパターンが、障害が発生しているサービスへの呼び出しを一時的にブロックし、回復の時間を与えることで、分散システムをカスケード障害から保護する方法を学びます。
認証を外部IDプロバイダーに委任して、開発を簡素化し、管理オーバーヘッドを削減し、複数のアプリケーションと組織にわたるユーザー体験を向上させます。
専用エンドポイントを通じてヘルスチェックを実装し、アプリケーションの可用性とパフォーマンスを監視します。ユーザーが問題を発見する前に、サービスが正しく実行されていることを確認する方法を学びます。
アプリケーションが送信者と受信者を結合せずに、複数のコンシューマーに非同期でイベントを通知できるようにします。pub/subメッセージングがスケーラビリティと信頼性を向上させる方法を学びます。
ゲートウェイを通じて複数のバックエンドリクエストを単一の呼び出しに結合します。このパターンが分散システムでネットワークオーバーヘッドを削減し、パフォーマンスを向上させる方法を学びます。
データストアを水平パーティションに分割してスケーラビリティとパフォーマンスを向上させます。シャーディングが複数のサーバーにデータを分散して大量のデータを処理する方法を学びます。
サポートコンポーネントを別のコンテナでアプリケーションと並行してデプロイします。Sidecarパターンが分離、カプセル化、異種技術スタックを可能にする方法を学びます。
機能を段階的に置き換えることで、レガシーシステムを段階的に移行します。しかし、Strangler Figは本当にパターンなのか、それとも移行戦略なのか?このアーキテクチャアプローチとその哲学的分類を探ります。
マテリアライズドビューパターンを使用して、特定のクエリ用に最適化された形式でデータを事前計算して保存することで、クエリパフォーマンスを向上させる方法と、データベースのマテリアライズドビューとの違いを学びます。
クレームチェックパターンを使用して、データを外部に保存し、軽量なトークンを渡すことで、メッセージングシステムで大きなペイロードを転送する課題を解決する方法を学びます。
再試行パターンを使用して、アプリケーションが一時的な障害を適切に処理し、分散システムの安定性とユーザーエクスペリエンスを向上させる方法を学びます。