アーキテクチャの本質、マイクロサービスの新しい理解に戻ります

最初の部分:マイクロサービスの誕生だけでなく、政策の進化が適用されます

レポーター:近年では、マイクロサービスアーキテクチャの設計手法が提案されており、企業の成長数で練習して着地するが、マイクロのためだけにまだ理解し始めたものから、知らない人のサービスを使い始めます。あなたは、ソフトウェアアーキテクチャ、開発、マイクロ・トークサービスの特性の歴史を組み合わせることができます。

梁新:あなたはマイクロサービスを理解したい場合は建築様式のマイクロ役立つ性質は、私はあなたが全体のインフラの開発の背景を理解する必要があると思います。

常に一定の進化のソフトウェアアーキテクチャ、。バック20年前、ときR&D企業の分野は主に尊敬やC / Sモード、PB、Delphiのソフトウェア開発など主流のエンタープライズアプリケーション開発までの時間であれば。

時間が経つにつれて、我々はクライアントを標準化し、いくつかの欠点があることが判明し、例えば、私は千の端末を持って、それぞれの端末のアップグレード版は非常に面倒である、アップグレードが必要です。次に、企業のインターネットアプリケーションの開発がクライアントとしてブラウザを使用することを学ぶようになった、あなたがこの問題を回避することができます。そのため、ブラウザベースのB / Sの構造がポップアップし始めました。

初めにASPであり、後のJSPが登場し、Ja.vaプリコンパイルされたので、このモデルは、そのパフォーマンスは、J2EEベースのアーキテクチャJa.va言語が続く非常に大きな増加は、より多くの人気となってきました。したがって、アーキテクチャは、従来のC / SモードからB / Sモードへの移行を受けています。

B / Sアーキテクチャ基本的に最初のモノマーアーキテクチャ、各システムをより独立は、しばしば、いくつかの相互作用がある場合でも、それらの間の相互作用を必要としないだけでなく、データレベルの最も。その段階のETLツールは、データサイロのこの問題を解決するために、急速に発展します。

より多くのエンタープライズアプリケーション、システム間の相互関係として、ますます密接に、より多くのシステム間のリアルタイムの対話へのオンデマンドアクセス。XML言語を通じてエンタープライズアプリケーション間のリモート呼び出しのために:この時間は、エンジニアは、どんな言語開発ソフトウェア、XMLと呼ばれる基本的なサポート言語、そしてリアルタイムの相互作用技術ソリューションを提案していないことがわかりました。このように、SOAの概念が提唱された、Webサービスが普及するようになりました。

インターネット波の第二波が来た場合、企業の多くは、RESTfulなとHTTPプロトコルに基づいて、より柔軟なビジネスの発展に適応し、オリジナルの建築様式重いWebServiceの、シンプルかつ明確なJSONの代わりに、XMLを交換します。多くの場合、サービス・バス技術を使用しながら、SOAのアーキテクチャは、システムのアーキテクチャには疑いが非常に面倒なボトルネックを追加します。サービスプロセスの間の直接通話のための登録と発見のメカニズムは、エンタープライズアプリケーションの開発に適している場合。これは技術的な観点から、マイクロサービスアーキテクチャの歴史的文脈です。

&疎結合高い凝集:「マイクロ・サービス設計」マイクロ・サービスの定義には二つの基本的な原則があります。それはマイクロサービス部門の大きさはと統一規格がありません「物事地区を変更するため、さまざまな要因に分離することが、一緒に物事を変えると同じ要因の結果」で、文字通り、あなたは、それがほぼ同じサイズだと思います「高い凝集と疎結合&」その上の原則に沿って、同時に。

