Searching...
日本語
English
Español
简体中文
Français
Deutsch
日本語
Português
Italiano
한국어
Русский
Nederlands
العربية
Polski
हिन्दी
Tiếng Việt
Svenska
Ελληνικά
Türkçe
ไทย
Čeština
Română
Magyar
Українська
Bahasa Indonesia
Dansk
Suomi
Български
עברית
Norsk
Hrvatski
Català
Slovenčina
Lietuvių
Slovenščina
Српски
Eesti
Latviešu
فارسی
മലയാളം
தமிழ்
اردو
Production-Ready Microservices

Production-Ready Microservices

Building Standardized Systems Across an Engineering Organization
by Susan Fowler 2017 170 pages
Technology
Technical
Programming
聞く

つの重要なポイント

1. マイクロサービス:ソフトウェアアーキテクチャのパラダイムシフト

マイクロサービスの基本概念はシンプルである。それは、1つのことだけを行い、その1つのことをうまく行う小さなアプリケーションである。

マイクロサービスはソフトウェア開発に革命をもたらす。 それはモノリシックなアプリケーションを、特定の機能を担当する小さな独立したサービスに分解する。このアーキテクチャアプローチは多くの利点を提供する:

  • 開発者の生産性と速度の向上
  • スケーラビリティと柔軟性の向上
  • 新技術の採用が容易
  • 技術的負債の削減

しかし、マイクロサービスは新たな課題ももたらす:

  • 運用の複雑さの増加
  • 組織のサイロ化の可能性
  • 標準化と調整の必要性の増大

モノリスからマイクロサービスへの移行には、ソフトウェアアーキテクチャと組織構造の両方を再構築するための慎重な計画と会社全体のコミットメントが必要である。

2. マイクロサービスエコシステムの4層モデル

マイクロサービスは孤立して存在するわけではない。マイクロサービスが構築され、実行され、相互作用する環境が彼らの生息地である。

マイクロサービスエコシステムの理解は重要である。 4層モデルは、マイクロサービスアーキテクチャを概念化し管理するための包括的なフレームワークを提供する:

  1. ハードウェア層:物理サーバー、オペレーティングシステム、リソース管理
  2. 通信層:ネットワーク、DNS、サービスディスカバリー、ロードバランシング
  3. アプリケーションプラットフォーム層:開発ツール、デプロイメントパイプライン、モニタリング
  4. マイクロサービス層:実際のマイクロサービスとその設定

各層は全体のエコシステムにおいて重要な役割を果たす:

  • 下層は基盤とインフラを提供
  • 上層はサービス固有の機能とビジネスロジックに焦点を当てる
  • 明確な関心の分離により、管理とスケーラビリティが向上

効果的なマイクロサービスアーキテクチャは、すべての層を慎重に考慮し最適化することで、サービス間のスムーズな運用とシームレスな相互作用を確保する。

3. プロダクションレディネス:マイクロサービス標準化の鍵

プロダクションレディなアプリケーションやサービスとは、プロダクショントラフィックを処理する信頼性のあるものである。

プロダクションレディネスはマイクロサービスの信頼性を確保する。 これを達成するために、マイクロサービスは8つの重要な原則に従う必要がある:

  1. 安定性
  2. 信頼性
  3. スケーラビリティ
  4. フォールトトレランス
  5. 災害対策
  6. パフォーマンス
  7. モニタリング
  8. ドキュメント

これらの原則は一体となって:

  • システム全体の可用性を向上
  • 停止や障害のリスクを減少
  • 開発者の生産性と自信を向上

プロダクションレディネス基準の実装には:

  • 組織全体の賛同
  • 期待と要件の明確なコミュニケーション
  • コンプライアンスを確保するための定期的な監査とレビュー
  • エコシステムの進化に応じた継続的な改善と適応

4. 安定性と信頼性:マイクロサービスアーキテクチャの礎

安定したマイクロサービスとは、開発、デプロイ、新技術の採用、他のサービスの廃止や非推奨が、マイクロサービスエコシステム全体の不安定性を引き起こさないものである。

安定性と信頼性は信頼の基盤を形成する。 安定した信頼性の高いマイクロサービスを構築するためには、以下に焦点を当てる:

  1. 標準化された開発サイクル
  2. 包括的なデプロイメントパイプライン(ステージング、カナリア、プロダクション)
  3. 依存関係の管理と障害の緩和
  4. 安定したルーティングとディスカバリーメカニズム
  5. 慎重な廃止と非推奨手順

