Skip to content

satoshi55d/msa-antipattrens-ja

Repository files navigation

序文

2006年後半、サービス指向アーキテクチャー(SOA)が大流行しました。 この非常に複雑なアーキテクチャの利点と欠点を十分に理解しないまま、企業はこぞって流行に飛び乗ってSOAを採用していました。 SOAを採用した案件に参画した企業は、いつもサービスの粒度、パフォーマンス、データ移行、そして特にSOAに伴う組織変更に悩まされていました。 その結果、多くの企業がSOAの取組みを断念したり、SOAにおける決まり事を全ては満たさないハイブリッドアーキテクチャを構築したりしました。

今日我々はマイクロサービスとして知られる比較的新しいアーキテクチャ形式でこの同じ経験を繰返そうとしています。 マイクロサービスは今まさに業界の最新動向であり、2000年代半ばのSOAと同様に大流行しています。 その結果、多くの企業はテスト容易性、迅速かつ容易なデプロイ、きめ細かなスケーラビリティ、モジュール性、全体的なアジリティ等、 マイクロサービスによって提供される利点を活用するために、このアーキテクチャ形式に期待を寄せています。 しかし、SOAと同じくマイクロサービスを開発している企業は、サービスの粒度、データ移行、組織変更、分散処理課題等に苦戦しています。

新しい技術やアーキテクチャ形式、プラクティスと同様に、アンチパターンや落とし穴は、それらについてより熟知し、その過程の中で多くの”教訓”を得るにつれて現れます。 アンチパターンと落とし穴は同じことのように見えるかもしれませんが、微妙に異なります。 Andrew Koenigは、アンチパターンを最初は良いアイデアのように見えるけれどもトラブルに導くものと定義します。 その一方で、私の友人Neal Fordは落とし穴を例え最初の段階だとしても、決して良いアイデアではないものと定義しています。 これは重要な違いです。アンチパターンは、開発期間や場合によっては本番稼動期間に入るまで良くない結果に気づかないことがある一方で、 落とし穴は大抵の場合、比較的早い段階で間違った方向に進んでいることがわかります。

この文書では、マイクロサービスを利用する際に現れる、より一般的なアンチパターンや落とし穴をいくつか紹介します。 この文書の目的はコストのかかる過ちを避けてもらう一助となることです。 本書は、アンチパターンや落とし穴がいつ発生するのかについて理解を促進するだけではありません。 こちらの方がより重要なのですが、アンチパターンや落とし穴を回避するテクニックや実践方法についても理解を促進します。

この文書は、マイクロサービスで遭遇するであろうアンチパターンや落とし穴の詳細の全てを含んでいるわけではありませんが、 比較的よくあるアンチパターンや落とし穴をいくつか取り上げています。 サービスの粒度(第5章 ”砂のごとき細かい粒度”の落とし穴)、データ移行(第1章 データ駆動型移行アンチパターン)、 リモートアクセスレイテンシ(第9章 ”まだ着かないの?”の落とし穴)、レポート出力(第4章 リーチインレポートアンチパターン)、 契約バージョン管理(第8章 ”変わらない契約”の落とし穴)、サービス応答性(第2章 タイムアウトアンチパターン)等が含まれています。

最近、オライリー向けに「マイクロサービスアンチパターンと落とし穴:コストのかかる過ちの回避方法を学ぶ」というビデオを録画しました。 マイクロサービスを使用するときに遭遇するであろうアンチパターンと落とし穴を全て含むだけでなく、それぞれについて深く掘り下げています。 ビデオにはあなたの現在のアプリケーションを分析するタスクと評価点が記載された自己分析ワークブックが含まれています。 この評価ワークブックを使用して、ビデオで紹介するアンチパターンや落とし穴に陥っているかどうか、またそれらを回避する方法を判断することが可能です。

About

Microservices AntiPatterns and Pitfalls (ja_JP)

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages