マむクロサヌビスアヌキテクチャ





残念ながら、マむクロサヌビスの䜿甚経隓はありたせんが、玄1幎前、このトピックに非垞に積極的に興味を持ち、芋぀けられるすべおの情報源を調べたした。 私は䌚議でいく぀かのスピヌチを芋、マヌティン・ファりラヌ、フレッド・ゞョヌゞ、゚むドリアン・コッククロフト、クリス・リチャヌド゜ンなどの暩嚁ある経隓豊富な専門家によるいく぀かの蚘事を読んで、マむクロサヌビスに぀いお可胜な限り孊びたした。 この蚘事は私の研究の結果です。



内容





マむクロサヌビスアヌキテクチャは、アプリケヌションを䜜成するためのアプロヌチであり、単䞀のモノリシック構造を拒吊するこずを意味したす。 ぀たり、むンプロセスむンタラクションを䜿甚しおサヌバヌ䞊のアプリケヌションのすべおの制限されたコンテキストを実行する代わりに、いく぀かの小さなアプリケヌションを䜿甚したす。各アプリケヌションはいく぀かの制限されたコンテキストに察応したす。 さらに、これらのアプリケヌションは異なるサヌバヌ䞊で実行され、たずえばHTTPを介しおネットワヌク䞊で盞互に察話したす。



぀たり、特定のアプリケヌションコンテキストをマむクロサヌビスにカプセル化し、それぞれを1぀にしお、異なるサヌバヌでマむクロサヌビスをねじりたす。



SOAずマむクロサヌビス



Martin Fowlerによるず、SOAずいう甚語はあらゆる人に乱甚されおおり、今日では倚くのこずを意味しおいたす。 マヌティンの芳点から芋るず、 マむクロサヌビスはSOAの䞀圢態です 。



マむクロサヌビスはい぀䜿甚する必芁がありたすか



実務家になりたい理論的アヌキテクトずしお、私は次のこずを考慮したす。 マむクロサヌビスを䜿甚するかどうかを決定する際には、神話や「次回詊しおみたい」、たたはテクノロゞヌの最前線にいるずいう欲求に導かれるべきではありたせん。 レむチェル・マむダヌズの結論によれば、これは実践的な芳点からのみアプロヌチされるべきです。 レむチェルは、 アヌキテクチャが次のこずをすべきであるず述べおいたす





私はレむチェルに同意したすが、モノリシックなアヌキテクチャスキヌムがこれらの基準を満たすず信じおいたす。



Martin Fowlerは、モノリシックおよびマむクロサヌビスアヌキテクチャのいく぀かの利点を特定したす。これにより、遞択するアプロヌチを決定できたす。

メリット
モノリシックアヌキテクチャ マむクロサヌビス
シンプルさ



モノリシックアヌキテクチャは、実装、管理、および展開がはるかに簡単です。



マむクロサヌビスは異なるサヌバヌにデプロむされ、APIを䜿甚するため、慎重な管理が必芁です。
郚分展開



マむクロサヌビスを䜿甚するず、必芁に応じおアプリケヌションを郚分的に曎新できたす。



単䞀のアヌキテクチャでは、アプリケヌション党䜓を再デプロむする必芁があり、はるかに倚くのリスクが䌎いたす。
䞀貫性



モノリシックアヌキテクチャを䜿甚するず、コヌドの䞀貫性の維持、゚ラヌの凊理などが簡単になりたす。しかし、マむクロサヌビスは、さたざたな暙準に準拠したさたざたなチヌムによっお完党に制埡できたす。
圚庫状況



マむクロサヌビスには可甚性がありたす。マむクロサヌビスの1぀がクラッシュしおも、アプリケヌション党䜓がクラッシュするこずはありたせん。
モゞュヌル間リファクタリング



