為什麼要使用微服務
微服務這個概念並不是近年才有的,但這兩年隨著以容器為核心的新一代應用承載平臺的崛起,微服務煥發了新的生命力。
傳統的巨大單體應用程式在部署和執行時,需要單臺伺服器具有大量記憶體和其他資源。巨大的單體應用必須通過在多個伺服器上覆制整個應用程式來實現橫向擴充套件,因此其擴充套件能力極差;此外,這些應用程式往往更復雜,各個功能元件緊耦合,使得維護和更新更加困難。
在這種情況下,想單獨升級應用的一個功能元件,就會有“牽一髮而動全身”的困擾。
在微服務架構中,傳統的巨大單體應用被拆分為小型模組化的服務,每項服務都圍繞特定的業務領域構建,不同微服務可以用不同的程式語言編寫,甚至可以使用完全不同的工具進行管理和部署。
與單體應用程式相比,微服務組織更好、更小、更鬆耦合,並且是獨立開發、測試和部署的。由於微服務可以獨立釋出,因此修復錯誤或新增新功能所需的時間要短得多,並且可以更有效地將更改部署到生產中。此外,由於微服務很小且無狀態,因此更容易擴充套件。
總體而言,微服務通常具有 六個 特點:以單個業務或域為模型 ; 每個微服務實現自己的業務邏輯,包含獨立的持久資料儲存 ; 每個微服務有一個單獨釋出的API ; 每個微服務能夠獨立執行 ; 每個微服務獨立於其他服務且鬆耦合 ; 每個微服務可以獨立地升級、回滾、擴容、縮容。
企業使用微服務可以獲得多方面的收益。 實施微服務架構可以使 企業 更快地將其應用程式推向市場。對整體應用程式的更改需要重新部署整個應用程式堆疊,從而引入風險和複雜性。相反,服務的更新可以立即提交、測試和部署,對個別服務的更改不會影響系統的其他部分。
在擴充套件應用程式時 , 微服務方法也提供了靈活性。單片應用程式要求整個系統及其所有功能同時擴充套件。使用微服務,只需要縮放需要額外效能的元件或功能。可以通過部署更多微服務例項來擴充套件服務範圍,從而實現更有效的容量規劃並降低軟體許可成本,從而降低總體擁有成本。
而在 使用單體應用程式時,元件的故障可能會危及整個應用程式。在微服務中,每項服務都是隔離的,以防止級聯失敗導致整個系統崩潰。如果單個微服務的所有例項均失敗,則整體服務可能會降級,但其他元件仍可提供有價值的服務。
最重要的是, 微服務使技術團隊能夠與 企業 需求保持一致,並且可以調整團隊的大小以匹配所需的任務。通常,微服務團隊規模較小但是跨部門,並專注於整個應用程式的單個元件。通過提供對個人服務的所有權, 來 打破團隊之間的孤島,並改善協作。這種方法對於分散式和遠端團隊尤其強大 , 更加適用於多地辦公愈加頻繁的當下 。
從其本質上來說,微服務的目的就是有效的拆分應用,實現敏捷開發和部署。根據康威定律,系統架構和組織架構會相互影響 ,在微服務架構的影響下, 微服務小組 變為了 一個獨立特性的全功能團隊,來面向終端使用者需求直接對戰 。 最後 , 所有的資訊和想法都在這個小範圍內快速交流,業務價值流動清晰可見,軟體與企業和這個瞬息萬變的時代一起,實現快速更迭的目標。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69965343/viewspace-2850623/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 為什麼要使用微服務架構?微服務架構
- 微服務架構一直火,為什麼服務化要搞懂?微服務架構
- 為什麼要財務自由
- 為什麼大多數公司最好避免使用微服務? -GreekDataGuy微服務
- 為什麼要虛擬化,為什麼要容器,為什麼要Docker,為什麼要K8S?DockerK8S
- 為什麼Kubernetes天然適合微服務?微服務
- 為什麼 kubernetes 天然適合微服務微服務
- 為什麼微服務架構需要聚合微服務架構
- 微服務使用者為什麼要用雲原生閘道器微服務
- 微服務為什麼一定要用docker微服務Docker
- 微服務為什麼一定要上Docker?微服務Docker
- 華為雲容器和微服務是什麼?微服務
- Golang之微服務為什麼發現不了Golang微服務
- SEO外包為什麼要收取服務費?
- 為什麼創業公司反而適合使用微服務+事件溯源? -zimarev創業微服務事件
- 什麼是微服務?微服務
- 微服務是什麼?微服務
- 微服務架構(一):什麼是微服務微服務架構
- 為什麼要避免大事務以及大事務如何解決?
- 為什麼要謹慎使用Linux find命令?Linux
- 微服務指南走北(一):微服務是什麼微服務
- 小白入門微服務(0) - 什麼是微服務微服務
- 01、什麼是微服務微服務
- 為什麼微服務一定要有閘道器?微服務
- 為什麼要code reviewView
- 為什麼要寫作
- 為什麼說Java中要慎重使用繼承Java繼承
- 微服務思考(01):什麼是微服務?微服務的優勢和劣勢微服務
- Python是什麼?為什麼要掌握python?Python
- DDD之1微服務設計為什麼選擇DDD微服務
- 為什麼InVision將微服務合併回整體? - bennadel微服務
- GC 為什麼要掛起使用者執行緒? 什麼愁什麼怨?GC執行緒
- 微服務是什麼?帶你簡單瞭解微服務微服務
- 為什麼要避免在 Go 中使用 ioutil.ReadAll?Go
- 為什麼要學習 Julia
- 為什麼要指令重排序?排序
- 為什麼要學習 RustRust
- 為什麼要學習 Vim?