マイクロサービスの多くの利点がありますが、大体数名。

  • ヘテロジニアス:マイクロサービスは、簡単に異なる技術を使用するために私たちを助け、そしてこれらの新技術の利点を理解することができます。一般的にリスクに関連付けられている新しい技術を試してみたが、サービスは非常に小さく切った場合は、新しい技術を使用して、常にリスクを軽減するサービスの最小限のリスクを選択することができるように、いくつかのポイントがあります。
  • 柔軟性:マイクロサービスは、それはノード数を形成することができるので、良い取引サービスは、利用できないとダウングレードするための機能であることができることは明らかです。
  • 分離:マイクロサービスアーキテクチャシステムは、より良い分離システムに別個のオペレーティングユニットに分解され、独立したマイクロサービス例外が発生したときに問題を見つけて分離しやすく、分離は、スケーラブルサービスの基礎です。
  • 拡張:全体として大きな単一のサービスのみモジュールのごく一部、パフォーマンスの問題は、システム内にあっても、拡張することができ、また、システム全体に拡張する必要があります。マイクロサービスアーキテクチャは、に基づいて、異なるモジュールに必要な性能レベルを拡張することができます。
  • 導入が容易:あなたはより迅速にコードの特定の部分を展開できるように、マイクロサービスアーキテクチャを、各サービスの展開は、独立しています。アジャイル配信と展開がより良いビジネス需要応答経験をもたらしながら、サービスの問題は、より簡単かつ迅速に、ロールバック。
  • 柔軟性:マイクロサービスアーキテクチャでは、システムを使用すると、さまざまな方法でアプリケーションを構築することができ、状況が変化したときに、外部での使用のために多くのインターフェイスを開きます。マイクロ複数のサービスへのモノマーのアプリケーション、組み合わせることができる再利用可能なオブジェクトを用いて達成することができます。

Reporterは:あなたが以前に記事を発表していたことが報告されている「なぜ企業は、統一された開発フレームワークを確立する必要がありますか?」、あなたは会社が問題を解決するための統合開発フレームワークを確立することであると思いますか?

梁新:これは慈悲深い参照の慈悲で、賢いが問題の知恵を参照して、一人一人の出発点が異なっており、一部の人々は団結を提唱する必要があるかもしれません、他の人が私の経験と実用的な観点と組み合わせて団結を除外することができる一方で、私は会社があると思います統一された開発フレームワークを確立する必要があります。

近年では、インターネットの発展は多くの伝統的な産業を破壊するために、多くの新会社は、企業も成長している、彼らのビジネスは非常に速く成長して取るために生まれています。これは、中国の急速な経済成長とインターネットの急速な発展によるものです。しかし、この急速な発展プロセスは欠点が伴う無視することはできません。

  • 欠点:自己複製

同社の急速な発展の過程では、このような連鎖は、多くの場合、表示されます。ビジネスの新しい作品 - >シニア・テクニカル・スタッフを募集 - 技術チームの形成の周り>同僚 - >ビジネスチームの基本的な責任だけで、その後、閉ループを形成します。他のビジネス、テクニカルディレクターとして、多くの場合、自分の決断と対話するときに必要。これは、自己複製の状態を作成します。

  • 2つの欠点:コントロール障壁

事業規模の急速な発展に伴い、チームはすぐに考慮することは、しばしば自分の利益から部門、チームの意思決定者を形成し、それは技術の選択であるかどうか、外国部門への依存を最小限にしたい、仕様は、コンポーネントの選択を構築し、動作環境セルフコントロールが可能。

  • 過誤III:崖効果

このような技術の雰囲気は、一度形成された場合、個々の従業員個々のプロジェクトへの影響が非常に大きくなります。製品は、多くの場合、1つまたは2主要な従業員がいるため持続不可能のままに、そして最終的に新製品を開発しなければなりませんでした。

  • 過誤4:リソースの無駄

各チームは、独自の完全な開発プロセスを構築しようとしているとき。技術、製品開発、運用、保守管理の研究センターは、資源の廃棄物の多くが起こるだろう。

  • ファイブ欠点:評価が困難