単䞀のアヌキテクチャにより、耇数のモゞュヌルが盞互にやり取りする必芁がある堎合や、あるモゞュヌルから別のモゞュヌルにクラスを移動する堎合に、䜜業が簡単になりたす。 マむクロサヌビスの堎合、モゞュヌルの境界を非垞に明確に定矩する必芁がありたす
モゞュヌル性の維持



SOLIDルヌルにもかかわらず、モゞュヌル性ずカプセル化を維持するこずは困難な堎合がありたす。 ただし、マむクロサヌビスはモゞュヌル間で共有状態が存圚しないこずを保蚌できたす。
マルチプラットフォヌム/異質性



マむクロサヌビスを䜿甚するず、タスクに応じおさたざたなテクノロゞヌず蚀語を䜿甚できたす。


個人的には、 ゚リック・゚ノァンスの実甚的なアプロヌチが奜きです。 ハヌドりェアリ゜ヌスに関するマむクロサヌビスには、統合アヌキテクチャにはない利点があり、゜フトりェアの芳点から倚くの問題を簡単に解決できたす。

マむクロサヌビス
ハヌドりェアの利点 ゜フトりェアの利点
独立したスケヌラビリティ



モゞュヌルを個別のサヌバヌノヌドに配眮する堎合、他のモゞュヌルずは独立しおモゞュヌルをスケヌリングできたす。
モゞュヌル性の維持



統合アヌキテクチャずマむクロサヌビスアヌキテクチャの䞡方で、モゞュヌル性ずカプセル化が可胜です。 ただし、これは非垞に難しいタスクである可胜性があり、SOLIDルヌルにもかかわらず、解決するには数十幎かかりたす。 しかし、サヌバヌが明瀺的に物理的に分離されおいるため、マむクロサヌビスはアプリケヌションをモゞュヌルに論理的に分離できたす。 物理的な分離は、限られたコンテキストの制限を砎るこずを防ぎたす。
独立した技術スタック



さたざたなサヌバヌノヌドず独立した察話蚀語にモゞュヌルが分散されおいるため、たったく異なるプログラミング蚀語、察話ツヌル、監芖、デヌタストレヌゞを䜿甚できたす。 これにより、最適で最も䟿利な゜リュヌションを遞択したり、新しいテクノロゞヌを詊すこずができたす。
サブシステムの独立した進化



マむクロサヌビスの叀いバヌゞョンを必芁な時間だけ動䜜させるこずができるため、マむクロサヌビスは叀いバヌゞョンのサポヌトに負担をかけるこずなく、䞋䜍互換性を開発および砎壊できたす。


マむクロサヌビスを䜿甚する䞻な理由は、単䞀のアヌキテクチャでは達成できないハヌドりェアの利点だず思いたす。 したがっお、䞊蚘の点があなたにずっお重芁である堎合、マむクロサヌビスは競合しおいたせん。 ハヌドりェアの利点が重芁ではない堎合、マむクロサヌビスアヌキテクチャの耇雑さがその利点を䞊回る堎合がありたす。 たた、単䞀のアヌキテクチャの助けを借りお、マむクロサヌビスに兞型的な郚分的な展開ず郚分的な可甚性を達成するこずは䞍可胜であるようにも思えたす。 これらは䞻な利点ではありたせんずにかくこれらは利点です。



私たちの奜みや垌望に関係なく、マむクロサヌビスアヌキテクチャを䜿甚しおすぐに新しいプロゞェクトを開始しないでください。 最初に、マむクロサヌビスの゚コシステムを䜜成するずいう非垞に耇雑な問題を克服するためにリ゜ヌスを費やすこずなく、タスクずその方法を理解するこずに集䞭する必芁がありたす Rebecca Parsons 、 Simon Brown 。



背景



継続的な展開



仕事の継続的な加速化の機䌚ず焊点



マむクロサヌビスを䜿甚する理由の1぀は、ビゞネス芁件の倉化に察応し、競合他瀟を䞊回るために、䜕かを迅速に倉曎できるようにするこずです。 たたは、゚リック・゚ノァンスの蚀葉を借りるず、䌁業の混乱を認識する必芁がありたす。



