《2019年傳統.net應用向微服務架構遷移的實踐經驗.pdf》由會員分享,可在線閱讀,更多相關《2019年傳統.net應用向微服務架構遷移的實踐經驗.pdf(27頁珍藏版)》請在三個皮匠報告上搜索。
1、.NET Core 2019China.NET Conf 2019傳統.NET應用向微服務架構遷移的實踐經驗China.NET Conf 2019議題落地:技術與管理經驗分享2創新:項目成果和總結3背景:項目介紹和難點分析1China.NET Conf 2019背景:背景:X項目曾經面臨的挑戰項目是基于.NET構建的一套復雜的遠程實驗交付系統。自2011年以來,從最早的遠程實驗接入,到后來的的復雜實驗業務場景交付,其重要性和擔當的業務價值越來越大,但其技術架構發展較為緩慢,無法高質量滿足當下多變的業務需求,在運行和維護中由于陳舊架構導致的問題較為突出,也不符合當前互聯網化大背景下的技術架構發展
2、方向。2011201220132014201520162011年5月,原型驗證階段:引入虛擬應用交付技術。2012年8月,X項目三期:引入執行引擎,邏輯分離,與設備管理平臺對接等。2012年3月,X項目二期:引入拓撲圖式實驗交互模式,增強整體可用性。挑戰一:業務需求越來越難以滿足。挑戰一:業務需求越來越難以滿足。X項目交付量從最初3500班天,發展到2016年14500班天,要處理LS,AMS,NIS等多種業務。業務需求越來越復雜、差異化明顯且具有多變性。相對地,X項目架構在過去四年內并未做任何升級改造,客戶需求多以“打補丁”的方式滿足,難以繼續滿足未來業務發展需求。挑戰二:部分技術已經逐漸落
3、后于行業發展。挑戰二:部分技術已經逐漸落后于行業發展。從行業趨勢來講,企業業務正面向互聯網化轉型,在“高頻率版本發布”、“更加注重用戶體驗”等目標驅動下,企業架構更多的開始學習BAT,采用開放平臺和技術,如 Linux,Apache,MySQL,Docker等;同時,在開發運維模式上,企業正在由傳統的開發和運維分離,向開發運維一體化即DevOps轉變。挑戰三:運維壓力越來越大。挑戰三:運維壓力越來越大。當前架構涉及到的組件全部是自行部署和維護,平臺、數據庫、監控、應用配置、大數據等,對運維團隊提出了較高的要求。具體表現為:底層組件無法跟隨上層業務壓力變化而變化,出現問題后定位過程時間長且難度高
4、。X項目架構在過去四年主要是修修補補,沒有實質性變化。123123X項目業務發展業界技術架構變遷X項目運行維護挑戰X項目架構發展情況China.NET Conf 2019背景:背景:項目問題具體分析2016年8月,行云顧問組對項目進行了評估,與包括管理組、需求分析、PM、架構師、開發、測試、運維等多位同事進行了訪談,特別就不同角色對項目的痛點進行了識別,其中技術架構與流程相關問題較為突出,組織和管理方面問題也占有一定比例。China.NET Conf 2019分析:分析:.NET Framework to.NET Core已有.NET代碼和.NET Core的兼容性如何哪些類型服務需要繼續在.
5、NET Framework上運行數據庫選型的考慮,依然SQL Server還是要切換到MySQL面對新的語言、新的架構,開發人員知識轉換難度設立團隊的一些考慮,對需求的準確理解是“重中之重”China.NET Conf 2019議題落地:技術與管理經驗分享2創新:項目成果和總結3背景:項目介紹和難點分析1China.NET Conf 2019 最佳實踐 高度融合 相輔相成落地:落地:項目改造的主要方向China.NET Conf 2019落地:落地:項目改造的具體方向China.NET Conf 2019微服務度量標準(業務單一性等,原則:高內聚低耦合)微服務命名規范xxxx-yyyy-zzz
6、z代碼配置分離符合服務治理要求開發技術棧選型契約(容錯契約、去數據中心契約、消費者驅動契約)模式(代理模式,聚合模式,串行模式,分支模式,服務異步消息模式,服務共享模式)容錯(艙壁隔離模式(生產環境/線程池),熔斷模式(程序實現),限流模式(計數、令牌、信號量-Semaphore),失效轉移模式)架構安全性數據共享報表需要服務間身份認證和授權健康檢查服務間依賴(不依靠ip地址等)代碼規范:代碼交付API接口規范(GET PUT POST DELETE.)統一返回碼暴露監控指標方式標準化工具協助自動化檢查(Sonar)日志規范:生成日志的位置強制日志id日志格式patten(時間、模塊、異常信息
7、類型)日志級別(WARNING,DEBUG,INFO,ERROR.)鏡像規范:鏡像命名及版本規范鏡像描述規范md5校驗要求鏡像中不存儲證書落地:制定技落地:制定技術和管理規范China.NET Conf 2019落地:落地:項目微服務改造的切入點對于X項目,微服務改造并非推倒重來,而是在過去幾年運營的積累上循序漸進完成。實驗預訂被選為微服務改造的切入點。China.NET Conf 2019落地:落地:.NET core 和和傳統.NET 并存并存.NET Core微服務11個.NET frmwk微服務6個X項目根據服根據服務組件的特點和需求,靈活交付到容器或是虛活交付到容器或是虛擬機環境.C
8、hina.NET Conf 2019落地:落地:應用商店-實現代碼和業務邏輯的共享用戶可以分享自己制作的應用或是組件。用戶可以分享自己制作的應用或是組件。秒極一鍵部署,可以與內部結算系統對接。應用商店提供了面向普通用戶的各類業務系統(如:OA、ERP、CRM等),同時也面向IT人員提供PaaS組件、微服務組件、測試工具、數據集等。China.NET Conf 2019落地:安全增落地:安全增強 云云資源云云資源安全:以更豐富的權限控制、更智能的網絡管理和多租戶隔離等方式實現云資源安全。行云權限體系:是基于用戶、組、角色、資源等維度的精細化權限認證體系。用戶組角色資源環境:開發(上海)環境:測試
9、(深圳)環境:生產(北京)項目A代碼配置測試開發a運維用例部署監控測試開發b項目B代碼配置用例部署監控測試行云權限體系China.NET Conf 2019落地:安全增落地:安全增強 數據數據數據安全:數據安全:一切皆在云上,實現線上開發、線上整改、線上發布。Cloud OS持續集成代碼倉庫鏡像倉庫1.創建項目2.自動創建并綁定代碼庫4.部署6.自動拉取5.自動觸發7.自動上傳鏡像8.容器化部署3.開發、整改應用工廠基于組、角色、環境等維度實現的精細化權限認證,用戶只能查看或操作自己權限范圍內的數據鏡像安全:統一安全掃描,檢測可能存在的安全漏洞,及時防范集成代碼倉庫,實現一步到位集中化管理9.
10、監控China.NET Conf 2019落地:安全增落地:安全增強 鏡像在本項目建設中,通過結合開源技術實現的自研組件,實現對容器云上承載業務應用的信息安全防護。該技術方案主要特點有:1.主動定期同步公網CVE漏洞數據源,確保最新漏洞及時納入本地特征庫,主動及時發現問題2.自動由傳統的人工判別演進到系統自動判別3.全面只要是入庫的鏡像都會經過掃描,360度無死角4.輕量掃描組件在業務容器之外獨立運行,對運行中業務毫無性能影響,方案輕量且擴展性強。漏洞特征庫容器鏡像庫報警通知CVE數據源鏡像掃描1.定期同步安全漏洞數據3.與漏洞特征比對2.分層提取鏡像數據4.發現問題馬上報警靜態鏡像掃描機制靜
11、態鏡像掃描機制修復漏洞5.根據建議修復鏡像6.推送修復好的鏡像入庫并更新運行中的應用China.NET Conf 2019落地:集成增落地:集成增強-技技術平臺與管理類平臺交互創建需求#123基于MapReduce實現X樣本數據分析創建缺陷#124代碼質量缺陷潛在空指針異常創建項目關聯Jira Story#123代碼提交關聯Jira Story#123架構圖更新關聯Jira Story#123測試版本發布關聯Jira Story#123生產版本發布關聯Jira Story#123監控發現異常告警關聯Jira Story#123#123新增評論張三更新了架構圖,點此查看關閉缺陷#124創建缺陷#
12、125自動化測試未通過,查看報告關閉缺陷#125自動化測試通過,查看報告SonarCube發現代碼質量問題代碼修正關聯Jira Story#123,Jira Bug#124SonarCube測試通過自動化測試執行失敗代碼修正關聯Jira Story#123,Jira Bug#125生產Sanity測試執行成功自動化測試執行成功關閉需求#123Sanity測試通過,查看報告創建缺陷#126監控發現異常,Java Exception XYZChina.NET Conf 2019落地:落地:X項目采用的DevOps和微服和微服務支撐平臺總體架構Web IDE應用架構設計器前端設計器云應用商店代碼管理
13、私有云私有云為創新加速的開開發服務以業務為中心的PaaS平臺平臺31256基于Docker容器技術服務治理和安全保護全面支持DevOps方法論多集群和多云應用交付Windows,Linux容器統一管理自動化測試41組件拖、拉、拽可視化設計、編排、管理云端微服務2組件拖、拉、拽設計網頁前端和微信小程序3在網頁上編寫代碼4定義和執行自動化測試方案5一鍵快速部署企業應用到任意云端6基于Docker,K8S構建的PaaS采用K8S管理容器China.NET Conf 2019落地:落地:X項目物理部署架構China.NET Conf 2019落地:管理和落地:管理和團隊同樣重要!China.NET C
14、onf 2019議題落地:技術與管理經驗分享2創新:項目成果和總結3背景:項目介紹和難點分析1China.NET Conf 2019創新1:所所見即所得 可可視化“拖、拉、拽拖、拉、拽”式的式的業務架構編排來自應用商店的組件把組件拖入畫布并連線即可完成微服務架構設計支持組件嵌套微服務之間的連接拖動高效性高效性:模塊共享、重用大大提高創新效率團隊高效協作避免相似模塊的重復開發投入經濟性經濟性:靈活性靈活性:多語言、多技術棧的模塊靈活組裝、對接,滿足多變業務需求設計“藍圖”一目了然,可數據化歸檔,新成員快速開始可視性可視性:簡潔、直觀的方式搭建應用程序簡潔性簡潔性:China.NET Conf 2
15、019創新2:云端:云端IDE 隨隨時隨地、安全地編寫代碼安全性安全性:開發環境和代碼都在云端,數字資產不落地確保信息安全高效性高效性:隨時、隨地打開網頁即進入熟悉的編程環境,配置、工作區保持原樣支持傳統IDE的各種交互功能,如關鍵字高亮、自動完成,API選擇等等可對開發者行為模式進行數據分析進而提升效率靈活性靈活性:對終端設備要求極低,支持各種終端類型支持權限控制下的遠程編程支持各種主流開發語言對外包團隊的靈活支持簡潔性簡潔性:打開瀏覽器即可開發,無需配置復雜環境架構設計、編寫代碼無縫對接編碼完成后即可發布到任意云端China.NET Conf 2019創新3:多云和跨云:多云和跨云調度 以
16、模以模塊為粒度,應用和基礎設施完全解耦公有云-集群N應用部署和調度控制器公有云-集群1集群Agent私有云-集群N私有云-集群1集群Agent商品瀏覽網關將應用的不同部分部署不同云,把購物車和數據庫服務部署在企業的私有云,把商品瀏覽服務部署在公有云。兩個服務之間通過CloudOS提供的跨云服務機制連接。調度器支持應用跨云遷移,在不中斷服務的情況下,通過“小步推進,逐步替換”的方式,把應用遷移到不同云端。庫存服務購物車網關商品瀏覽購物結算專線或VPN統一界面操作,無需切換部署環境。將不同業務模塊部署到多個云環境。China.NET Conf 2019創新4:模:模塊化分享和復用,讓代碼和業務邏輯
17、也成為數字化資產。有效協作眾多內部開發團隊大量外部軟件供應商互不兼容,集成困難相似功能點重復開發維護難度越來越高應用軟件越來越復雜業務需求無法快速滿足缺少有效項目分解統一標準,無縫對接組件分享、復用運維越來越自動化應用軟件靈活擴展快速響應業務模塊化構建項目眾多內部開發團隊大量外部軟件供應商把工業界成熟的“模塊化”技術引入到軟件開發中來,讓不同的開發團隊以“搭積木”方式構建應用。這些“軟件模塊”又可以在企業內部或是與兄弟單位間實現復用,避免重復開發、提高創新效率。提高創新效率“模塊化”也是應用程序充分享受多云部署收益的重要先決條件。China.NET Conf 2019成果:成果:項目的可量化成
18、果和收益微服務模塊個數17數據庫MySQL主體開發語言.netcore2.0服務協議HTTP RESTful承載技術DockerChina.NET Conf 2019成果:比成果:比傳統Cloud、DevOps、微服、微服務做的更多!Cloud 提供可視化業務架構藍圖。通過藍圖可進行評審、設計、開發、部署和運維,實現面向業務為中心的維度管理。DevOps 標準CICD為代碼到應用實例部署過程,行云額外提供在線設計和編碼能力,覆蓋業務管理全周期。Microservice 對已有代碼和業務邏輯可實現分享和復用,快速實現中臺和微服務體系,加速新業務構建開發和創新能力。China.NET Conf 2019謝謝,期望與您的交流!