微服務架構的優勢


微服務可通過分布式部署,大幅提升您的團隊和日常工作效率。您還可以並行開發多個微服務。這意味着更多開發人員可以同時開發同一個應用,進而縮短開發所需的時間。

 

加速做好面市准備

由於開發周期縮短,微服務架構有助於實現更加敏捷的部署和更新。

 

高度可擴展

隨着某些服務的不斷擴展,您可以跨多個服務器和基礎架構進行部署,充分滿足自身需求。

 

出色的彈性

只要確保正確構建,這些獨立的服務就不會彼此影響。這意味着,一個服務出現故障不會導致整個應用下線,這一點與單體式應用模型不同。

 

易於部署

相對於傳統的單體式應用,基於微服務的應用更加模塊化且小巧,所以您無需為它們的部署操心。雖然對部署時的協作要求更高,但之后能獲得巨大回報。

 

易於訪問

由於大型應用被拆分成了多個小型服務,所以開發人員能夠更加輕松地理解、更新和增強這些服務,從而縮短開發周期(尤其是在搭配使用敏捷的開發方法時)。

 

更加開放

由於使用了多語言 API,所以開發人員可以根據需要實現的功能,自由選用最適合的語言和技術。

 

所面臨的挑戰

如果您的企業正在考慮遷移到微服務架構,那么不僅是應用要變,相關人員的工作方式也會隨之而變。在某種意義上,改變企業和文化並不容易,因為每個團隊都有自己的部署節奏和所負責的服務,而且這些服務都擁有自己的客戶群。這些可能並不是開發人員通常要擔心的問題,但是這些問題卻決定了微服務架構能否取得成功。

除了文化和流程之外,復雜性和效率問題是基於微服務的架構所面臨的另外兩大挑戰。以下八類挑戰:

  1. 構建:您必須花時間明確各個服務間的依賴關系。要知道,由於存在這些依賴關系,當您完成一個構建時,可能會觸發多個其他構建。您還需要考慮微服務對於數據的影響。
  2. 測試:集成測試和端到端測試可能會前所未有的難以實施,但卻更加重要。根據您在架構相互支撐的服務時所采用的不同方式,架構中的一個部分出現故障,很可能會導致其他部分也隨之出現故障。
  3. 版本管理:在更新到新版本時,請記住:向后兼容性可能會因更新操作而失效。要解決這一問題,您可以利用條件邏輯來進行構建,但是構建會變得繁復、難以控制且快速。或者,您也可以為不同的客戶端維護多個活躍版本,但是相關的維護和管理工作會變得更加龐雜。
  4. 部署:沒錯,這也是一大挑戰,至少是首次設置時所要面臨的一大挑戰。為了簡化部署,您必須先大量投資自動化,因為人工部署無法應對微服務的復雜性。請好好思考您要以何種方式以及怎樣的順序來部署各項服務。
  5. 日志記錄:使用分布式系統時,您需要利用集中式日志將所有相關信息集中到一處。否則,積累的日志數量將讓您難以招架。
  6. 監控:您必須通過一個集中式視圖來了解整個系統的情況,以便找出問題的根源。
  7. 調試:無法進行遠程調試,因為這種方式無法涵蓋數十個或數百個服務。不幸的是,關於應該如何進行調試,目前還沒有標准答案。
  8. 連接:請考慮使用服務探索功能,無論是集中式的還是集成式。

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM