- 微服務設計原理與架構
- 鄭天民
- 1034字
- 2019-09-10 13:22:32
第1章 直面微服務架構
隨著近年來軟件行業(尤其是互聯網行業)飛速發展,一方面以電子商務、O2O、移動醫療、在線教育等為代表的互聯網和互聯網+應用對軟件行業的業務結構和體系造成巨大沖擊,另一方面,快速的業務更新和產品迭代也給系統開發過程和模式帶來新的挑戰。業務需求層出不窮且不斷變化、技術發展和創新日新月異、團隊規模從無到有快速擴張、系統的復雜性以及對行業變化的快速應變能力等成為軟件開發的核心問題。圍繞這些來自于外部與內部的壓力和動力,如何更為合理地劃分系統和團隊邊界、如何更加有效地組織系統開發過程、如何通過技術手段識別和消除開發過程中的浪費成為廣大軟件開發和技術管理人員需要思考的命題。
針對這些命題,我們的思路首先是根據業務劃分系統和領域的邊界,對一個大而全的系統進行分而治之,通過一些功能邊界明確、業務高度抽象的模塊或組件之間的組裝去形成更大的業務體系。其次,在系統和領域內部,同樣需要對業務體系進行合理建模。通過建立服務體系對服務進行一定拆分和集成,從而降低業務實現的復雜性,并提高服務交互的靈活性。再次,通過服務拆分和集成的手段也可以推動研發團隊組織架構的優化,并促進系統持續交付工作的有效開展。圍繞這些解決問題的思路,微服務架構(Microservices Architecture)為我們提供了一種具體的解決方案。
所謂微服務(Microservices),就是一些具有足夠小的粒度、能夠相互協作且自治的服務體系。每個微服務都比較簡單,僅關注于完成一個具體業務功能并能很好地完成該功能,而這里的功能代表都是一種業務能力。構建微服務體系需要一套完整的方法論和工程實踐,而微服務架構代表的是實現微服務體系的架構模式,即為我們提供了這些方法論和工程實踐。通過微服務架構,軟件開發過程能夠得到改善,開發效率能夠得到提高,從而創造更為優秀的產品和用戶滿意度。微服務架構的提出代表著一種新的架構設計風格和模式,從這個角度講,微服務架構需要我們理解、學習并應用到日常開發過程中去。但是微服務架構又不是一種完全打破現有技術體系、從無到有所誕生的替代性架構,而是在現有面向服務架構、企業服務總線等思想和技術體系的基礎上,伴隨著持續交付、虛擬化和容器技術的發展自然而然產生的一種軟件設計和架構模式。
微服務架構的基礎是分布式系統。本章從分布式系統出發,圍繞微服務架構的基本概念展開,討論微服務架構與現有架構體系之間的對比,并給出構建微服務架構的系統方法。同時,微服務架構有其優勢,但在實施過程中也會面臨各種各樣的挑戰,本章對微服務架構的這些特點也做了分析。
- .NET之美:.NET關鍵技術深入解析
- Facebook Application Development with Graph API Cookbook
- GAE編程指南
- 從零開始:數字圖像處理的編程基礎與應用
- ASP.NET MVC4框架揭秘
- Android Jetpack開發:原理解析與應用實戰
- Mastering Swift 2
- Bootstrap 4:Responsive Web Design
- Building an RPG with Unity 2018
- 大模型RAG實戰:RAG原理、應用與系統構建
- Web前端應用開發技術
- 3ds Max印象 電視欄目包裝動畫與特效制作
- 數據分析與挖掘算法:Python實戰
- 深度學習入門:基于Python的理論與實現
- Visual C++從入門到精通(第2版)