?マイクロサービス101:良い、悪い、醜い

VPエンジニアリングミドルウェアMark Little:マイクロサービスを採用しても、あなたのひどく設計された泥のボールは突然本当にうまく設計されているわけではありません。

これを読む

香港のMashapeはAPIとマイクロサービスのリアルタイム解析、LinuxのJavaとコンテナのサポートはMicrosoftのAzureマイクロサービスプラットフォーム、Kongはオープンソース:Mashapeは最初のマイクロサービス管理レイヤーと称し、Microsoftは新しいマイクロサービスサービスの最初の開発者プレビューを発表Fabric; Microsoftは新しいモバイルクラウド中心のPowerAppを発表しました.3つの力がマイクロサービスアーキテクチャを促進しています;サービスは新しいモノリスになっていますか?マイクロサービスの場合、マイクロサービスは現実のものか最新の流行語か、Azureのマイクロサービスビジョンの形が始まり、マイクロサービスを通じて、シンプルさとITミニマリズムのための新たな推進、マイクロサービスがクラウドのより良い運用方法として提案された

マイクロサービスが普及するにつれて、短い思い出を持つ人々は、20年前に最初に現れたサービス指向アーキテクチャーに対するこのアプローチの顕著な類似性を見落としているかもしれません。

しかし、Red Hat VPのエンジニアリングミドルウェアであるMark Little氏は、より洗練されたエンジニアリングと操作技術と技術の到来により、マイクロサービスをサービス指向アーキテクチャーの優れたものと見なすことを好んでいます。

「違いは、これはソフトウェアや分散ソフトウェアを開発する新しいアプローチによって大きく左右されていることです.Linuxのコンテナのようなもの – Dockerが一番の例です。あなたは不変のサービスを今すぐ持っています。サービスを提供しています。明らかに、DevOpsはアジャイルの影響を強く受けています。

「これらのことは、人々が過去に分散システムを実行してきた方法、サービス志向のアーキテクチャーの例を本当に振り返り、それらの技術に合った最適なビットを選ぶこと、またはその逆サービス指向アーキテクチャーのいくつかの優れた点に合ったテクノロジーですが、それはおそらく違いです。アーキテクチャーのアプローチは変わりませんが、その背後にある技術は本当にあります。

マイクロソフトのサービスファブリックは、パブリッククラウドアプリケーションを構築する最初のISVとスタートアップを対象とし、後でWindows ServerやLinuxに向かいます。

マイクロサービスアーキテクチャでは、アプリケーションは特定のタスクを実行し、APIを使用して互いに通信する、小さな、半自律的なプロセスのスイートとして構築されます。マイクロサービスは、使いやすく拡張性があり、ウェブ、モバイル、インターネット・オブ・モノのアプリケーションでますます増えています。

Littleは、サービス指向アーキテクチャーの歴史的な欠点の中で、クライアントとサービスの間で良好なコントラクト定義を提供できないことや、疎結合や分散システムでは不十分だったWSDLやWeb Services Description Languageの欠点を挙げています。

しかし、マイクロサービスを作るためにいくつかの要素と技術が集まったからといって、現時点でのアーキテクチャはそれを平易にするものではありません。

エンタープライズソフトウェア、Sweet SUSE! HPは、Linuxディストリビューションを支えるLinuxディストリビューション、Cloud、Twilioは新しいエンタープライズプランを展開し、CloudはIntel、Ericssonはメディア業界に重点を置くようにパートナーシップを拡大、XeroはBPay支払いのためにMacquarie Bankと提携

「マイクロサービスは、世界平和への答えではないことを理解することが重要です。何かには良いことです。それは、マイクロサービスを採用しただけで、あなたのひどく設計された泥のボールが突然本当にうまく設計され、泥の分布球がたくさんあるかもしれない」とリトル氏は語った。

“私は少し心配しています。私は長い間、サービス指向アーキテクチャーの周りにいて、プラスの点とマイナスの点を知っています。私はマイクロサービスが好きです。それが決して答えにならないという多くの問題への答えとしてそれを見てください。

コアンとその図書館はゆるやかである。 Mashape APIハブの背後にある技術は、現在オープンソースで無料で、マイクロサービスアーキテクチャに取り組んでいる開発者を対象としています。

マイクロサービスを検討している場合は、ソフトウェアエンジニアリングの練習を始めるのが最適です。

とにかくサービス指向アーキテクチャの背後にあるのは基本的なことですが、そこから始まらなければ、Dockerや仮想化、Java仮想マシンなどを使用しているかどうかは関係ありません。あなたのためのあなたのアーキテクチャの問題を解決するために、 “リトルは言った。

マイクロサービスやサービス指向アーキテクチャーが本当に独立して導入されるのは、互いに独立して配備されるべき論理サービスであり、他のサービスとは独立して独立したフェールオーバーが可能です。

