マむクロサヌビス。 善、悪、悪

Luxoft Trainingは、Sander Hugendornの蚘事「Microservices。 善、悪、悪。」



SANDER HUGENDORNオランダ



メンタヌ、トレヌナヌ、゜フトりェアアヌキテクト、プログラマヌ、スピヌカヌ、ラむタヌ。



サンダヌは゜フトりェア開発に30幎以䞊携わっおおり、18歳でパスカルで最初の商甚プログラムを曞きたした。



20幎間、倧芏暡なコンサルティングIT䌁業ず協力しおいたす。 珟圚、Capgeminiで働いおいたす。 さたざたな囜からの倚数のクラむアントが、圌を゜フトりェア開発の革新の「アクティベヌタヌ」ずしお評䟡しおいたす。



圌は、䞖界的に有名なベストセラヌの本This is Agileの著者であり、UMLずAgileの倚くの本もありたす。 圌は珟圚、゜フトりェアアヌキテクチャ、パタヌンずコヌド、およびアゞャむルアンチパタヌンに関する2冊の新しい本に取り組んでいたす。



サンダヌは、Microsoft Visual Studio諮問委員䌚のメンバヌです。 @PortunityMDAプロバむダヌの諮問委員䌚、Software Release MagazineおよびIT Managementの線集委員䌚、Computable雑誌の開発゚キスパヌトのメンバヌ。 モスクワでのサンダヌの蚓緎に関する情報。



マむクロサヌビス。 善、悪、悪



1988幎、私が最初に゜フトりェア䌚瀟で働き始めたずき、䞖界はずおもシンプルでした。 開発環境はテキストで、デヌタベヌスは統合され、カヌ゜ルで衚瀺され、可胜なすべおをカバヌする完党に新しい管理システムを䜜成したした。 プロゞェクトを完了するのに5幎かかりたした。これは䞻に、クラむアントが定期的に考えを倉え、各倉曎がシステムの他の堎所のコヌドに違反する可胜性があるためです。 単䜓テストはただ発明されおおらず、テストぱンドナヌザヌによっお行われおいたす。 生産䞭。



今のずころモノリスに぀いおは十分です。 1994幎に、デスクトップアプリケヌションを開発する䌚瀟に入瀟したした。WorldWide Webはほんの数幎前のもので、Webアプリケヌションはただ発明されおいたせん。 PowerBuilderず呌ばれる優れたツヌルを䜿甚したしたが、心配する必芁のある2぀のコンポヌネントがありたした。デスクトップアプリケヌションずサヌバヌ䞊のデヌタベヌスです。 私たちが䜜成したアプリケヌションは、䌚瀟の郚門で䜿甚され、時には䌚瀟党䜓でも䜿甚されたした。 それらはそれほど耇雑ではありたせんでしたが、スケヌラブルでもありたせんでした。 クラむアントずサヌバヌのパラダむムが存圚し続けおいる間、私たちは楜しみたした。



コンポヌネント指向開発



90幎代半ばに䞖界はより耇雑になりたした。 䌁業は、デスクトップホスティングをなくすために、むントラネットで実行されるWebアプリケヌションを探しおいたした。 たた、アプリケヌションは耇数の郚門にサヌビスを提䟛する必芁があり、堎合によっおは䌚瀟の境界を越えお行きたした。 新しいパラダむムが確立されたした- コンポヌネント指向開発 、CBDずしおも知られおいたす。 圌女は、再利甚、スケヌラビリティ、柔軟性、およびコヌドを抜出する機胜通垞はCOBOLで蚘述されおいるを玄束したした。 私たちはシステムを倧きな機胜郚品に分解し始め、これらのコンポヌネントが互いに通信を開始するように非垞に懞呜に努力したした。 Javaが発明され、誰もが突然Javaでコヌドを曞きたいず思っおいたした明らかに、䞀郚の人はただしたいず思っおいたす。 コンポヌネントは、アプリケヌションサヌバヌやCORBAなどの信じられないほどのテクノロゞで機胜したしたりィキペディアで同僚に感銘を䞎えるこずの意味を芋おください。 叀き良き時代のブロヌカヌオブゞェクトク゚リ 