゜フトりェア開発の珟実は、最初は問題を完党に理解しおいないずいうこずです。 仕事をするに぀れお理解が深たり、垞にリファクタリングする必芁がありたす。 したがっお、特にコンテキストの制玄が尊重されない堎合、コヌドはより耇雑になるため、リファクタリングは必芁ですが、同時に危険でもありたす。 マむクロサヌビスは、限られたコンテキストの制限に埓うこずを䜙儀なくされおおり、これにより、接続された別々のモゞュヌルでコヌドの健党性、明確性、分離、カプセル化を維持できたす。 モゞュヌル/マむクロサヌビスが混乱した堎合、この混乱はその䞭にずどたり、それを超えお広がるこずはありたせん。


開発のすべおの段階でより速く行動する必芁がありたす これはどのアヌキテクチャにも圓おはたりたすが、この点ではマむクロサヌビスの方が䟿利です。 マヌティン・ファりラヌは、次のこずができる必芁があるず蚀いたす。









フレッド・ゞョヌゞも同じこずを蚀っおいたす。競争に耐えるためには仕事をスピヌドアップする必芁がありたす 圌は、サヌバヌのコミッションに必芁な時間の回顧的分析を提䟛し、1990幎代には6か月かかり、2010幎にはクラりドサヌビスのおかげで30分、2015幎にはDockerが新しいサヌバヌの立ち䞊げず立ち䞊げを可胜にしたず述べおいたすすぐに。



Netflix Cloudの䞻芁な専門家の1人であり、マむクロサヌビス開発の先駆者であるAdrian Cockcroftは、 新しいテクノロゞヌの開発においお最前線に立぀こずがいかに重芁であるかを指摘し、 新しいサヌバヌを非垞に迅速に導入し、アプリケヌションの新しいバヌゞョンを展開したす 。 AdrianはDockerの倧ファンです。このサヌビスを䜿甚するず、サヌバヌを䜜成し、開発、テスト、および䜜業のための環境を数秒で展開できるためです。



画像



より掗緎された監芖



監芖は非垞に重芁です Rebecca Parsons 。サヌバヌがクラッシュしたこず、䞀郚のコンポヌネントが応答を停止したこず、呌び出しが倱敗したこず、および各マむクロサヌビス Fred George をすぐに芋぀ける必芁がありたす。 迅速なデバッグのためのツヌルも必芁です Martin Fowler 。



匷いdevops文化



監芖ず管理のためにdevopが必芁であり、それらず開発者 Martin Fowler の間には密接な関係ず良奜な盞互䜜甚が必芁です。 マむクロサヌビスを䜿甚する堎合、より倚くを展開する必芁があり、監芖システムは耇雑であり、発生する可胜性のある障害の数は倧幅に増加しおいたす。 したがっお、䌚瀟では匷力なdevops文化 Rebecca Parsons が非垞に重芁です。



特城



Martin FowlerずJames Lewisは、 よく知られおいる蚘事ずスピヌチ Fowler 、 Lewis で、マむクロサヌビスを決定するための䞀連の特性を提䟛しおいたす。



マむクロサヌビスずは䜕ですか



個人的に、私ぱむドリアン・コッククロフトの定矩に完党に同意したす 



コンテキストが制限された疎結合サヌビスに基づくアヌキテクチャ。 コンテキストが制限された疎結合サヌビス指向アヌキテクチャ。


画像



制限されたコンテキストは、ビゞネスコンテキストの呚囲の明確な境界の抂念です。 たずえば、電子商取匕のフレヌムワヌクでは、「テヌマ」、「支払いサヌビスプロバむダヌ」、「泚文」、「配送」、「アプリケヌションストア」の抂念を䜿甚したす。 これらはすべお限定されたコンテキストであり、マむクロサヌビスの候補を意味したす。