四川山東料理のシェフと優れているコックを測定する方法は?各チームは、閉ループである場合には、異なるテクノロジー・スタック、異なる技術コンポーネント、維持及びその他の規範の様々な方法を使用して、それを設定するのは非常に困難であるKPI指標、出力効率からチームのパフォーマンスを決定することができませんでした。

全社的な統合開発プラットフォームの確立が効果的にこれらの問題に対処することができます。あなたは、統一企業レベルの開発プラットフォームを形成することができれば技術的に言えば、それは実際の製造工程で大きなメリットをもたらすでしょう。

  • まず、人件費を節約し、反復的な研究技術を避けるために。プラットフォームベースの開発フレームワークのセットを構築するためのプロジェクトで、技術は一般的な問題から派生し、処理を担当する専門チームに、プロジェクトチームは、ビジネスに力を入れました。
  • 第二に、標準化された技術仕様は、製品の品質のプロジェクトを改善しました。何千人もの人々に、むしろ千人の顔の何千よりも、プロジェクトを実行するために直面​​しています。統一された開発プラットフォーム、テクノロジー・スタック、技術部品、技術的な実装であっても、コードの仕様では、標準化された技術は、出力モードを形成することができる、標準化された効果は急激に増加開発の効率化だけでなく、製品だけでなく、もたらしました大幅に改善された品質。
  • ここでも、技術は、意思決定に投影する人の能力を避けるために、会社全体の技術力を強化するために、沈殿させることができます。技術の進歩は、企業レベル(プラットフォーム)の開発のための統一されたフレームワークを確立するために、継続的な技術の蓄積と降水量から来て、プロジェクトチームは、もはや我々は唯一のビジネスに集中する必要があり、基本的な技術に焦点を当てる必要があります、プラットフォームに基づいた独自のプロジェクトを開発していません。また、技術の蓄積と降水量の目標を達成するために、より良い、プ​​ロジェクトチーム、プラットフォームの継続的な改善の技術要件を満たすために、彼の同僚のプラットフォームに焦点を当て。
  • 最後に、R&D入力と効果的な管理と評価のためのR&Dチームの出力で測定することができます。同じ開発プラットフォームの標準化された技術仕様に基づいて設立されると、ビジネス機能を達成するために、コードが比較的効果的な評価・検討することができ、差が回避できるための技術や問題の出現。このKPIの開発と評価が大きな助けです。

私は努力の年以上で、同社はすでにいくつかの結果を持って、前年度からそのような考えを作ります。技術レベルを対象と当社の統合開発プラットフォームは、その主な目的は、関連製品の開発として実装され、統一された同社は、技術スタッフを強化するための技術ツールの継続的な蓄積を形成するために効果的に統一された技術サポートを改善するために、技術のアーキテクチャと開発ツールを使用してプロジェクトです利用および人員への依存を減らし、最終的規模、合理化された生産性ソフトウェアを向上させます。

記者:最近、「春ブーツ」、「春の雲」と言い換えるは常に記載されている、新しいフレームワークプログラムのコレクションの利点は、従来のマイクロサービスフレームワークに比べて何ですか?あなたの経験を組み合わせて、あなたはマイクロサービスの将来の発展の傾向があるかもしれないどう思いますか?

梁新:私は初期の社内研究春クラウドテクノロジ・スタックは、それはまた、クラウド春の中国の社会の一員であると思います。2017年春の雲は、最も人気のあるマイクロ・サービスの開発フレームワークとなりました。しかし、問題の必要性弁証法的ビューがあります。「マイクロサービスのアーキテクチャの利点と、マイクロ・サービス・アーキテクチャを実現するために春クラウドフレームワークを使用することを意味するものではありません」、正しい理解があるべき「マイクロサービスアーキテクチャのシステムを開発する春の雲のフレームワークを使用すると、システムはマイクロサービスアーキテクチャの利点を持っています。」

