近日,2018第二屆云原生技術大會(CNTC)在杭州召開,本次會議由浙江大學主辦,中移在線服務有限公司、諧云科技、網新恒天、網易云及焱融云聯合主辦。網易云解決方案總架構師劉超在會上分享了容器、微服務、DevOps在傳統行業的落地實踐。

劉超認為微服務是一個演進的過程,是企業在發展過程中業務遭遇痛點、解決痛點的過程,同時這個過程非常復雜。在落地微服務的過程中,容器和DevOps也發揮著不可或缺的作用,不同企業在實踐微服務過程中側重要解決的問題也不同,劉超在演進中通過金融、物流和視頻監控等幾個行業的典型案例做了分享。
容器、微服務和DevOps之間的關系
微服務已經成為互聯網化架構的明顯特征,從大型互聯網公司,比如從Hailo、Amazon、Netflix、網易考拉等企業的架構圖中可以看出,服務已經拆得非常細了,服務間的調用關系基本上呈網狀的狀態。為什么一定要用微服務呢?據劉超介紹,“微服務是為了解決企業變化快、扛不住的痛點,變化快會帶來開發獨立、代碼沖突等問題,扛不住就要簡化擴容,優化容災降級的策略。”

但隨著微服務的拆分,也會帶來版本多,服務多的問題,容器是解決標準化交付的不二選擇;而有了微服務和容器之后,開發要幫助運維寫Dockerfile,運維要幫助開發做微服務的治理,才能保證從開發、交付到運維的順利進行,這就要求整個團隊認可DevOps的理念和文化。所以,在企業實踐微服務的過程中,容器、微服務和DevOps三者必然會相互交融,同時又有各自的分工。
容器平臺+微服務框架打造完整解決方案
微服務真正實踐起來是非常復雜的,在為多家內外部客戶提供微服務解決方案的過程中,劉超總結了微服務設計的十二個要點,包括微服務的基石持續集成,靜態資源分離與接入層設計,無狀態化與容器化,服務拆分與服務發現,服務編排,數據庫設計與橫向擴展,服務的全鏈路壓測,統一的日志中心,配置中心,服務的熔斷、限流、降級,消息隊列與異步化,緩存。
劉超說:“對比微服務設計的這些要點,容器編排平臺Kubernetes在某些方面有很好的支持,某些方面做得并不好,所以網易云將Kubernetes作為微服務運行的平臺,服務治理等工作交給微服務框架去做,將容器平臺和開源的微服務框架做了很好的融合。”據悉,今年7月網易云正式發布了業界最完整的微服務解決方案“輕舟微服務”,提供可拆分的覆蓋微服務應用生命周期的各種組件,目前已經應用于多家企業的生產環境中,幫助這些企業實現數字化轉型升級。
微服務在傳統行業的落地實踐
劉超結合網易云的客戶案例,分享了輕舟微服務在傳統行業的落地實踐。某金融客戶希望上線一些互聯網化的應用,由于每個單體承載的業務很有限,于是啟動了微服務的拆分。據劉超介紹,經過多次交流和溝通,網易云為其梳理出了一個側重于持續集成和容器化的解決方案,一方面因為微服務化不是一蹴而就的,應該有測試用例的覆蓋,在不斷地拆合過程中,保證功能還能像以前一樣正常運行;另一方面服務增多后,上線給運維人員帶來了很多壓力,容器化比較完美的解決了這個問題。
物流行業和電商企業的業務模式非常接近,基于在網易考拉積累的實踐經驗,網易云也利用輕舟微服務為某物流行業做了一系列的微服務解決方案。據劉超介紹,這家企業更側重于服務拆分和服務發現,數據庫的橫向擴展,熔斷、限流、降級以及全鏈路的壓測。網易云為這個客戶做了可定制化的API網關,更細粒度的服務治理策略,可配置的路由,流量染色,以及分布式數據庫等服務。
此外還有一個視頻監控企業,其系統大部分是外包開發,更新時會遇到很大的麻煩,網易云微服務治理和持續集成的解決方案幫助這個客戶很好地解決了這個問題。輕舟微服務幫助客戶實現了接口統一,模板統一,注冊API統一的交付流程,以及知識庫,認證鑒權和賬戶審計等企業級特性,同時網易云還幫助其實現了IT資產沉淀和IT能力的復用。