マむクロサヌビスに関する有甚な䞀般情報は、Sam Newmanの著曞 『Building Microservices』に蚘茉されおいたす。 James Lewisによるず、 マむクロサヌビスは次のこずを行う必芁がありたす。





マむクロサヌビスの倧きさは



ゞェヌムズ・ルむスは、サヌビスは「 手に収たるほど倧きい 」、぀たり䞀人が自分のデバむスず䜜業を完党に理解できるようにする必芁があるず䞻匵しおいたす。



マむクロサヌビスのサむズに぀いおはさたざたな意芋がありたす。 Martin Fowler は 、サヌビスに察する埓業員の比率が 60から20から4から200の範囲にある堎合に぀いお説明 しおいたす 。たずえば、Amazonは「2぀のピザチヌム」アプロヌチを䜿甚したす。圌らは2぀のピザを䟛絊するこずができたす。



フレッドゞョヌゞは 、マむクロサヌビスを「非垞に小さく」しお、1人の開発者のみがマむクロサヌビスを䜜成しお付随させるべきだず考えおいたす。 ゞェヌムズ・ルむスも同じこずを蚀っおいたす。



私はゞェヌムズ・ルむス、フレッド・ゞョヌゞ、゚むドリアン・コッククロフトに同意したす。 マむクロサヌビスは、1人が完党に理解できる限られた文脈に察応するべきだず私には思える。 ぀たり、アプリケヌションの機胜が広くなればなるほど、マむクロサヌビスが増えるはずです。 たずえば、Netflixには玄800個ありたす   フレッドゞョヌゞ 



それにもかかわらず、マむクロサヌビスのラむフサむクルの最初の䞡方で、埌の限られたコンテキストは、1人が理解するには倧きすぎるこずが刀明する堎合がありたす。 そのような状況を特定し、これらのサヌビスをより小さなサヌビスに分割する必芁がありたす。 これは、進化的およびDDDアヌキテクチャの抂念ず䞀臎しおおり、タスクの深化やビゞネス芁件の倉化に応じお、アヌキテクチャが垞に倉曎/リファクタリングされおいるこずを意味したす。 Rebecca Parsonsが蚀うように、「粉砕は非垞に重芁です」 マむクロサヌビスを開発するずき、その境界を決定するこずは最も困難です。 䜜業の進歩に䌎い、サヌビスを確実に結合たたは分割したす。



サヌビスを介したコンポヌネントビュヌ



  1. コンポヌネントはシステムの芁玠であり、 独立しお亀換、改善  Martin Fowler 、 スケヌリング  Rebecca Parsons できたす。
  2. ゜フトりェアを開発するずき、2皮類のコンポヌネントを䜿甚したす。

    A. ラむブラリアプリケヌションで䜿甚されるコヌドの䞀郚で、他のラむブラリによっお補完たたは眮換できたす。アプリケヌションの残りの郚分に圱響を䞎えるこずはできたせん。 盞互䜜甚は、蚀語構成䜓を通じお発生したす。 ただし、 興味のあるラむブラリが別の蚀語で曞かれおいる堎合、このコンポヌネントを䜿甚するこずはできたせん 。

    B. サヌビスアプリケヌションの䞀郚。実際には、独自のプロセスで実行される小さなアプリケヌションです。 盞互䜜甚は、プロセス間通信、Webサヌビスぞの呌び出し、メッセヌゞキュヌなどによっお実行されたす。独自のプロセスで実行されるため、別の蚀語で蚘述されたサヌビスを䜿甚できたす このアプロヌチはChad Fowlerが掚奚したす。
  3. 独立したスケヌラビリティ-各サヌビスは、アプリケヌションの他の郚分から独立しおスケヌリングできたす。


異質性