他のフレームワークから春クラウド理由は、フレームの最も熱いとして独自のシステムの整合性のおかげで浮上しています。この比較春の雲、ダボとServiceCombは、直感的に、以下の図で理解することができます。

アーキテクチャの本質、マイクロサービスの新しい理解に戻ります

また、中国の春は、広い質量ベースを持って、私も非常にこの開発のアイデア「合意が設定よりも大きい」尊敬、標準のもののみに依存する必要はありません。

私はマイクロサービスアーキテクチャの将来の方向性に不適切なコメントをすることはできません。モーメントに基づいて、私は技術の春クラウド+ドッカーコンテナはマイクロサービスアーキテクチャのための良い選択だと思います。私はより多くの非常に興味深いの引数は「遺伝的建築」、という意味であることを認識しています:誕生の最初からアーキテクチャが変更されるので、より簡単に、より良いあなたのアーキテクチャを変更します。私は将来のアーキテクチャは、この道を開発することになると思います。

当社の統合開発プラットフォームを構築することは春のクラウドテクノロジ・スタックに基づいています。

レポーター:ソフトウェア開発業界の今年は「台湾の」ホットな話題、それはマイクロサービスユニットを行うには、アーキテクチャレベルで示唆されたが、あなたはどのように思いますか?

梁新:昨年、単語の火災とのバラエティー番組、「料理を。」このプログラムは、そこにある「ドライさりげなく、馬馬ライライは、ラウンド、ディスク、彼ではありません!」その後、ディスクは、それが何で、あなたの手で保持することはできませんどのように、それはとにかくディスクを望んでいることになると。特に悪鳴らないし、「すべてのものJiekeディスク」この作品が存在します。これは、それ自体でのみ嘲笑引数で、私は本当に、プレート上にあったものを見ていませんでした。それは何も再考深いダウン真剣にできることは興味深いです、あなたはまた、いくつかの一見不合理な間違いを犯すだろうか?

今年大注目の技術が適用されますが、「台湾で」名詞になってきたように、私は企業の多くは盲目的に避けるべきだと思うどこにでも設定する用語、「台湾のJieke、すべてのものは」、トレンドに従うとなり「台湾では」名詞が変わりますトラップ。

新しい技術やトレンドの顔は、我々は最初にその起源を理解し、基本的な必要があります。台湾の源は、バックアリに移動する必要があります。2015アリババグループは、台湾での戦略を立ち上げ、目標は、時代に沿った大規模なインターネット・データ、革新的な、柔軟な「中・大型ユニット、小さなレセプション」メカニズムを構築することであるフロントデスクフロントラインのビジネスをより機敏になるように、すなわち、より迅速に適用可能な市場の変化に、駅業務データ収集機能、グループ全体の製品の技術的能力、フロントオフィスのそれぞれのための強力なサポートを形成します。

なぜアリグループは「中規模台湾、小さなレセプション」構造のを確立することですか?「企業のITインフラストラクチャのロード変換 - 台湾のアリババ戦略的思考と実践的な枠組みは、」本は、これを詳細に説明します。これら二つのセグメントをサポートしながらアリは、最初に、唯一の淘宝網アリ課の話の事業部門の歴史を共有し、後でLynxの部門を設定し、この時間の淘宝網の技術チーム。多くの大企業は二つの別々の煙突システムに分かれているように私たちのようなその時淘宝網とTmallの電力供給システムでは、二つのシステムは、商品取引、支払い、評価、物流及びその他の機能に含まれています。2つの電力供給事業は、一般的な、一般的なビジネス機能の降水量の2つのプラットフォームをコーミングし、降水行われながら、これらの理由から、アリグループは、主に淘宝網の技術チームからのメンバー、前に、シェアードサービス部門を設定しています冗長建設と維持管理を避けるために、部門を共有することができます。

