読者の皆様へ:ノイズを減らすための一連の機能を開発しました。関心のあるトピックについて電子メールとWeb通知を受け取ることができます。新機能の詳細をご覧ください。
Joab Jackson氏が報告したように、ニューヨークの今年のOReilly Software Architecture Conferenceでは、イベント駆動型マイクロサービスに重点が置かれていた。Joab氏が議論したように、Chris Richardson氏は「外部、内部、中核のイベント」に関する基調講演を行った。
現行のエンタープライズシステムでさえも、彼の言うイベントを中心に動いている。航空会社はフライトを遅らせ、薬局は処方箋を記入する。納期はスケジューリングされる。いくつかのイベントは時間に基づいている。請求書は時間通りに支払われなかった。イベントによって、別々のアプリケーションが連携できるようになる。アプリケーション内の状態変化は、実際にはイベントであり、別のアプリケーションによって使われる可能性がある。監視サービスは、別のアプリケーションから発生したイベントのストリームを分析し、イベントのパターンが正常であることを確認することができる。イベント駆動型の設計は、アプリケーションを変更せずに拡張する方法であるとRichardson氏は説明した。
私たちは、過去にイベント駆動型マイクロサービスについて取り上げた。Marius Bogoevici氏がクラウドネイティブストリーミングやイベントドリブンマイクロサービスについて話をしたときや、Satyajit Ranjeev氏が実践したことを振り返ったときである。一般的な見解として、イベントドリブンアーキテクチャがマイクロサービスの次のステップではあるが、それが別のレベルの複雑さを発現していると言われている。Joab氏は次の通り報告している。
当初、イベントベースのアーキテクチャへの移行は容易に見えたが、アーキテクチャに関するマインドセットにある程度の転換が必要であると、Cornelia Davis氏が基調講演で述べました。彼女は、Pivotalの技術系のシニアディレクターであり、近いうちに出版されるCloud Nativeの著者です。マイクロサービスはその性質上、極端な形の分散コンピューティングであるとDavis氏は述べています。
Christian Posta氏は数年前にその長所と短所について書いたが、最近では、私たちの仮想パネルセッションの1つで、そのテーマについて述べている。
私は、マイクロサービスで話すような、システムのスケールアウトについて話すとき、他のComplex Adaptive Systems(株式市場、アリの巣、コミュニティ)で見られる特徴を示す傾向があると考えています。すなわち、自律的エージェント、独立した意思決定、フィードバックによって駆動される学習/適応、非線形相互作用などです。そのようなシステムでは、イベント、メッセージの受け渡し、時間はすべて、重要なイネーブラであり、「非同期」モデルのように見える傾向があります。私見では、これらのシステム間で注力するべきポイント(コミュニケーションチャネルが信頼できないかもしれないという事実も含む)に対して時間を作って、現実を先取りし、他のアプリケーションでスケールと呼ばれるモデルを作らなければなりません。
Davis氏は非同期分散システムのテーマを取り上げ、従来のRPCベースのシステムで正常に使用されたタイムアウトと再試行が適切な抽象化ではない可能性を示した。
本質的に信頼性の低い分散システム環境では、promisesの抽象化は再試行よりもよいかもしれません。さまざまなコンポーネントが独自のイベントを生成し、それが、イベントまたは変更のシリアル化されたストリームを介してWebサーバのマテリアライズド・ビューに投入されます。 「promisesはイベントハンドラと考えることができる」とDavis氏は述べました。イベントハンドラは「必要な時に」ステップを完了します。
少し逸れるが、非同期システムに起因する問題の理解に興味がある人はFischer氏、Lynch氏、Paterson氏による「Impossibility of Distributed Consensus with One Faulty Process」に関しての論文を読むとよい。
明らかに、現在、functions-as-a-serviceに関して注目している点は、ここでもオーバーラップしている。過去に報告したように、これらのアーキテクチャは本質的にイベント駆動型であり、マイクロサービスを構築するための自然な進化として見られている。事実、Joab氏は、Davis氏がこのテーマについて次のように述べていたと報告している。
「イベントは機能を引き起こすことができ、それはfunctions-as-a-serviceを実施する上で非常に自然な方法である」
結論として、イベント駆動型マイクロサービスが最初に使用されるアーキテクチャ型のアプローチになりつつある時代に移行している。ベストプラクティス、最善のフレーワーク、最善のスタック、成功例と失敗例をカバーする、多くの会議やワークショップ、さらには私たち自身を見るようになるはずである。
Rate this Article
- Editor Review
- Chief Editor Action