安定性と信頼性を確保するための主要な実践:

  • 徹底的なコードテスト(ユニット、統合、エンドツーエンド)
  • 自動化されたビルドとリリースプロセスの使用
  • 依存関係に対する防御的キャッシングとフォールバックメカニズムの採用
  • サービスアーキテクチャの定期的なレビューと更新
  • チーム間の明確なコミュニケーションチャネルの維持

安定性と信頼性を優先することで、組織は急速な開発と変化する要件に耐えうる堅牢なマイクロサービスエコシステムを構築できる。

5. スケーラビリティとパフォーマンス:成長と効率のための設計

マイクロサービスがスケーラブルでパフォーマンスが高いことを確保するためには、各マイクロサービスにいくつかの要件を求める必要がある。

スケーラビリティとパフォーマンスは効率を推進する。 スケーラブルでパフォーマンスの高いマイクロサービスを構築するためには:

  1. 定性的および定量的な成長スケールの理解
  2. ハードウェアリソースの効率的な使用
  3. リソースボトルネックの特定と対処
  4. 自動化されたキャパシティプランニングの実装
  5. 依存関係がサービスと共にスケールできることの確認
  6. 効率的なタスク処理とプロセッシングの設計

スケーラビリティとパフォーマンスに関する主要な考慮事項:

  • 適切なプログラミング言語とフレームワークの選択
  • 水平スケーリング機能の実装
  • データベース設計と使用の最適化
  • トラフィックパターンの変化に対応するモニタリングと調整
  • 定期的な負荷テストとパフォーマンスチューニングの実施

スケーラビリティとパフォーマンスに初期から焦点を当てることで、組織は需要の増加に対応し、成長と共に高い効率を維持するマイクロサービスを構築できる。

6. フォールトトレランスと災害対策:失敗を受け入れる

マイクロサービスは失敗する。頻繁に失敗し、マイクロサービスのライフタイム内であらゆる潜在的な失敗シナリオが発生する可能性がある。

失敗に備えることで成功を確保する。 フォールトトレランスと災害対策を備えたマイクロサービスを構築するには:

  1. 単一障害点の特定と排除
  2. すべての可能な失敗シナリオの文書化
  3. 包括的なレジリエンシーテストの実施
  4. 失敗検出と修復の自動化
  5. 明確なインシデント対応手順の確立

フォールトトレランスのための必須の実践:

  • 定期的なアーキテクチャレビューを実施して脆弱性を特定
  • サーキットブレーカーとフォールバックメカニズムの実装
  • 実際の失敗をシミュレートするカオステストの実施
  • インシデント対応のための最新のランブックの維持
  • 失敗から学ぶことを奨励する非難のない文化の育成

失敗の現実を受け入れ、体系的に準備することで、組織は予期しない課題に耐え、高い可用性を維持する堅牢なマイクロサービスを構築できる。

7. モニタリング:マイクロサービスの脈動

マイクロサービスエコシステムの大多数の停止は、悪いデプロイメントによって引き起こされる。次に一般的な停止の原因は、適切なモニタリングの欠如である。

効果的なモニタリングはマイクロサービスの健康に不可欠である。 プロダクションレディなモニタリングを実装するには:

  1. すべてのレベル(ホスト、インフラ、マイクロサービス)で重要なメトリクスを特定し追跡
  2. 包括的なロギングの実施
  3. 明確で情報豊富なダッシュボードの作成
  4. 適切な閾値でのアクショナブルなアラートの設定
  5. 持続可能なオンコールローテーションの確立

マイクロサービスモニタリングのベストプラクティス:

  • セキュリティやパフォーマンスを損なうことなく、すべての関連情報をログに記録
  • 一目で解釈しやすいダッシュボードを設計
  • すべてのアラートがアクショナブルであり、ランブックにリンクされていることを確認
  • モニタリング戦略を定期的にレビューし更新
  • サービスの健康に対する共有責任の文化を育成

堅牢なモニタリングプラクティスを実装することで、組織は問題を迅速に検出し解決し、高いレベルのマイクロサービスの可用性とパフォーマンスを維持できる。

8. ドキュメントと理解:マイクロサービス成功の隠れた英雄

常に玉ねぎを与えよ。

ドキュメントと理解は組織の整合性を推進する。 包括的なドキュメントと理解を確保するためには:

  1. すべてのマイクロサービスのための中央集権的で最新のドキュメントを維持
  2. 主要な要素を含む:説明、アーキテクチャ図、連絡先情報、オンボーディングガイド、API詳細、ランブック
  3. 定期的なアーキテクチャレビューの実施
  4. プロダクションレディネス監査の実施
  5. プロダクションレディネスロードマップの作成と維持
  6. 可能な限りプロダクションレディネスチェックの自動化

