1.微服務的定義?微服務需要“微”到什么程度?
(1)每一個微服務是一個獨立的自治系統,不依賴外部組件,能夠獨立運行; (2)對外只能通過API提供服務或者獲取服務; (3)粒度足夠小。 微服務的粒度與團隊組織方式是相關,與業務功能的構成相關,與數據相關。 在業務功能方面,盡量做到一個模塊中的業務高度類聚集,和外部模塊做到松耦合,獲取靈活性;在數據方面,一個微服務盡量不要和外部頻繁的交互數據,大量的API交互對性能和可靠性都有影響。
2.微服務的重大優勢是什么?它是未來嗎?
微服務,是一種去中心化的架構。一般和更細粒度的容器配合使用,天生自帶很強的共生性。 從早期的集中式架構,到分布式架構,再到現在更細粒度化的微服務,其實一直朝著去中心化的趨勢發展,具備更強的靈活性以及更適合云的特點。 微服務是未來一種非常主要的、應用廣泛的架構,但并不一定說它會統治一切。微服務化更適合無狀態、高迭代的業務場景。
3.微服務在實踐過程中最大的難點是什么?
微服務在實踐過程中,最大的問題是團隊之間的運作和管理?低商岬,有什么樣的團隊組織方式,就有什么樣的業務架構。業務架構,是和團隊組織架構相匹配的,當我們把一個大的系統,拆分成小的服務時,團隊會隨之變化。團隊成員需要適應微服務的開發模式,微服務對每個程序員有著更高的要求。 微服務實踐的難點不在于沒法拆分,難點在于很多人的思想停留在以前的架構思想下。建議逐步改造、持續迭代地改造架構。新業務、新團隊可以獨立地采用微服務化運作。
4.微服務、容器技術兩者的關系?兩者結合帶來什么新趨勢?
微服務是一種架構思想,而容器,或者說以Docker為代表的容器技術,是一種運行載體。容器天生適合細粒度的微服務,容器管理和分發需要Docker的支持。兩者結合,就是去中心化思想的實踐。 伴隨互聯網與云計算的發展,什么樣的架構或者產品研發模式是適合云模式的?是傳統的集中式架構嗎?分布式架構嗎?現在創業型公司的特點:完全基于云端,輕資產,小團隊作戰,快速的產品迭代。為了適應這些特點,必須基于云的原生特點去設計應用架構,所以微服務和容器發展的新趨勢,就是去實踐Cloud Native。
5.怎么處理微服務與外部相連,以及獲取數據?
微服務是通過API對外提供服務,本身是一個獨立的自治系統,所以不存在需要與很多數據中心相互連接的情況;如果需要通訊,直接適用公網連接就可以。
換句話說,微服務和微服務之間的數據通訊是通過API調用的。沒有所謂的內部的進程間、共享信號、共享內存隊列的模式。一個微服務對外提供的服務一定是封裝好的、接口式的。
6.微服務與容器結合會發展出新趨勢--Cloud Native,什么是Cloud Native?
在云時代,全部應用都基于云去構建,并不適合套用傳統的研發模式。Cloud Native是指云原生的應用架構,是專門針對云的架構。它主要包括三個部分,一種全新的架構思想(微服務),一種業務運行管理模式,以及一種團隊組織管理方式。關乎DevOps、小團隊、敏捷開發。Cloud Native既不是一個新的技術,也不是一套新的架構,而是產品研發、運營的全新模式。它是在云的生態場景生長出來的,和云的關系是一種魚和水的關系。
|