「マイクロサービスについて懸念していることの1つは、モノリスがあり、それをサービスに分解し始めたら、それを任意に行うと、それをあまりにも大きく分解してしまい、10または100で終わる可能性があるということです1,000マイクロサービス “と語った。

“しかし、彼らはすべて互いに依存しているので、もしそれらのうちの1つがダウンすると残りの部分も同様にダウンしている可能性があります。他の人が戻ってくるのを待っている」

リトル氏によると、マイクロサービスで始まった人は、年齢のためにソフトウェアを選ぶのではなく、その機能を果たせないソフトウェアを特定する必要があります。

「本当にあなたのために働いていないものを取ってください。私は過去30年間はうまくいっていて、今年は365日という非常に楽しい仕事をしています。あなたはそれを投げつけている」と彼は言った。

マイクロサービスのコンセプトはしばらく前からありましたが、今日のことはどう変わるのでしょうか?

その場合、マイクロサービスに分割することは、おそらくあなたにはあまり買わないでしょう。しかし、完全に正反対のモノリスを持つことができます。モノリスは、何年も何年にも渡って出てきたさまざまなチームによって構築されており、継続的にパッチを適用する必要があります。

「これはかなり信頼性が低く、さまざまな言語で実装されており、とにかく再実装することを考えていることもあり、マイクロサービスの候補になる可能性が高い」

マイクロサービスの詳細

アプリケーションの機能を十分に把握しておらず、配信に失敗している場合は、そのコンポーネントがマイクロサービスに分類される可能性はありますが、それ以上は理解できなくてはなりません。

“あなたはそれを小さすぎるマイクロサービスに分解したくはありません。一部の人々は、ナノサービスについて話していても、あまりにも進んでいます。遠すぎないでください。それは一般的には重要ですが、マイクロサービスの場合はさらにそうです。

ソフトウェアが動作しない場所でも、保持できる要素がある可能性があるため、すべてを最初から再実装することは避けてください。

「うまく行かないものがある場合は、まだ掘り起こしておくことができるものがあるかどうかを調べる必要があります。特に、20年または30年間展開していて、多くの人が特にCOBOLで実装されている場合は、戦闘テスト済みです」とLittle氏は述べています。

“クリスマスの日のあなたの要求の規模が30年前よりも大きかったので、今日はあなたのために働いていないかもしれませんが、それはCOBOLに根本的なものがないことを意味するわけではありません新しいシステムにバグを追加する場合は、新しいバグにしておきたいので、修正した古いバグを再実装する必要はありません。 ”

今日、Linux Foundationのバナーの下で発表されたOpen Container Projectは、Dockerとappcを含むクラウドとコンテナの主要な力を支持しています。

だから、他のすべてとは別に展開できる作業単位を特定し、それが失敗してアプリケーションの残りの部分が停止し、他のすべてとは独立して拡張できない場合、次のステップは、あなたはそれで定義するかもしれない契約。

その契約にはインタフェースが含まれています:遠隔から呼び出すにはどうすればいいのですか?多くの人がマイクロサービスとREST [Representational State Transfer]について語りますが、RESTはマイクロサービスの基本的なアプローチです。必ずしもあなたのサービスと話したいと思う唯一の方法ではありません」とリトル氏は述べています。

COBOLでは、マイクロサービスに移行しているにもかかわらず、かなりの量のアーキテクチャーが残っている可能性があります(これは、バイナリープロトコルを使用して話したい場合があります)。それはまだCORBA [Common Object Request Broker Architecture]に結びついています。あなたのマイクロサービスと話をするのは独占的な方法ではないかもしれませんが、どこかにCORBAアダプタを持たなければならないかもしれません。

次に、独立して拡張可能なマイクロサービスを作成し始めると、HTTPまたはバイナリプロトコルを介したリモートのやりとりがメモリ内のプロシージャ呼び出しよりも遅くなるため、典型的な分散システムの問題になります。

「リモートサービスを呼び出すことが何を意味するのか、特にレスポンスタイムが厳しい場合には心配する必要があります。マクロサービスであろうとマイクロサービスであろうとナノサービスであろうと、これらのサービスをサービスに分解するほど、私は分散環境で動作していますが、それは私にとって実際にはどういう意味ですか、アプリケーションがそれを許容することができますか?リトルは言った

「マイクロサービスが本当に必要なのかもしれないが、残念ながら、タキオンを使ってメッセージを送信するネットワークを発明するまでは、契約上の義務を果たすことができないので、実際には何も呼び出せない。泥の “。

甘いSUSE! HPEがLinuxディストリビューションに突入

Twilio、新しいエンタープライズプランを発表

インテル、エリクソン、メディア業界に注力するためのパートナーシップを拡大

?Xero、BPAY支払いのためにMacquarie Bankと提携