マイクロサービスアーキテクチャと.NETのコアに

マイクロサービス(microservice)この概念は彼の個人的なウェブサイトで2014年3月Martin Fowler氏に、2012年に登場した(https://martinfowler.com/articles/microservices.html)の言っています:

用語「Microserviceアーキテクチャは、」独立して展開可能なサービスのスイートなどのソフトウェアアプリケーションを設計する特定の方法を記述するために、過去数年間に生まれました。この建築様式のない正確な定義はありませんが、ビジネス能力、自動展開、エンドポイントにおける知能、言語やデータの分散制御の周りの組織の周りに一定の共通の特徴があります。

マイクロ・サービス・アーキテクチャ」過去数年間の長期上昇は、ソフトウェア・アプリケーションは、独立して記述されたサービスのスイートを展開されるように設計されている特定の方法です。そこにこの建築様式のない正確な定義はありません、が、それは、そのようなビジネスの周りの自動展開機能、スマートなエンドポイント、「中央集権行く」言語とデータの制御、などなど、いくつかの共通の特徴を持っています。

伝統的なシステムの開発は、私達の全体のシステムは、プレゼンテーション層、サービス層、ビジネスロジック、データアクセス層の開発に分かれているが、最終的に我々はそう、一緒にコードコンパイルリリースのすべてを持って来る:人気話すが、我々は考えることができます柔軟性のない開発、アプリケーション全体の崩壊を引き起こす可能性が小さなバグ、高いサービスコードと結合されたシステムは、保守が容易ではない。また、このような単純な開発としての利点は、分散管理を存在しないたが、それはまたのような欠点を持っています、新たなビジネスニーズにのみ、開発チームのメンバーは厳しいように、高い離職率は、チームのメンバーならば、新しいメンバーがチームの開発フレームワークに精通している必要があり、元のコードのロジックに追加することができれば、また、この開発モデルに適応することは困難です事業の増加は、データ増加量を増加させるシステムの機能を持っていて、高い同時実行でのビジネスニーズを満たすことができない。我々はマイクロサービスアーキテクチャを使用している場合、それは私たちのシステム全体の複数の事業に分割され、それぞれがビジネスは、HTTPを使用してサービス間のサービスを行う(メッセージキューが使用されてもよいRoocketMQ、Kafaka)通信、および 各サービスは独立した展開であるため、各サービスは、異なる事業者の同時ニーズに応じて、我々はサービスの単独のクラスタの展開を行うには、システムの負荷能力を向上させることができ、異なるストレージメソッドを使用し、異なる開発言語を使用することができます回避するために、繰り返しコード、いくつかの根本的な機能は、複数のサービスで使用される:、変更、及び他のサービスに影響を与えることなく、各サービスを展開する、もちろん、のようなマイクロサービスは、いくつかの欠点を有している「システムに結合された同期」を時にはあなたは、コードの重複につながるさまざまなサービスにいくつかのコードを追加する必要があり、分散システムの開発者は、このようなように、ネットワークの待ち時間、非同期のメカニズム、システムの耐障害性、分散トランザクション、およびなどの問題を考慮する必要があり、別の運用・保守費とコストを増加し、マイクロサービスアーキテクチャは、独立したサービスの数十を実行する必要があり、複数の言語や環境をサポートする必要があり、運用、保守担当者のための要件は比較的高いです。

要約:マイクロサービスアーキテクチャは抱擁マイクロサービスの前に、我々は、実際の状況の実際の状況とプロジェクトチームのためのフレームワークを採用するかどうかを選択する必要があり、多くの魅力的な場所があります。

 

.NETのコアは、コンピュータソフトウェアのための無料のオープンソースフレームワークの窓に適しており、LinuxのMacOSのオペレーティングシステムを主催し、アプリケーション開発機能のためのクロスプラットフォーム(Windows版、Mac OSX、Linux)のフレームワークは、Microsoftによって開発された最初の公式バージョンです(アプリケーションフレームワーク)、未来はFreeBSDとアルパインのプラットフォームをサポートする、Microsoftはオープンソース・ソフトウェア・プラットフォーム上での開発の先頭にあります。

.NETのコアの目標は、クロスプラットフォームの.NETプラットフォームを開発することであるため、.NETのコアは、.NET Frameworkクラスライブラリが含まれますが、違いは、.NET Framework、.NETのコアは、パケット化(パッケージ)の管理、アプリケーションを使用していることです.NET Frameworkにパッケージ化プログラムのみ必要なコンポーネントを取得する必要は、全く異なるアプローチを設置し、各バッグはまた、別の行のバージョン(バージョン線)、アプリケーションはもはやメインラインに追従する必須要件を有します。

.NETのコアの利点:

.NETのコア3.0は現在、WPFをサポートし、Windows開発を形成し、また、開発者のための柔軟性を提供UWP、3つのWPFとWindowsフォームの間の複合用途開発をサポート、Windowsフォームでは、既存のインターフェースUWPに導入することができますそして、WPFインチ

.NETのコアは、クロスプラットフォーム開発のために、より適しています。.NET Coreアプリケーションは、Windows、Linux、およびMac OSをサポートしています。マイクロソフト社の人気のVisual Studioのコードエディタは、Windows、Linux、およびMac OSをサポートしています。VSコードはまた、ネットのコアを使用して開発されているのIntelliSenseやデバッグ、(そのような崇高、EmacsやVIなど)多くのサードパーティのコードエディタをサポートしています。

.NETフレームワーク、Java(登録商標)、Rubyや他の言語の開発サービスの使用を含む、.NETコアと一緒に使用クロスプラットフォームサービスを可能にする.NETコアサポートマイクロサービスアーキテクチャ。

.NETのコア、モジュラー軽量コンテナで簡単に.NETのコアアプリケーションをデプロイするための柔軟性。コンテナは、Linuxとドッカー上のWindows ,. NetのコアとAzureのKubernetesサービスがうまく実行されている、クラウドを含め、あらゆるプラットフォーム上で展開することができます。

.NETのコアの各バージョン間の良好な相性。あなたは上記と同じコンピュータで同時にアプリケーションの異なるバージョンを実行することができます。

 

 

 

 

おすすめ

転載: www.cnblogs.com/minghon/p/11741519.html