ベテランのプログラミング経験の10年以上を持つ国として、私は頻繁に考える問題は、システムの開発の法則は、その形状を通じて、私はそれがその結論付けることができると思い、開発フレームワークを見直し、その意味を理解である:「速いです」もちろん、これは高速では安定になるように、このような精度、リソースの制約などの前提条件、である、速い例リソース消費を最小限にすることを求めます。

「高速」速い高速なコードを記述し、ビューの開発の観点から、再び分解、迅速な開発、機能テストすることができ、より高速な展開環境、高速に動作するようにサービスを開始および停止、製造の観点から、走行速度より速く、より速く依然として高い同時実行下のように。

そんなに人気がマイクロサービスアーキテクチャ、小さなサービスの解体は、高度に多重化することができるため、多くの場合、書き込み、コードを変更し、多くの時間を節約しませんが、レセプタクルの技術はとても人気があり、コンテナ技術は、生産およびテスト環境を作ることができるので、一貫性のある環境では、コンテナノードを高めるためにも自由、エラーの可能性を低減、時間のデプロイメント環境を大幅に節約高い同時実行の下で高速応答を確保するために、業務処理機能を強化して。分散型アーキテクチャでは、あまりにも、実際にはマイクロサービスアーキテクチャの進化分散アーキテクチャです。同じまま、の追求である「高速で。」

戻る「台湾で、」件名、駅を建設するという目標は、重複建設と維持管理、需要への迅速な対応を避けるためです。背景とプラットフォームシステムが変更することが一般的になりやすいではない、比較的安定しているが、また、安定性の観点から、利用者のニーズに適用可能なフロントエンドシステムは常に変化しているため、バックエンド・システムとプラットフォームのアップデートの数を減らすために試してみてください、ときお尻の前景と背景のようにそれは、その後、私たちはバックエンドのために再利用可能なものを外部サービスのこの中間プラットフォーム上で、再パッケージ化された組み合わせで2つのフロントエンド間の中間にプラットフォームを構築したい、変更の需要一定の矛盾を作成しましたそれは「速い」という考えに沿ったものです。

これは、あなたが「冗長建設と維持管理を避けるために、」思考の段階に沿って建物を見たい場合は、台湾の建設事業が前に、私たちはまず、それらを理解しなければならない台湾の源と根である「高速」の原則と一致しています。

第二部:ビジネスクリティカルな問題ではマイクロサービスアプリケーションが対処する必要があります

レポーター:マイクロタスクスケジューリングサービスプラットフォームSIA-TASKを開く必要があり、この手紙は、このプラットフォームが広く使用された後、内部CreditEase技術チームでオープンソースにも多くの開発者によってサポートされています。あなたは、プラットフォームの設計思想とコア機能について教えてください (このプラットフォームの設計と開発は、問題を解決したいです)

梁新:ステージの前で言えば、実際には、私は「台湾で」考えるだけ名前だけで、「速い」との2つの原則「の冗長建設と維持管理を避けるために、」彼らは満たしていなければならないが、することができるか、そのような私たちのマイクロサービス管理プラットフォームとして、 SIA-TASKは、多くの台湾でのシステムのようなものです。

SIA-TASKのデザインのアイデアを導入する前に、私はその背景を紹介しましょう。かどうか、インターネットアプリケーション、エンタープライズアプリケーションは、バッチジョブの多数で満たされています。タスクのスケジューリングシステムは、多くの場合、いくつかの助けの開発者が問題を解決する必要があります。マイクロサービスアーキテクチャの漸進的な進化によって、徐々に分散アーキテクチャモノマー、マイクロサービスアーキテクチャへと進化。多くのオリジナルのスケジューリングプラットフォームは、ビジネス・システムのニーズを満たすことができないので、いくつかの分散タスクベースの管理プラットフォームがあります。これらのプラットフォームは、独自の特性を持っているだけでなく、高いサービスと相まって、このようなタスクスケジューリングをサポートしていないなどの欠点を、持っている、次世代のマイクロサービスアーキテクチャのニーズを満たしていないクロスプラットフォームをサポートしていませんので、我々はマイクロタスクのスケジューリングサービスを開発しましたプラットフォーム(SIA-TASK)。