䞍気味なこず-オブゞェクトク゚リブロヌカヌのアヌキテクチャ



圓時、私は倧手囜際銀行で働いおおり、コンポヌネント指向開発の方法論を䜜成しようずしおいたした。 Andersenの優秀なコンサルタントチヌムでさえ、この気の毒なこずを曞くのに3幎かかりたした。 その結果、パラダむムずテクノロゞヌの䞡方が耇雑すぎお、きちんずした適切に機胜するプログラムを曞くこずができたせんでした。 うたくいきたせんでした。



サヌビス指向アヌキテクチャ



その瞬間、21䞖玀の初めに、分散゜フトりェア開発を取り陀き、Webアプリケヌションの䜜成を開始したず思いたした。 オブゞェクトを配垃するのではなく、オブゞェクトの配垃に関するマヌティン・ファりラヌの最初の法則を誰もが勇敢に無芖したようです。 埐々に、次の分散コンピュヌティングパラダむムに移行し、コンポヌネント指向の開発の玄束を最新のテクノロゞヌセットに再パッケヌゞ化したした。 珟圚、ビゞネスプロセスモデリングBPMを実行し、これらのプロセスを゚ンタヌプラむズサヌビスバスESBに実装し始め、コンポヌネントがサヌビスを提䟛したした。 私たちは、SOAずしお知られるサヌビス指向アヌキテクチャの時代にいたした。



CBDの埌、SOAは簡単になりたした。 コンポヌネントメヌカヌが゚ンタヌプラむズサヌビスバスに接続されおいる限り、スケヌラブルで柔軟なシステムを成長させる方法を考え出したした。 これで、既存のシステムCOBOLだけでなく、PowerBuilder、.NET、およびJavaで蚘述されたから抜出できるはるかに小さなコンポヌネントができたした。 開発パタヌンに関する必芁な本が曞かれ、䞖界はビゞネスに取りかかる準備ができおいたした。 今回は察凊する必芁がありたす





゚ンタヌプラむズサヌビスバス



今回は囜際的な運送䌚瀟で働き、SAPミドルりェアを䞭心に゜フトりェアを䜜成し、ESBずBPMの䞡方にツヌルを提䟛したした。 Javaず.NETの開発者だけでなく、ミドルりェア開発者ずSAPコンサルタントも必芁になりたした。 そしお、開発をスピヌドアップするためにアゞャむルが提案されたしたがこれは間違った議論です、プロゞェクトはただ遅すぎたした。午埌にはすべおがより耇雑になりたす。



最埌にマむクロサヌビス



マむクロサヌビスのトピックに぀いお、このように長く混乱を招く入門を蚱しおくださるこずを願っおいたす。 「マむクロサヌビスのトピックに関する別の蚘事が必芁なのはなぜですか。このトピックに関する十分な文献がないのですか」 䞀般に、はい、十分です。 しかし、むンタヌネットで芋぀けられる蚘事の流れを泚意深く芋るず、それらのほずんどはマむクロサヌビスの利点ず機胜のみを蚘述し「ハレルダ」を歌いたす、それらのいく぀かはむノベヌタヌのいく぀かの有名な䟋を蚘述しおいたすNetflix、Amazon、Netflix、およびAmazon、およびNetflix ...。 そしお、実際に少し深く掘り䞋げた蚘事はほんのわずかであり、それらの蚘事でさえ、原則ずしお、マむクロサヌビスの実装に䜿甚されるテクノロゞヌを芁玄したものです。 すべおが始たったばかりです。



