マイクロサービスとは何ですか?なぜあなたはマイクロサービスを使うのですか?

序文

近年ではマイクロは、火災のサービスで、我々は技術に関連したマイクロポイントサービスについてお話したいと、マイクロサービスを構築している、それはとても主流ではないように見えました。

近年、多くの企業チームへの洞察や親しい友人はマイクロサービスを変更しようとしているが、多くのチームが実際にマイクロピットサービスの経験を踏む、とさえマイクロマイクロアウェイサービスにサービスを提供するために多くのチームを余儀なくされていなかった、大規模で書かれた最後の単一のアプリケーションを配布し、システムの変換は、マイクロサービスの急速な拡大もない後フレキシブル放出特性だけでなく、元のモノマーのアプリケーションに複数のプロジェクトで開発を容易にする、配備、簡単な機能(分割、複合体の開発および展開を失っ度)が増加している、私はろうそくの価値がないと言っています。

そして個人的な経験では、いくつかの大規模プロジェクトのマイクロサービスの復興と建設に参加しています。私はあなたが、彼らのビジネスのより適切な選択をするために組み合わせることができるマイクロサービスの利点と欠点を理解するためにあなたとマイクロサービスの開業医として実務経験を共有したいと思います例えば、この記事の3つのテーマ、のように:

  1. マイクロサービスとは何ですか?なぜマイクロサービスを使うのか?
  2. すべての問題を解決するためのマイクロサービス、問題が何であるかの導入?
  3. マイクロサービスの利用には従うために何原則すべきですか?状況のどのようなミクロのサービスを使用してはなりませんか?

(PS:マイクロチュートリアルサービスフレームワークツールの市場にはあまりにも多くは、マイクロ業務用品のBenpian単に一般的な概要ので、チュートリアルの様々なインストールと使用を必要としないので、あなたが使用している場合はマイクロサービスフレームワークは、我々は唯一のマイクロ話しています設計モデルのサービスやアプリケーションのためのシナリオの長所と短所)

ワン:マイクロサービスとは何ですか?なぜマイクロサービスを使うのか?

マイクロサービスとは何ですか?(学生に身近はスキップすることができます)

簡単な例:軍事ニュースは非常に強いが、学生は、空母戦闘能力ことを知っている必要があり参照するには、あまりにも明白な弱点は守備が悪い、シングル船空母は一人で行動しないことはほとんどあり、通常空母戦闘群が主な軍事力でありますあなたは、モノマー(防衛貧しい、貧しいモビリティ)の単一空母のアプリケーションを理解することができ、(複雑なスケジュールを、高い維持費)空母戦闘群はマイクロサービスとして理解しました。

ほとんどの開発者の経験と、それは伝統的なサーブレットであるかどうかを、単一のアプリケーションをかけて開発+ JSP、またはSSM、または今SpringBoot、彼らは、単一のアプリケーションなので、長い間私たちはアプリケーションをモノマーとのいずれかの欠点がありますか?我々は問題に直面している、ミクロサービスアーキテクチャを回す単一のアプリケーションを放棄する私たちを導きますか?個人的には、次のように主な問題がある要約したものです。

  • 高い導入コスト(どちらか1行のコード、またはコードの10行を変更し、全額を交換する必要があります)
  • ハイインパクト、高リスクの推移(どんなに小さなコードの変更、コストが同じです)
  • そのため、低周波の展開で得られる高コスト、高リスクの(すぐにお客様のニーズにお届けすることができません)

もちろん、このような問題やその他の環境特性をクラウドに適応することができませんでし急速な拡大、弾性ストレッチを、満たすことができないことなどが、我々はすべてのことにはなりません、上記の問題点を具体的にどのように解決するためにと、解決すべきマイクロアーキテクチャのサービスの問題があり、のは、後で話を戻しましょう

2:すべての問題を解決するためのマイクロサービス、問題が何であるかの導入?

のは、私たちに何をもたらすことができるマイクロサービスを見てみましょうか?マイクロサービスアーキテクチャの機能:

  • 特定のサービスのために発行された、小型、低リスク、低コストであります
  • 頻繁なリリースバージョン、迅速な配達の要件
  • クラウド環境に適応するための弾性伸縮低コストの拡大、

我々は、すべてが二つの側面を持っているものは何も完璧ではありませんという単純な発想、ということを知って、利益が同時にマイクロ高速応答と伸縮性の問題の解決でサービスを選択し、失うことになる、それが私たちをもたらします何が問題でしょうか?次のように個人的に要約しました:

  • 分散システムの複雑さ
  • 展開、テストおよび監視コスト
  • CAP分散トランザクションと関連する問題