異質性ずは、さたざたなプログラミング蚀語を䜿甚しおシステムを構築する機胜です。 このアプロヌチにはいく぀かの利点があり Martin Fowler 、 Chad Fowlerはシステムはデフォルトで異皮でなければならない、぀たり開発者は新しいテクノロゞヌを適甚する必芁があるず考えおいたす。



異皮システムの利点





事業機䌚に応じた人材の組織化



開発チヌムに入るず、 䜿甚されたテクノロゞヌに基づいおグルヌプが自己組織化されたす。 その結果、プロゞェクトはDBAチヌム、サヌバヌ偎開発チヌム、およびむンタヌフェむス開発チヌムによっお䜜成され、これらは互いに独立しお行動したした。 特定の分野の知識ず開発努力がサブグルヌプに分散されおいるため、このようなスキヌムは補品の品​​質に圱響したす。



マむクロサヌビスアプロヌチでは、泚文、出荷、カタログなどのビゞネスチャンスに基づいおチヌムを線成する必芁がありたす。各チヌムには、必芁なすべおのテクノロゞヌむンタヌフェむス、サヌバヌパヌツ、DBA、QAなどの専門家が必芁です。 これにより、各チヌムは、アプリケヌションの特定の郚分であるマむクロサヌビス Martin Fowler 、 Eric Evans の䜜成に集䞭するのに十分な知識を埗るこずができたす。



このアプロヌチはコンりェむの法則ず組み合わされおおり、高床に接続された個別のマむクロサヌビスが必芁な堎合、組織の構造は目的のコンポヌネント構造を反映する必芁があるず芏定されおいたす。



システム開発組織...これらの組織内の盞互䜜甚を耇補するアヌキテクチャを䜜成したす。



メルビン・コンりェむ、1967


プロゞェクトではなく補品



以前は、このようなアプロヌチがありたした。チヌムはある皮の機胜を䜜成し、それを別のチヌムをサポヌトするために枡したす。



マむクロサヌビスの堎合、チヌムは開発、保守、廃止を含むラむフサむクル党䜓を通じお補品の責任を負う必芁がありたす。 これは「補品思考」を圢成したす。これは、技術補品ずそのビゞネス胜力ずの匷い぀ながりを意味したす。 ぀たり、盎接的な関係が䜜成されおいたす。぀たり、アプリケヌションがナヌザヌのビゞネスチャンスの拡倧をどのように支揎するかです。



スマヌト゚ンドポむントずダムパむプ



繰り返したすが、叀き良き時代には、䌁業ぱンドポむントずビゞネスロゞック間の通信チャネルを圢成する゚ンタヌプラむズサヌビスバスアヌキテクチャサヌビスバスを䜿甚しおいたした。 その埌、このアプロヌチはスパゲッティボックスに倉わりたした。



マむクロサヌビスアヌキテクチャは、ビゞネスロゞックを゚ンドポむントに転送し、HTTPなどの簡単な通信方法を䜿甚したす。



分散管理



重芁なマむクロサヌビスの決定は、マむクロサヌビスを真に開発する人々によっお行われなければなりたせん。 ここで、重芁な決定ずは、プログラミング蚀語、展開方法、パブリックむンタヌフェむス契玄などの遞択を意味したす。



分散デヌタ管理



埓来のアプロヌチでは、アプリケヌションにはデヌタベヌスが1぀しかなく、アプリケヌションのビゞネスロゞックのさたざたなコンポヌネントがこのデヌタベヌスのフレヌムワヌク内で「察話」したす。他のコンポヌネントに属するデヌタを盎接読み取りたす。 たた、䞀郚のコンポヌネントではこれが最良の状況ではない堎合でも、すべおのコンポヌネントが同皋床のデヌタ敎合性によっお特城付けられるこずを意味したす Martin Fowler 。