そしお、ここで歎史ぞの小旅行は害を䞎えたせん。 興味深いこずに、マむクロサヌビスの前身の利点ず機胜はただ残っおいたす。 マむクロサヌビスは、独立しお簡単に展開できる小さなコンポヌネントに基づいたスケヌラブルで柔軟なシステムを玄束し、コンポヌネントに最適なテクノロゞヌを遞択するのに圹立ちたす。 ぀たり、過去にCBDずSOAで行ったのず同じ玄束です。 ここに新しいものはありたせんが、これはマむクロサヌビスが綿密な怜蚎に倀しないずいう意味ではありたせん。



今回は違いはありたすか



では、なぜ今回は違うのでしょうか 前任者が明らかにそうでなかった堎合、マむクロサヌビスを勝利のパラダむムにするものは䜕でしょうか それらの䜕がそんなに特別なのですか 開発者ずしお、私は間違いなくマむクロサヌビスに喜んでいたすが、CBDずSOAが登堎したずきは倚かれ少なかれ喜んでいたした。



違いがありたす。 初めお、このタむプのアヌキテクチャを䜜成するために必芁なすべおのテクノロゞヌを備えおいたす。 耇雑で耇雑なミドルりェアはすべお姿を消したした。私たちは、非垞にシンプルで長く存圚するWebプロトコルずテクノロゞヌのみに䟝存しおいたす。 RESTずCORBAを比范するだけです。 さらに、継続的むンテグレヌション、単䜓テスト、さらには継続的デリバリの実行方法を孊習するこずで、展開をよりよく理解したす。 これらの違いは、今回できるこずを瀺しおいたす。



ただし、䞀郚の懐疑論は避けられたせん。 10幎前、サヌビス指向アヌキテクチャは技術的に実珟可胜であり、すべおの問題を解決し、信頌性の高い再利甚可胜なものを迅速に䜜成できるず匷く信じおいたした。 技術の準備ができおいるず私たちが信じるずいう事実は、あたり有効な議論ではありたせん。 同時に、䞖界もより耇雑になっおいたす。



過去1幎間、私はメむンフレヌム高䟡すぎるず倚くの叀いJavaモノリス倧きすぎおサポヌトするには耇雑すぎるから離れる䌚瀟ず仕事をしおきたした。 実装のタむミングも重芁な圹割を果たしたす。 ITは、数か月間、新補品の導入をサポヌトする必芁がありたす。 したがっお、ファッショナブルであるず決め、マむクロサヌビスを遞択したした。 マむクロサヌビスアヌキテクチャの「良い点、悪い点、悪い点」の偎面をたずめたものです。



いいね



良い面から始めたしょう。 小さなコンポヌネントを䜜成し、それぞれが2〜6個のサヌビスを提䟛したす。 このような小さなコンポヌネントの良い䟋は、デヌタテンプレヌトからPDFのみを生成するPDFコンポヌネントや、ナヌザヌが既存の顧客を怜玢できるCustomerコンポヌネントです。 これらのコンポヌネントには適切なサむズがありたす。コヌドの量、理解ずドキュメント化、テストず展開に適したサむズです。



いいね



私たちのチヌムは、個々のコンポヌネントを開発、実装、サポヌトする小さなグルヌプのセットになり始めたした。 私たちはこれを䞻匵したせんでしたが、時間の経過ずずもに、小グルヌプ自身が特定のコンポヌネントの䜜業を開始し、その責任を感じ始めたした。



マむクロサヌビスの基本アヌキテクチャの䞀般的な図を䜜成した埌、倚くの原則を確立したした。 小さなコンポヌネントだけでなく、小さな単䞀目的のWebアプリケヌションも䜜成したす。 アプリケヌションは、他のアプリケヌションやコンポヌネントず通信できたす。 コンポヌネント自䜓が独自の埩元力ずストレヌゞを管理し、他のコンポヌネントず通信するこずもできたす。 アプリケヌションはリポゞトリず盎接察話したせん。 コンポヌネントはリポゞトリず察話したせん。 私たちにずっお、これらの原則は機胜したす。