異なるプロジェクトの数十〜数百のシステムオリジナルの単量体としては、例えば、特にスプリットサービスが必要で、その上のサービス、開いた方法サービス、内部インタフェース仕様、データ転送との間にクラブの依存関係を生成することが挙げられビジネスプロセスに精通チームは、確実にするために、選択する方法を知っている「高凝集、低カップリング」の基本方針に沿って、粒度サービスのスプリットでなく、ビジネスの発展と、同社のビジョンではなく、懸命に仕事をチームメンバーを説得するために、そして積極的に当事者間のバランスをとることに関与。

分散システム、展開、テスト、および多くの支持を必要とすることなく、ミドルウェア自体を維持するためのミドルウェアを監視するため、元の単一のアプリケーションは、非常に単純な業務上の問題で、分散環境に移動分散、非常に複雑になり、トランザクションは、単純な再試行+補償機構である、またはそのような二相の使用などの強い整合性の方法が解決するためにコミットプロトコル、我々は繰り返し同じ問題を計量に結合された馴染みのビジネスシナリオに依存する必要があり、また、モデルを含む、CAPに秤量全体的に高い需要のチームの全体的なレベルでの短いマイクロサービス・テクノロジー・スタックで

 

3:どのようなサービスマイクロを使用しての原則に従ってください?

古いことわざ:最初の軍隊や馬、飼料を動かします。マイクロサービスの構築は、すべての可能性に失敗するので、その構築されたCMSデータベーステーブルのように書き、その後、仕事を始めていない、長期的な計画を確立する必要があります。私たちは、事前の計画を行うにはマイクロサービス改革、建築家にしたい前に、我々はここで3つの段階、早期、ステージデザイン、舞台技術に分かれています

初期の段階では、一般的に次のことを行います。

  • そして、完全なマルチパーティのコミュニケーション、組織、彼らは顧客のニーズを満たしていることを確認し、認識されるように
  • そしてチームのコミュニケーション、理解してチームメイト(開発/テスト/運用および保守)を聞かせて、積極的に関与
  • そして、ビジネスコミュニケーション、計画と指定した時間のオンライン版

設計段階、サム・ニューマン参考書「マイクロ・サービスのデザインは」、単一のマイクロサービスはマイクロサービスの基本的な要件と一致し、以下の条件を満たしている必要があります。

  • 標準的なRESTスタイルのインタフェース(HTTPやJSON形式に基づきます)
  • 独立した展開は、(データベースが分散システム全体への影響を回避するために)データベースを共有避けます
  • ビジネス上の高い粘着力、(大きすぎるか小さすぎを避けるために、設計からおよびサービス)の依存を減らします

大規模な分散システムがサポートするための強力なインフラストラクチャを必要とするサービスをインフラマイクロに関連しますか?

  • CI / CDおよびオートメーション(分散システムによって公開され、手動ですることはほとんど不可能です)
  • 仮想化技術(サービスが環境から隔離して実行することを確保するためのマイクロは、現在の業界の主流ドッカーコンテナを使用することです)
  • (高さ分析し、観察し、問題を診断)フルリンクを監視し、凝集をログ

その後、事態の種類、あなたのチームはマイクロサービスの構築に適していない、そんなに言いましたか?(ないハト - 穴かがりを行います)

  1. 開発チームは、自治組織の開発チームは非常に多くの制限はありません(を参照してください  コンウェイの法則
  2. チームは国境サービス、合理的なスプリット(DDDを参照して認識していない、業務に精通していないで、ドメイン駆動設計

 

 

概要

それは人気があり、上昇となりましたので、仮想化技術の台頭で、マイクロサービスは、低コスト化を図ることができるので、マイクロサービスのデザインは、実際には非常に初期のデザインのアイデアです。

技術を理解することは、可能な限り自動化、分散化、独立性などの詳細は明らかに記事で概説することができない、我々は技術の選択やプログラムを行っているなど、マイクロ深い含蓄サービス、自身と私たちのビジネスの特性の起源は、より良い選択です。個人的な知識が限られている、それがどのような別のビューマイクロサービスのためにあなたをスプレーしない好きではないのですか?議論と交換のメッセージへようこそ

おすすめ

転載: www.cnblogs.com/xiao2shiqi/p/11297809.html