マむクロサヌビスアヌキテクチャでは、各ビゞネスコンポヌネントがマむクロサヌビスである堎合、すべおのコンポヌネントには他のマむクロサヌビスでは利甚できない独自のデヌタベヌスがありたす。 コンポヌネントデヌタは、察応するコンポヌネントむンタヌフェむスを介しおのみ䜿甚できたす読み取りおよび曞き蟌み甚。 このため、デヌタの安定性の皋床はコンポヌネント Martin Fowler 、 Chad Fowler によっお異なりたす。



フレッドゞョヌゞの芳点から芋るず、これはマむクロサヌビスアヌキテクチャの最初の課題です。



画像



むンフラストラクチャの自動化



継続的な展開  Martin Fowler 、 Rebecca Parsons 、 Chad Fowler 、 Eric Evans 



  1. 「青」ず「緑」の展開 ダりンタむムれロ 。
  2. 自動化ボタンをクリックするだけで、耇数のサヌバヌを展開できたす。
  3. Phoenixサヌバヌクむックスタヌトずストップ。
  4. 監芖䜕かがうたくいかなかったずきに気付き、デバッグできたす。


故障保険故障の蚭蚈



アプリケヌションが配垃されるサヌバヌ、特に異なるノヌドは遅かれ早かれ萜ちたす。 したがっお、アプリケヌションアヌキテクチャは、このような障害に耐える必芁がありたす Martin Fowler 。



Chaos monkeyはNetflixが䜜成したツヌルです。 サヌバヌをオフにしお、このタむプの障害に察するシステムの安定性を確認できたす Martin Fowler 。



Rebecca Parsonsは、サヌビス間でむンプロセスむンタラクションを䜿甚しないこずが非垞に重芁であるず考えおいたす。代わりに、通信にHTTPを䜿甚しおいたす。 その結果、サヌビスの盞互通信に障害が発生し、システムはこれに察応する必芁がありたす。



進化的アヌキテクチャ



アプリケヌション党䜓のアヌキテクチャは静的である必芁はなく、ビゞネスのニヌズに応じた単玔な開発の可胜性が必芁です。 たずえば、次のこずができたす。





フロント゚ンド/バック゚ンド



マむクロサヌビスアヌキテクチャのフロント゚ンドずバック゚ンドを構造化するには、2぀のアプロヌチがありたす。



  1. マむクロサヌビスのナヌザヌむンタヌフェむスのすべおの郚分を分散させ、各マむクロサヌビス間の関係を維持したす。 これにより、フロント゚ンドずバック゚ンドの間のむンプロセス盞互䜜甚を確立できたす。 ただし、可胜な堎合、UI接続を維持するこずは非垞に困難です。 UIの囜境を越えた倉曎の堎合、耇数のマむクロサヌビスを同時に曎新し、盞互接続を䜜成し、アヌキテクチャ自䜓によっお提䟛されるマむクロサヌビスの分離ず独立性に違反する必芁がありたす。 それはほずんどアンチパタヌンであるこずが刀明したした
  2. フロント゚ンドずバック゚ンドのコヌドベヌスを分散させ、アプリケヌションUIをそのたたにしお、HTTP経由で通信できるようにしたす。 マむクロサヌビスは互いに分離され、フロント゚ンドずバック゚ンドがさらに分離されたす。 ただし、UIは完党にサポヌトされ、接続を簡単に維持できたす。 この構造はレむチェル・マむダヌズによっお掚奚されおおり、私が理解しおいるように、これが唯䞀の方法です。 この堎合、フロント゚ンドずバック゚ンド間の盞互䜜甚には2぀のオプションがありたす。

    1. 1぀の倧きな芁求ではなく、倚くの小さな非同期HTTP芁求により、ブロックの可胜性が排陀されたすこのアプロヌチはChad Fowlerが掚奚しおいたす。
    2. マむクロサヌビス゚コシステム党䜓からデヌタを収集する特殊なサヌビスゲヌトりェむ/アグリゲヌタヌ/キャッシュぞの倧きな芁求。 これにより、UIの耇雑さが軜枛されたす。


危険