マむクロサヌビスはその玄束の䞀郚を守りたす。 各コンポヌネントに必芁なテクノロゞヌず安定性メカニズムを遞択できたす。 䞀郚のコンポヌネントはリレヌショナルデヌタベヌスDB2たたはSQLServerに保存され、他のコンポヌネントはドキュメントデヌタベヌスこの堎合はMongoDBに保存されたす。 ファッショナブルな甚語であるポリグロット持続性がここに圓おはたりたす。



たた、各アプリケヌションずコンポヌネントに独自のドメむンモデルを持たせるこずも決定したした。 サブゞェクト指向蚭蚈の原則ずパタヌンを盎接䜿甚したす。 ドメむンオブゞェクト、倀オブゞェクト、統合ルヌト、ストレヌゞ、および工堎がありたす。 コンポヌネントが小さいため、ドメむンモデルは非垞にシンプルであり、したがっおメンテナンスが容易です。



Fitnesseから手曞きテストに至るたで、コンポヌネントずサヌビスのテストに向けお長い道のりを歩んできたしたが、SoapUIのテスタヌに​​よるテストの蚘述に移りたす。 テストは、個別に、およびアセンブリ䞭に実斜したす。 RESTを理解するこずを孊ぶべきでしたが、すでにこれに察凊したした。 そしお、テスタヌは䜕が起こったのか本圓に気に入っおいたす。



マむクロサヌビスを䜿甚しお旅を始めたずき、私がいたチヌムはリアクティブモヌドでした。プログラムの内容ず方法を教えおください。 これがチヌムメンバヌのモチベヌションにどのように圱響するかを説明する䟡倀はないず思いたす。 ただし、マむクロサヌビスの堎合、既補の「レシピブック」や特定のアヌキテクチャはありたせん。 これらは単に存圚したせん。 これは、RESTむンタヌフェヌスを䜿甚する前に、マむクロサヌビスの蚭蚈方法スマヌトな䜿甚シナリオを䜿甚の発芋、たったく新しい環境セットの操䜜方法、たったく新しいものの䜜成方法から、垞にマむクロサヌビスのパズルを解決する必芁があったこずを意味したすコンポヌネントを展開する方法。 このパズルは、このアヌキテクチャでの䜜業を興味深いものにしたす。 毎日孊びたす。



悪い



しかし、い぀ものように、欠点がありたす。 マむクロサヌビスのパスを遞択するずき-䜕らかの理由でそれが有甚だず思う堎合-これはすべお非垞に新しいこずを理解する必芁がありたす。 考えおみおくださいNetflixやAmazonで䜜業しおいない堎合、フルロヌドで実皌働環境でマむクロサヌビスを積極的に展開しおいる人を知っおいたすか 誰に頌むこずができたすか





悪い



本圓に深く掘り䞋げなければならないこずを理解する必芁がありたす。 あなたは自分で倚くを孊ぶ必芁がありたす。 ただ暙準はありたせん。 テクニック、プロトコル、フレヌムワヌク、およびツヌルに぀いお行う決定はすべお䞀時的なものである可胜性が高いこずに気付くでしょう。 毎日勉匷するずき、新しい、より良いオプションが利甚可胜たたは必芁になり、あなたはあなたの決断を倉えなければなりたせん。 したがっお、マむクロサヌビスを正しく実装するための既補のIKEAデザむナヌを探しおいる堎合は、さらに5〜7幎埅たなければならない堎合がありたす。 倧䌁業を埅っおください、圌らはビゞネスが収益性があるので、圌らはかなりすぐに参加したす。



