企业的微服务架构
最近,我參加了悉尼思特沃克總經理達倫?史密斯有關企業微服務架構的演講。
這個演講幫助我解決了關于大企業微服務架構的諸多問題。現在讓我快速回顧一下,在你探討團隊利弊的時候給你提供幫助。
演講視頻地址:https://www.thoughtworks.com/insights/blog/microservices-architecture-for-enterprises
首先,達倫傳達的信息是微服務架構并非構建大型企業應用程序的新形式。在過去的幾年中,諸如網飛和亞馬遜之類的公司已通過執行微服務架構生產成功的產品。
但是,微服務架構是否適合你的組織呢?答案不是簡單的是或不是,我將以達倫的演講作為指導,引導你獲得答案。
微服務架構這一段旅程從文化、技術和操作等多個維度影響你的組織。我們設想一下,在一家運營多年并占領市場的成熟跨國企業中使用整體應用程序。從軟件工程師或者架構師角度來看,簡化代碼庫的復雜區域,使之更易維護,這是一種很好的做法。
所以當你碰到具有很多行代碼的極其龐大的Java類,而不可取的方法又帶來了40%的類時,你怎么辦呢?很自然地(合乎情理地),你會與團隊進行某種形式的討論,然后提出策略來把類分成多個小類和/或方法。現在問問你自己,為什么清理整個Java類那么重要?
假如你的回答是更簡單的單元測試,易于審查代碼和修改影響,我建議你對整個服務和構成產品的模塊采用相同的思考過程。
把整體的應用程序分成更小的易于管理的服務,這其中有幾個原因。假如你是組織中的商業領袖,以下就是你可能考慮的一些問題:
-
進入新市場
-
支持創新
-
使業務能力和系統之間更一致
-
改變治理結構,更好支持快速決策
-
快速應對新的市場現狀
-
抵御干擾市場者
作為首席技術官或者首席架構師,你的責任就是評估不同的解決方案,以最佳方式解決上述問題并設計出與組織愿景相一致的系統。當考慮微服務架構時,要集中在一些關鍵區域上:
-
多層服務中的關聯性管理
-
端對端功能測試的規模
-
快速檢測故障,溫和地失靈而迅速地恢復
-
集合作為構建構件
-
跨組織邊界的元件/模塊重復利用
-
應用程序設計接口承攬公眾使用的服務
-
監控生命周期部署的各個階段
-
集中的架構團隊相對于分散的架構團隊
-
基礎設施自動化
架構師的角色隨著微服務采用而發展,對其委以挑戰性責任,從而形成架構管理。架構管理對于一個努力開啟微服務之旅的組織來說,是關鍵性因素之一,因為如果沒有合適的順序,流程將很快通向微觀管理,而不是微服務。
把整體分成多個易于管理的服務的最大優勢之一就是能讓一個小團隊全面管理服務的生命周期—開發、測試并推向生產。這就意味著企業架構師不再為單個服務的內在運作所累,轉而高度關注整個系統各個服務之間的互動。而且架構師應密切關注系統的整體健康,確保每項服務以一致的方式產生與監控有關的指標。
給予開發團隊全部的權限來選擇他們構建服務的技術堆棧,不意味著架構師對其執行不再有任何發言權。事實上,我們非常鼓勵架構師教導并影響其開發團隊。例如,考慮到服務要處理的數據具有高度非結構化性,架構師可以建議使用?NoSQL數據庫來代替關系數據庫。再比如,網飛公司把JVM平臺的使用標準化,這樣他們就可以在所有服務中使用標準庫。
當某位架構師正忙于跟開發團隊的協作時,另一位與“業務”團隊合作,以使技術愿景和業務愿景一致。這就是架構師的一個重要品質,因為系統需要能適應產品愿景或用戶反饋的變化。因此,架構師需要始終保持對行業中最新趨勢、工具和結構的關注,隨時準備將適當的工具用于給定的工作。
達倫談到了“?部署耦合”這一理念,強調了這樣一個事實,很多整體系統和傳統企業架構需要改變,單次生產中的所有系統都要同步。這轉而導致了什么也沒有得到的長時間的測試循環以及沒有人會失敗的觀念,因為沒有到達最后期限的系統意味著其他人都被排擠出去。
為了避免部署耦合,將遠程調用作為一個機制來整合服務。微服務社區建議在HTTP上使用REST,與其他諸如遠程過程調用或者簡單對象訪問協議之類的遠程通信協議截然不同,因為非基于HTTP的協議常常會把你困在一個特定平臺或者限制互操作性。通過使用基于HTTP的用戶級合同來整合服務,開發團隊可以避免永無休止的端到端測試階段并保持合適的速度。
對一個組織來說,掌管數以百計的服務使得運營變得復雜。作為一個組織,你必須確保具備堅實的DevOps基礎設施,隨時處理應用程序監控和報警。正如我前面所提到的,架構師至少必須把服務發出日志的方式標準化,這樣運營團隊就能監控整個系統的健康狀況,假如需要進一步調查,逐層展開到服務級別的健康。
最后,每個組織必須努力聘請、培訓并留住高質量的技術人員,因為“微團隊”之間的溝通和協作需要成效、技術刺激,尤其是樂趣,這些都是至關重要的。
我希望能解決你有關大型企業微服務架構的問題。建議你觀看這個富有深刻見解的視頻錄像,在里面達倫更加詳細地談論了這些問題。
歡迎關注寄云科技訂閱號(neuclouddy),這里有最新云服務行業資訊,更有與PaaS、運維相關的技術干貨!
總結
- 上一篇: c语言程序设计教程南京大学出版社答案,《
- 下一篇: 树莓派7Z解压问题