將應用程式的元件部署到個別的處理序或容器,以提供隔離和封裝。 此模式也可讓應用程式由異質元件和技術組成。
此模式名為「側車」,因為它類似於加裝到機車的「側車」。 在此模式中,側車會附加至父系應用程式,並為應用程式提供支援的功能。 側車也會共用與父系應用程式相同的生命週期,隨著父系應用程式而建立和停用。 側車模式有時稱為 Sidekick (好友) 模式,是一種分解模式。
內容和問題
應用程式和服務通常需要相關的功能,例如監視、記錄、設定及網路服務。 這些週邊工作可實作為個別的元件或服務。
如果它們會緊密整合到應用程式,就可以和應用程式在相同的處理序中執行,以便有效率地使用共用資源。 不過,這也表示它們未隔離,若這些元件的其中一個中斷,便可能會影響其他元件或整個應用程式。 此外,它們通常需使用和父系應用程式相同的語言來實作。 因此,元件和應用程式彼此具有緊密的相依關係。
如果應用程式分解成多個服務,每個服務就能使用不同的語言和技術來建置。 雖然這可提供更多彈性,但也表示每個元件有自己的相依性,而且需要特定語言程式庫來存取基礎平台和與父系應用程式共用的所有資源。 此外,將這些功能部署為個別的服務,可能會增加應用程式延遲。 管理這些特定語言介面的程式碼和相依性也會大幅提高複雜性,特別是針對裝載、部署和管理等方面。