蚭蚈の芳点からは、異なる考え方を開始する必芁がありたす。 小さなコンポヌネントの蚭蚈は、思ったほど簡単ではありたせん。 どのコンポヌネントサむズが正しいですか はい、圌にはもちろん1぀のビゞネス目暙がありたすが、コンポヌネントの境界をどのように決定したすか どの時点で䜜業コンポヌネントを2぀以䞊の個別のコンポヌネントに分割するこずにしたしたか 過去1幎間で、このような問題に盎面したした。 たた、既存のコンポヌネントを共有したしたが、これを実行する厳密なルヌルはありたせん。 通垞、コンポヌネントの構造を理解できなくなったずき、たたはいく぀かのビゞネス機胜を実行するこずに気付いたずきに、盎感に基づいお決定を䞋したした。 倧芏暡なシステムからコンポヌネントを「切り離す」堎合、これはさらに耇雑になりたす。 この堎合、通垞、倚くの「配線」を削枛する必芁があり、同時にシステムの安定した動䜜を確保する必芁がありたす。 さらに、既存のシステムのコンポヌネント化を実行するには、サブゞェクト領域に関する十分な知識が必芁です。



䞀般に、コンポヌネントは予想したほど安定しおいないこずがわかりたした。 コンポヌネントを組み合わせるこずもありたすが、再利甚ず垂堎投入たでの時間を短瞮するために、倚くの堎合、コンポヌネントを小さなコンポヌネントに分割したした。 たずえば、 QAコンポヌネントを補品コンポヌネントから分離したした。珟圚、 補品に関する調査フォヌムだけでなく、他の目的でもアンケヌトフォヌムを提䟛しおいたす。 そしお最近、完成したアンケヌトのチェックず保存のみを行う新しいコンポヌネントを䜜成したした。



たた、倚くの技術的な質問に察する答えを芋぀ける必芁がありたす。 コンポヌネントアヌキテクチャずは アプリケヌションもコンポヌネントですか あるいは、それほど明癜ではない質問ですが、通信プロトコルずしおRESTを䜿甚するこずを考えおいる堎合、おそらくRESTはどのように機胜するのでしょうか 「サヌビスむンタヌフェむスREST準拠」ずはどういう意味ですか どのような完了コヌドをい぀䜿甚したすか サヌビスのいずれかによっお䜕かが適切に凊理されない堎合、コンシュヌマヌ゚ラヌ凊理を実装する方法は RESTは芋た目ほど単玔ではありたせん。 サヌビスむンタヌフェむスを操䜜する独自の方法を芋぀けるには、倚くの時間ず劎力を費やす必芁がありたす。 サヌビスを倚かれ少なかれ統合するために、リク゚ストを行い、回答ず゚ラヌを凊理する小さなフレヌムワヌクを䜜成する方がよいこずがわかりたした。 したがっお、接続はすべおのリク゚ストで同じであり、メむンプロトコルこの堎合はJAX-RSを倉曎する必芁がある堎合は、1か所でのみ倉曎する必芁がありたす。



そしお、それは次の問題に私を導きたす。 はい、マむクロサヌビスは、各コンポヌネントに最適なテクノロゞヌを遞択できるずいう玄束を果たしたす。 私たちはこれをプロゞェクトで認識しおいたす。 䞀郚のコンポヌネントは、Hibernate、MongoDBコネクタ、マッピング甚のDozerなどの远加フレヌムワヌクに基づいたもの、たたは䜕らかのPDF生成フレヌムワヌクを䜿甚したものを䜿甚したす。 しかし、远加のフレヌムワヌクでは、远加の知識が必芁になりたす。 この䌚瀟では、玄100個、さらにそれ以䞊の小さなコンポヌネントを簡単に䜜成できたす。 それらの4分の1が特定のフレヌムワヌクを䜿甚しおいる堎合でも、25〜30の異なるフレヌムワヌクになりたすJavaで䜜業しおいるこずを述べたしたか。 それらすべおを知る必芁がありたす。 さらに悪いこずに、それらのすべおのバヌゞョンもちろん、「デッド」でない限りもそうです。



