辽宁麻将透视眼镜|微乐辽宁麻将下载苹果版
連接安全與變革
股票代碼:831194

共享 共贏

新聞

技術干貨 | 微服務時代,為什么需要做持續集成
來源:派拉集團時間:12/6/2019瀏覽量:

持續集成對于微服務的意義

一談到微服務,大家首先想到的是如何拆的問題:拆的粒度、拆的時機、拆的方式。


這當然沒錯,但要提供一個完整的服務,不是將每個微服務都開發完成就結束了。


大家可以想象將一輛整車拆成零件,然后再組裝回去的過程,就可以知道拆雖不容易,合則更難,需要各種標準,各種流水線,才能將零件組裝成車。


那么接下來讓我們來看下軟件拆的過程:

之前的單體應用:一個Java后端和一個數據庫便搞定了;


數據量增大,單體架構無法支撐,架構變更,最外面接入Nginx負載均衡,數據庫使用一主多從,進行讀寫分離等等。


這時候系統龐大,但實際服務的仍是單體應用的java后臺,當客戶不斷提出新需求,業務邏輯開始交織,質量開始無法保證,災難開始。


現在的微服務架構


微服務,優化架構,對業務解耦。

接入層的設計、服務發現-服務編排、消息隊列與異步化、配置中心、日志中心、熔斷限流降級、緩存、數據庫-分布式數據庫-分布式事務,再到無狀態化、容器化….


業務解耦,微服務變多,如何讓各服務順暢的動起來尤其重要。


那么,如何讓各微服務“互動起來”呢?


持續集成要上場了…..


開發運維一體化


持續集成就是讓微服務不斷的嘗試在一起,就是制定一系列流程,將需要在一起的各個層次規范起來,方便微服務在一起,強迫微服務在一起,完成特定業務功能。



DevOps就是實現強迫微服務在一起的工具,工具有很多,在此就不展開了。

可以參考:https://www.w3cschool.cn/jenkins/

https://juejin.im/post/5ca8082df265da30813813bd



想做好持續集成靠僅有的工具和流程是不夠的,還需要文化。

因為微服務之后,模塊繁多,讓少數的運維能夠很好的管理所有的服務,壓力很大并容易出錯。


但開發往往被分成很多個團隊,每個模塊負責自己的部署,則不易出錯,所以一部分運維工作就需要交給研發來做,需要將研發和運維打通。


如果企業沒有這個互通概念,持續集成也基本涼涼..



有了這個文化,還需要日常管理流程來保證持續集成的有效運行。


比如,每天早上,第一件事情就是開站會, 一起說我昨天做了什么,今天打算做什么,有什么阻礙,這個站會對于開發有比較大的壓力。


例如你的一個功能block了依賴方的開發,在會議上會暴露出來,大家都知道這件事情了,一天block,兩天block,第三天你都不好意思去說了…


到了晚上,一天的成果物要提交,持續集成要求每天都提交代碼,這樣才能降低代碼集成的風險。


如果埋頭寫一周一起提交,這樣往往集成不成功。


提交不是馬上進入主庫,而是需要通過代碼審核、審核完成還要通過靜態代碼檢查、通過單元測試,編譯完成之后上傳nexus,生成Dockerfile。


凌晨,會有自動化的腳本將Docker鏡像通過編排部署一個完整的環境,然后跑集成測試用例,測試不通過,則會發出郵件來,是因為當天誰的哪個提交,導致測試不通過,抄送所有人,這是另一個壓力,因為第二天的早會上會過昨晚的問題。


通過日常管理過程,層層保證質量。


然而持續集成只是開始,持續交付、持續部署才是目標,持續改進才是重點,這個厲害了,在此我們也不展開了…


So,持續集成更是一種研發能力的象征。

派拉
我們的實踐

持續集成、持續交付、持續改進,這么好的實踐我們沒有理由拒絕,在派拉的產品研發過程中都進行了實踐并取得了良好的成果。


派拉統一身份管理與安全認證平臺基于標準的微服務架構,熔斷、限流、彈性伸縮等是標配。


微服務解決的問題之一,就是快速迭代,讓需求變更不再是問題;


微服務解決的問題之二,是高并發,讓性能不再是問題。


派拉統一身份管理與安全認證平臺的交付物為Docker鏡像與Pass平臺集成,根據并發自動啟動容器,時刻保證用戶體驗,使用Docker鏡像作為交付,能夠更好的保證環境的一致性,做到原子的升級和回滾。


返回列表

相關推薦

讓我們了解您的需求

© 2018 Paraview Software. All rights reserved.

滬ICP備13029541號-1

服務熱線:400-6655-745
企業郵箱:[email protected]
辽宁麻将透视眼镜 194568366428723493355871329382872294932397930257307676690198429210377483683569290732461923616559847 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();