《2018年演進式架構的平臺落地.pdf》由會員分享,可在線閱讀,更多相關《2018年演進式架構的平臺落地.pdf(41頁珍藏版)》請在三個皮匠報告上搜索。
1、?演進式架構讓架構可以快速跟上業務發展與技術生態變化,并保持穩定變化tech ecosystembusinessuxeverything changes all the time!當事物在以不可預期的方式持續改變時,怎么可能進行有效的預先計劃?動態平衡evolvab ilityaccessibilityreliabilityrepeatabilityaccountabilityextensibilityreproducibilityaccuracyfailure transparencyresilienceadaptabilityfault-toleranceresponsivenessadm
2、inistrabilityfidelityreusabilityaffordabilityflexibilityrobustnessagilityinspectabilitysafetyauditabilityinstallabilityscalabilityautonomyintegrityseamlessnessavailabilityinterchangeabilityself-sustainabilitycompatibilityinteroperabilityserviceabilitycomposabilitylearnabilitysupportabilityconfigurab
3、ilitymaintainabilitysecurabilitycorrectnessmanageabilitysimplicitycredibilitymobilitystabilitycustomizabilitymodifiabilitystandards compliancedebugabilitymodularitysurvivabilitydegradabilityoperabilitysustainabilitydeterminabilityorthogonalitytailorabilitydemonstrabilityportabilitytestabilitydependa
4、bilityprecisiontimelinessdeployabilitypredictabilitytraceabilitydiscoverabilityprocess capabilitiestransparencydistributabilityproducibilityubiquitydurabilityprovabilityunderstandabilityeffectivenessrecoverabilityupgradabilityefficiencyrelevanceusabilityevolvability演進式架構An evolutionary architecture
5、supports guided,incremental change across multiple dimensions.演進式架構支持 在各個架構設計維度上,沿著特定方向進行頻繁增量式變更。guided沿著特定方向(guided)的演進guided架構“適應性函數(Architectural Fitness Functions)”對一些架構特征提供客觀的一致性評估。fitness functionsmetricstestsmonitors適應性函數分類atomicholistictriggeredcontinuousjDependArchUnitConsumer-driven Contra
6、ctCorrelation IDsChaos Monkeyincremental change“架構量子(architectural quantum)”是一個可獨立變化并部署的單元組件,其具有高功能內聚性,包含一個系統正常工作所需的所有結構要素。Checkoutcomponentcomponentcomponentdatabase componentcomponentcomponentreportingpackage searchcomponentcomponentcomponentcomponentcomponentcomponentmicroservicecontainer大泥球大量子尺寸
7、的應用阻礙頻繁增量變更,因為高耦合性需要一次部署大量代碼、大量的應用。單例架構非結構的單例架構user interfaceClassClassClassClassClassClassClassClassClassClassClassClassClassClassClassClassClassClassClassClassClassClassClassClasspresentationbusiness rulespersistencedatabasecomponentcomponentcomponentcomponentcomponentcomponentcomponentcomponentco
8、mponent分層單例架構微內核與插件架構stdstdstdstdstdstd事件驅動架構BrokerMeditator微服務架構checkoutmodulemoduledatabase shipmodulemoduledatabase inventorymodulemoduledatabase listingmodulemoduledatabase accountsmodulemoduledatabase bulk txnmodulemoduledatabase servicemodulemoduledatabase routingmodulemoduledatabase API layer
9、client requestsclient requestsclient requests向以“領域”為中心的架構遷移演進數據庫(like code)Tested Versioned Incrementalscripting all db changes incrementally db refactoringdecouple db migration from app migration演進接口(forward compatible)Production演進接口(forward compatible)Production演進接口(forward compatible)Production演進
10、接口(forward compatible)Production演進接口(forward compatible)Production微服務研發平臺落地落地優秀實踐,守護架構,降低微服務研發學習成本企業研發工具鏈生態敏捷協作平臺部署發布 平臺持續交付流水線平臺自動測試 平臺微服務系統設計,研發與運維管理微服務/API設計代碼 生成契約 服務架構 演進微服務 運維治理部署架構 設計統一協作平臺研發工具連為某企業做的微服務平臺規劃部署架構設計服務契約定義 契約代碼 評審開發服務運行治理服務 部署運行架構治理故障 分析定義架構 約束條件微服務架構設計服務地圖 設計API設計部署架構設計微服務工程創建開
11、發框架架構風格資源 配置架構演進服務 關系 分析代碼質量分析數據庫分析領域模型分析運行資源管理PaaS、容器云資源管理公共 部分產品、人員維護定義通用 約束條件定義服務 約束條件可視化設計服務地圖關聯變更到需求設計API導swagger文件API清單設計變更與需求關聯服務地圖變更歷史生產環境 部署架構設計測試環境 部署架構設計繪制部署架構,組合服務和 部署元素部署架構變更歷史推薦部署架構(遠期規劃)微服務開發框架定制代碼架構風格選擇資源配置數據庫版本管理是否自動生成API/Dockerfile/流水線生成代碼到GIT倉庫架構分析-從契約反向識別實現與模型差異架構分析-架構Fitness Fun
12、ction檢查代碼質量分析-配置Sonar地址、展示分析結果數據結構分析-測試環境的反向工程可視化數據結構分析-生產環境腳本導入可視化領域模型-基于代碼守護的反向可視化運行時部署架構可視化數據庫 狀態/版本顯示創建系統組建團隊我的系統 列表團隊人員角色權限維護外部系統維護架構約束定義維護部署元素維護代碼引入ArchUnit/log格式入手框架管理代碼模版生成引擎GIT插件通信對接DevOps流水線契約測試Mocker ServerAPI定義生成Jar契約配置中心 統一管理獲得運行架構、實例狀態ELK方案對接資源室獲得組織結構對接175產品定義管理Fitness Function執行引擎集成So
13、nar Server對接容器云 PaaSAPI變更歷史部署架構變更評審定義 契約契約變更評審未評審契約 提示已申請資源登記服務部署腳本生成部署架構推到目標運行(測試、生產)單服務 更新服務示例日志問題定位分析調用鏈可視化生成流水線對接流水線執行部署分享 契約應用架構變更 評審關聯變更到需求需求查看需求我的任務對接外部 系統前臺后臺/支持為MVP包含的功能范圍服務地圖產品服務用戶產品容器云PaaSELK監控發布 平臺運維服務服務實例資源池運行架構175用戶認證服務鑒權會話微服務設計服務微服務服務地圖API契約外部系統部署架構服務架構約束部署架構部署組件架構守護 服務架構 守護度量服務度量分析代碼
14、生成引擎服務依賴框架模板微服務 工程碼云UDUDDevOps平臺微服務契約測試平臺SonarUDDUUDUDUDUDUDUDUDUDUDUDUDUDUDUD系統 31服務定義服務間及與外部系統依賴關系DDD對象模型服務地圖 32API管理API定義服務與API關系多版本API管理(API演進)33生成服務代碼多框架支持多架構風格支持(分層、DDD、整潔等)自動生成服務代碼與配置 34服務地圖數據庫演進 與版本化管理數據庫引入Flyway等自動生成初始腳本庫自動化變更DB 35契約 契約定義(依賴、集成關系)契約變更評審 契約變更歷史記錄 支持契約測試架構演進守護架構演進守護-從契約反向識別實現
15、與模型差異領域演進守護-DDD領域模型的反向可視化服務地圖API管理契約定義架構演進守護-Atomic Fitness Function檢查通過有效的契約定義推導服務與API之間關系,并與設計對比(holistic fitness function)架構演進守護架構演進守護-從契約反向識別實現與模型差異領域演進守護-DDD領域模型的反向可視化JDependArchUnitSonar架構演進守護-Atomic Fitness Function檢查(atomic fitness function)架構演進守護DDD建模自動生成代碼代碼反向生成模型架構演進守護-Atomic Fitness Func
16、tion檢查領域演進守護-DDD領域模型演進架構演進守護-從契約反向識別實現與模型差異采用CD部署流水線 自動化Fitness Functionscommit/unit test01001001010101010101010101010010101001001000100100010001functional testUATholisticfitness functionsdatabase atomicfitness functionsunit tested codefunctionally tested codearchitecturally tested codedeployedquantumintegrationenvironment 40服務地圖結合流水線執行 Fintness Function 自動生成服務的部署流水線 自動生成docker file 自動在pipeline中配置必要的fitness functions演進式架構An evolutionary architecture supports guided,incremental change across multiple dimensions.演進式架構支持 在各個架構設計維度上,沿著特定方向進行頻繁增量式變更。THANK YOUneal4d patkuarebeccaparsons