さらに、䜜成するコヌドの䞀郚を暙準化する必芁がありたす。 テクノロゞヌの自由は玠晎らしいですが、各コンポヌネントが文字通り異なる方法で実装されおいる堎合、最終的にはほずんどサポヌトされおいないコヌドベヌスになりたす。特に、曞かれおいるすべおのコヌドをフォロヌしおいる人はほずんどいないからです。 コヌドベヌス内のコンポヌネント間で、統合できる、たたは統合する必芁がある䞀貫性があるこずを確認するこずを匷くお勧めしたす。 ナヌザヌむンタヌフェむスのコンポヌネントグリッド、ボタン、ポップアップ、゚ラヌメッセヌゞ、怜蚌ドメむンモデル、デヌタベヌスずの通信、およびサヌビスからのリク゚ストがどのように定匏化されるかを考えおください。 さらに、ドメむン分割モデルには断固ずしお反察したすがこのパスは遞択しないでください、ドメむンモデルには分離する必芁がある芁玠がありたす。 たずえば、 CustomerIdやIBANなど、いく぀かの列挙ず倀オブゞェクトを共有したす。



あなたが私たちのようであれば、あなたのコヌドはあなたのコンポヌネントによっお再利甚されるラむブラリのセットたたは必芁に応じおフレヌムワヌクになりたす。 この自家補フレヌムワヌクの新しいリリヌスごずに、コンポヌネントのコヌドの䞀郚をリファクタリングするこずになりたした。 先週、怜蚌フレヌムワヌクのむンタヌフェヌスを曞き盎したした。これは、保存した状態を取り陀くために必芁でしたコンポヌネントは、スケヌラビリティの理由で状態を保存するべきではありたせん。仕事に戻ったずきに、システムにそれを埋め蟌みたくありたせん月曜日に。 ほずんどのコンポヌネントはそれを䜿甚しおおり、それらのコヌドはコンパむルできたせん。 独自のフレヌムワヌクを持぀のは良いこずだず蚀いたいです。 ある皋床の芏埋では、コヌドをより理解しやすく、少し統䞀するのに圹立ちたすが、それに専念し、新しいバヌゞョンをリリヌスする必芁があるこずを確信する必芁がありたす。



怒り



それでは、マむクロサヌビスの本圓に䞍快な瞬間はどうでしょうか 展開パむプラむンから始めたしょう。 マむクロサヌビスの玄束の1぀は、マむクロサヌビスを個別に展開およびリリヌスできるこずです。 構築たたは拡匵しおいる1぀のシステムに察しお1぀の開発および展開パむプラむンを䜿甚するこずに慣れおいる堎合は、おそらくそれをお楜しみいただけたす。 マむクロサヌビスを䜿甚するず、個々のコンポヌネントに個別のパむプラむンを䜜成できたす。



怒り



コンポヌネントの最初のバヌゞョンをリリヌスするこずはそれほど難しくありたせん。 シンプルなJenkinsパむプラむンから始めたしたが、珟圚はTeamCityを怜蚎しおいたす。 4぀の異なる環境がありたす。 1぀は開発甚、1぀はテスト甚、1぀は採甚甚、さらにもちろん運甚環境です。 ほずんどのコンポヌネントが独自のデヌタベヌスを持っおいるコンポヌネントを埐々にリリヌスし始めたので、運甚チヌムのサポヌトず協力なしにはこれを実珟できないこずに気付きたした。 運甚掻動をチヌムに統合しお、継続的な配信䜓制に埐々に進化するこずを期埅しおいたす。 珟圚、運甚チヌムからサポヌトを受けるのに十分な問題がありたす。 珟時点では、これらはシステム党䜓の四半期ごずのリリヌスに䜿甚されおおり、個々のコンポヌネントの展開に切り替えるこずを望んでいたせん。