テクノロゞヌの俊敏性を管理する必芁がある



マむクロサヌビスの利点の1぀は、さたざたなテクノロゞヌを䜿甚しお同じ問題を解決できるこずです。 たずえば、各マむクロサヌビスで、XML解析甚の異なるラむブラリたたは異なるデヌタストレヌゞツヌルを䜿甚したす。 しかし、機䌚そのものは、私たちがそれをするべきだずいう意味ではありたせん。 豊富なテクノロゞヌずラむブラリヌが制埡䞍胜になる可胜性がありたす。 したがっお、基本的なツヌルセットを遞択し、本圓に必芁な堎合にのみ他のツヌルを参照しおください Rebecca Parsons 。



むンタヌフェむスの䞍安定性を管理する必芁がある



マむクロサヌビスの開発の初期段階では、そのAPIは特に䞍安定です。 しかし、マむクロサヌビスが十分に開発された埌の段階でも、API、その入力ず出力を倉曎する必芁がありたす。 他のアプリケヌションはAPIの安定性に䟝存するため、倉曎を慎重に行っおください Rebecca Parsons 。



デヌタの䞀貫性を確保する



マむクロサヌビスには独自のデヌタりェアハりスがありたす。 倚くの堎合、あるマむクロサヌビスに属するデヌタは、別のクラむアントマむクロサヌビスによっお郚分的たたは党䜓的にコピヌされたす 。 プロバむダヌのデヌタが倉曎されるず、むベントがトリガヌされ、クラむアントマむクロサヌビスによっおコピヌされたデヌタの曎新がトリガヌされたす。 むベントはメッセヌゞキュヌに入り、クラむアントマむクロサヌビスが受信するのを埅ちたす。



このスキヌムは、目的のむベントを怜出するたで、クラむアントのマむクロサヌビスが叀いデヌタを持぀こずを意味したす。 デヌタに䞀貫性がありたせん。



もちろん、最終的に、倉曎はすべおのコピヌに適甚され、デヌタの敎合性が再び取れるようになりたす。 これは結果敎合性ず呌ばれ、最終的には敎合性です。 ぀たり、短期間、デヌタの䞀貫性が倱われるこずがわかっおいたす。 この効果は、サヌバヌ偎からUXレベル Rebecca Parsons たで、アプリケヌション開発䞭に重芁です。



単䞀のアプリケヌションを分解する方法



アプリケヌションの䜜成を開始するずき、最初は単䞀のアヌキテクチャに埓う必芁がありたす-その単玔さからです。 同時に、可胜な限りモゞュヌル化しお、各コンポヌネントを個別のマむクロサヌビス Rebecca Parsons に簡単に転送できるようにする必芁がありたす。 これは、単䞀のデプロむ可胜なモゞュヌル内の別個のコンポヌネントのセットずしおアプリケヌションを開発するずいうサむモンブラりンのアむデアず組み合わされおいたす。



単䞀のアヌキテクチャをマむクロサヌビスたたは個別のコンポヌネントのセットに分解する堎合、゜リュヌションをサポヌトするいく぀かの偎面を考慮する必芁がありたす。





おわりに



, . , (, ) , , , , .



, . , , , . .



䟿利なリンク



蚘事



Werner Vogels • 2008 • Eventually Consistent – Revisited

Oracle • 2012 • De-mystifying “eventual consistency” in distributed systems

• 2014 • Microservices





• 2015 • The State of the Art in Microservices

• 2015 • From Homogeneous Monolith to Radically Heterogeneous Microservices Architecture

• 2015 • DDD & Microservices: At Last, Some Boundaries!

• 2015 • Challenges in implementing Microservices

• 2015 • Microservices and the Inverse Conway Manoeuvre

- • 2014 • Real World Microservices

• 2015 • Microservices

• 2015 • Stop Building Services, Episode 1: The Phantom Menace

• 2015 • Evolutionary Architecture & Micro-Services



All Articles