2017-04-11 102 views
1

是否有在微服務產品中應用SemVer的最佳實踐/模式?每個微服務應該有SemVer,而整體產品應該有SemVer?SemVer和微服務

示例 - 我有一個名爲SuperDatabase的產品,其中有3個微服務,分別稱爲SuperDatabaseCore,SuperDatabaseReportsSuperDatabaseSearch

初始版本: SuperDatabase v1.0.0 SuperDatabaseCore v1.0.0 SuperDatabaseReports v1.0.0 SuperDatabaseSearch v1.0.0

次要更新報告: SuperDatabaseReport v1.1.0

若本產品是SuperDatabase v1.1.0現在呢?

如果以後有一個補丁搜索: SuperDatabaseSearch v1.0.1

如果該產品的版本再次被改變?產品版本是否應完全獨立於微服務?它應該使用SemVer嗎?還是應該沒有任何版本?

+0

如果你有三個服務共享相同的數據庫,那麼你沒有得到微服務背後的想法。大小不是重點 – astef

+0

SuperDatabase是此處用於示例的組成應用程序的名稱。隨意用'ApplicationName-ServiceName'來代替它。 – ferr

+0

本書將幫助您:https://www.amazon.com/Building-Microservices-Sam-Newman/dp/1491950358/ref=pd_sim_14_29?ie=UTF8&dpID=5156gHBSxaL&dpSrc=sims&preST=_AC_UL160_SR122%2C160_&refRID=0081XVQGTK2AQ54GQ21P –

回答

1

您應該獨立版本化您的服務,微服務架構的好處之一是您可以更新和部署系統的小部分,而無需任何停機時間(理論上)。如果在更新組件C時對組件A和組件B進行了版本控制,那麼最終只有一個組件發生更改時才需要部署所有組件。