SIA-TASK SpringBootは、二次開発飼育係クォーツに基づいて、建築システムの選択として使用され、対応する機能をサポートし、SIA-TASK論理アーキテクチャを以下に示します。

アーキテクチャの本質、マイクロサービスの新しい理解に戻ります

ワンストップソリューションのSIA-TASKタスク管理プラットフォーム、ようにクロスプラットフォーム、オーケストレーション、高可用性、非侵襲性、一貫性、非同期並列、動的拡張、リアルタイム監視とで、現在のマイクロ・サービス・アーキテクチャ・モデルをフィット。

タスクスケジューリングプラットフォームを理解し、我々は、タスクのスケジューリングを理解する必要があります。一定の時間間隔ではなく、同時タスクの実行を;大雑把に3つのタスクに分け、タスクが定期的に行われますが、同時のタスクは、所定時間毎に行きました。シリアル、パラレル、および他のブランチ:また、などのタスクとの関係の順序が存在してもよいです。

私たちはスケジュールをタスクすると、次の問題の一部が頻繁に発生します。

  • ディスク容量のログを見つけるためにのみ使用されるまで忘れてしまった、プロジェクトの実行バッチジョブは、バッチプロセスが継続組立ラインオフプロジェクトを実行します。
  • バッチ処理を実行する単一のポイントは、機械の故障の後、プロセスが実行を停止し、シングルポイントのプロジェクトとなっています。
  • バッチプロセスAとBの実行依存性は、遅延が発生した場合、プロジェクトの依存関係が、唯一の2つのタスクはずらす設定することができ、手動データ処理エラーのために必要としています。

私たちは、SIA-TASK、プラットフォームを設計し、プロジェクトチームを分離して実行します。SIA-TASKは5つのモジュール、タスクの実行が含まれ、それが実際のビジネス・ロジックでは、プロジェクトチームに所属し、バッチ操作を実行する必要があり、起動時に実行されますプロジェクトのタスクグループは、サービス、タスクにレジストリに登録されているサービスとして公開されます。タスクの仕事を得るために、レジストリ、および永続的なデータベースストレージに格納して、オーケストレーション、タスクの依存関係に配置され、ミッションコントロールセンターを取得するための最後のタスクは、振り付けセンターはタスクを実行する必要が振付けました、リモートコール。

プロセス、タスクスケジューリング、オーケストレーション、実行、プロジェクトグループが分離されている全体を通じて、プロジェクトチーム唯一の懸念のビジネスロジックのコードスケジューリングを必要とし、残りの各プロジェクトタスク原子に相当する、SIA-TASKのプラットフォームで実行されています技術、そしてそれはマイクロサービスとなっています。

チームに滞在するビジネスロジック、スケジューリング、オーケストレーション、プラットフォームに分類実行、途中で構成することですべてを処理するために必要なすべてのコードのみが、また台湾に沿って考える「メンテナンスの重複を避けるため」に。

SIA-TASKは現在、オープンソースであり、具体的なデザインと機能、および展開の操作はGitHubので見ることができ、アドレス:  https://github.com/siaorg/sia-task

レポーター:シーンに適用されるマイクロサービスタスクスケジューリングプラットフォーム(SIA-TASK)?

梁新:SIA-TASKベースのリモートスケジューリング、実際のビジネスのHTTPプロトコルのサポート、高い同時スケジューリングプロセスは確かに理想的ではありません。ビジネスは非常に同時である場合には、シーンのタスクをウェイクアップするために第2の必要性につき数万人が利用SIA-TASKのためにあまり適していません。また、他のすべてのシーンがほとんどSIA-TASKを使用することができます。

おすすめ

転載: blog.51cto.com/14159827/2431079