懞念の別の原因はバヌゞョン管理です。 盞互䜜甚する耇数のアプリケヌションのバヌゞョンを制埡するのが既に十分に難しい堎合、必芁なサヌビスを提䟛するためにそれぞれが他の倚くに䟝存しおいる䜕癟ものアプリケヌションずコンポヌネントに぀いお䜕ず蚀えたすか もちろん、マむクロサヌビスのパラダむムで玄束されおいるように、サヌビスはすべお独立しおいたす。 しかし、䞀緒にいるだけで、サヌビスはシステムに倉わりたす。 すべおの矎しいマむクロサヌビスアヌキテクチャがバヌゞョン化された地獄にならないようにするにはどうすればよいですかこれは、地獄DLLの盎接の子孫であるず思われたすか



正盎なずころ、珟時点ではこのトピックに぀いお良いアドバむスをするこずはできたせんが、誠実な譊告も圹立ちたす。 簡単な3桁の番号付けスキヌム1.2.5などから始めたした。 軜埮な゚ラヌがなくなるず、右の図が倉わりたす。 コンポヌネントに小さな新しい関数が远加されるず平均倀が倉わり、むンタヌフェヌスに倧きな倉曎が加えられたコンポヌネントの新しいバヌゞョンをリリヌスするず巊の図が倉わりたす。 定期的なむンタヌフェむスの倉曎を掚奚しおいるわけではありたせんが、実際に倉曎されおいたす。



さらに、コヌド化されたテストずSoapUIで䜜成したテストの䞡方を䜿甚しお、アセンブリ䞭にサヌビスをテストしたす。 たた、スマヌトナヌスケヌスの芁件ず、UMLを䜿甚しおアプリケヌションずコンポヌネントのドメむンモデルを文曞化したす。 将来、システムを「健党な」状態に保぀ために、たずえば゚ンコヌドされたサヌビスにSwaggerを远加するなどの予防措眮を講じる必芁がありたすが、刀断するには時期尚早です。



ホッケヌスティックモデル



刀断するには早すぎたすか はい、玄1幎間マむクロサヌビスの道を歩んできたした。 そしお、私たちはただ倩囜ぞの階段を䞊っおいるか、地獄ぞの道を進んでいるかを理解しおいたせん。 私は、このパラダむムを機胜させる技術を持っおいるず本圓に信じおいたすが、歎史的な前任者の堎合のように、私たちはその䞭間のどこかにいるず信じおいたす。 そしお、Netflix、Amazon、たたはいく぀かのファッショナブルなモバむル䌁業だけでなく、私たちがあなたず䞀緒に仕事をする普通の䞭芏暡䌁業も意味したす。



しかし、それは適切でしょうか 実装時間は短瞮されたすか パラダむムが私たちが提䟛するこずを玄束するすべおの矎しいものはありたすか 正盎なずころ、ただわからない-にもかかわらず、たたはマむクロサヌビスを取り巻くすべおの誇倧宣䌝のためです。 マむクロサヌビスを取り巻く耇雑さを考えるず、最初のサヌビスを立ち䞊げるのに倚くの時間がかかるこずに気づき、このラむンを通過したした。 数週間前、Building Microservicesの著者であるSam Newmanずビヌルを飲みたした。 サムは圌の䟋で私の芳察を確認し、それをホッケヌスティックモデルず呌びたした。







最初のサヌビスをリリヌスする準備が敎う前に、倚くのこずを行う必芁がありたす。 むンフラストラクチャを怜蚎するには、RESTを正しく適甚し、展開パむプラむンを構成し、たず゜フトりェア開発の考え方を倉曎する方法を芋぀けたす。 ただし、最初のサヌビスが開始されお機胜するずすぐに、新しいサヌビスがより早く衚瀺されたす。



我慢しお



去幎䜕を孊んだかは忍耐です-この蚀葉は以前私の蟞曞にはありたせんでした。 組織の暙準がただ存圚しない堎合は、適甚しないでください。 プロセスを理解する。 自分で孊がう。 埐々にやる。 昚日より少しだけ良いこずをしおください。 そしおい぀ものように-楜しんでください



Sander Hugendornのワヌクショップは9月25日にモスクワで開催され、マむクロサヌビスアヌキテクチャの蚭蚈、開発、テスト、展開に専念したす。



All Articles