ドキュメントと理解を向上させるための戦略:

  • ドキュメントの更新を開発ワークフローの一部にする
  • すべてのステークホルダーにアクセス可能な明確で専門用語のない言語を使用
  • よくある質問(FAQ)セクションを実装して一般的な質問に対応
  • チーム間で定期的な知識共有セッションを実施
  • プロダクションレディネスを組織のOKRや計画サイクルに結びつける

ドキュメントと理解を優先することで、組織は技術的負債を減少させ、チーム間の協力を改善し、マイクロサービスエコシステムの長期的な成功を確保できる。

Last updated:

レビュー

3.82 out of 5
Average of 100+ ratings from Goodreads and Amazon.

本書『Production-Ready Microservices』は、スーザン・ファウラーによるもので、賛否両論の評価を受けている。読者はその高レベルの概要とプロダクション準備のためのチェックリストを評価し、マイクロサービスに不慣れなマネージャーやエンジニアにとって有用だと感じている。しかし、多くの人々は技術的な深みや実践的な例の欠如を批判している。本書は組織的な側面とプロダクション準備に焦点を当てている点で称賛されているが、一部の読者は繰り返しが多く、抽象的すぎると感じている。特に管理職にある人やマイクロサービスエコシステムの広範な理解を求める人にとって、より技術的なマイクロサービスの書籍を補完する読み物として推奨されている。

著者について

スーザン・ファウラーは、マイクロサービスに関する業績と職場の平等を推進する活動で知られるソフトウェアエンジニア兼著者である。彼女は、ウーバーでのセクハラと差別の経験を詳細に記したブログ投稿を公開した後、注目を集め、会社の文化に大きな変化をもたらした。ファウラーの経歴には、いくつかのテック企業での役割が含まれ、大規模な分散システムとマイクロサービスに取り組んできた。彼女の著書『Production-Ready Microservices』は、現場での実践経験に基づいている。ファウラーはまた、さまざまな出版物に寄稿しており、技術的および文化的な問題に関するテック業界の議論への貢献が認められている。

0:00
-0:00
1x
Create a free account to unlock:
Bookmarks – save your favorite books
History – revisit books later
Ratings – rate books & see your ratings
Listening – audio summariesListen to the first takeaway of every book for free, upgrade to Pro for unlimited listening.
Unlock unlimited listening
Your first week's on us
Today: Get Instant Access
Listen to full summaries of 73,530 books. That's 12,000+ hours of audio!
Day 5: Trial Reminder
We'll send you a notification that your trial is ending soon.
Day 7: Your subscription begins
You'll be charged on Sep 26,
cancel anytime before.
What our users say
“...I can 10x the number of books I can read...”
“...exceptionally accurate, engaging, and beautifully presented...”
“...better than any amazon review when I'm making a book-buying decision...”
Compare Features
Free Pro
Read full text summaries
Listen to full summaries
Unlimited Bookmarks
Unlimited History
Benefits
Get Ahead in Your Career
People who read at least 7 business books per year earn 2.3 times more on average than those who only read one book per year.
Unlock Knowledge Faster (or Read any book in 10 hours minutes)
How would your life change if we gave you the superpower to read 10 books per month?
Access 12,000+ hours of audio
Access almost unlimited content—if you listen to 1 hour daily, it’ll take you 33 years to listen to all of it.
Priority 24/7 AI-powered and human support
If you have any questions or issues, our AI can resolve 90% of the issues, and we respond in 2 hours during office hours: Mon-Fri 9 AM - 9 PM PT.
New features and books every week
We are a fast-paced company and continuously add more books and features on a weekly basis.
Fun Fact
2.8x
Pro users consume 2.8x more books than free users.
Interesting Stats
Reduced Stress: Reading for just 6 minutes can reduce stress levels by 68%
Reading can boost emotional development and career prospects by 50% to 100%
Vocabulary Expansion: Reading for 20 minutes a day are exposed to about 1.8 million words per year
Improved Cognitive Function: Reading can help reduce mental decline in old age by up to 32%.
Better Sleep: 50% of people who read before bed report better sleep.
Can I switch plans later?
Yes, you can easily switch between plans.
Is it easy to cancel?
Yes, it's just a couple of clicks. Simply go to Manage Subscription in the upper-right menu.
Save 62%
Yearly
$119.88 $44.99/yr
$3.75/mo
Monthly
$9.99/mo
Try Free & Unlock
7 days free, then $44.99/year. Cancel anytime.