1、阿里巴巴大規模分布式軟負載體系原理及實踐什么是軟負載微服務應用架構趨勢與軟負載阿里巴巴9年雙11中的軟負載實踐軟負載技術架構原理阿里巴巴開源中間層軟負載均衡產品 Nacos什么是“硬負載”?四層七層軟件硬件硬負載 是指傳統的企業級技術架構中在流量控制側偏重于使用硬件負載均衡器、偏重于四層負載均衡、偏重于集中的網關代理模式,偏重于Server-Based Load Balance的一系列的實踐方法。防火墻 DMZOrganiza(ons,DMZ?7層反向代理集群nginx/apache/haproxy動靜分離分流和路由4層硬件負載均衡f5/lvs,路由器,網絡NAT內部網關負載均衡器 F5 LV
2、S“硬負載”面臨的產業趨勢挑戰偏4層負載均衡流量的不確定性,需要彈性和靈活性IDC內部的機器之間的流量也很大關注負載均衡器的功能的可擴展性網關單點難以消除,故障恢復慢流量的精細控制,四層負載均衡難以理解業務語義必須關注成本關注整個負載體系的可運維性,可操作性,可管理性互聯網DevOps云計算軟負載偏重于7層負載均衡軟件定義流量均衡策略理解業務語義的流量調撥數據和算法驅動的精細流量控制策略擴展性和靈活性可操作性萬物皆“服務”以服務為中心的現代應用架構趨勢serviceService-Centric Architecture微服務的基石-服務發現與注冊中心 優勢 侵入小 易集中管控 劣勢 網關式,
3、有單點 成本高基于服務端負載均衡 例子 Nginx LVS Maglev 優勢 無單點 隨應用自然伸縮 成本低 劣勢 侵入大 難集中管控 例子 DNS Ribbon&Eureka Service Mesh基于客戶端端負載均衡Client BasedServer Based圖片來自 microservices.io阿里巴巴9年雙11中的軟負載實踐統一接入線上動態隔離環境微灰度單元化及異地多活流量調度統一接入動靜分離https加速&證書管理入口流量的限流黑灰流量清洗,安全防攻擊智能流量轉發策略(用戶特征洞察)邏輯分流與容災支持鏈路追蹤IAAS統一接入(Tengine)中間層負載均衡統一接入統一接入
4、(Tengine)購物車交易商品支付購物車交易商品支付PC無線IoT動態隔離環境真實生產環境統一接入層中間層負載均衡(Mid-Tier LoadBalancer)壓測流量真實生產流量線上壓測服務分組生產服務分組支持動態、邏輯隔離動態環境vs靜態環境根據需求動態生成某個環境成本低邏輯隔離 vs 物理隔離邏輯隔離更靈活符合彈性等需求測試環境(Test)預生產環境(Stage)生產環境(Production)微灰度create 微灰度1 規則-3%流量-label-1A/B Testingcreate 微灰度1 規則-10%流量-label-2 灰度效率問題 后端測試難 上下游依賴鏈路復雜,新測試環
5、境部署困難 線上數據和鏈路狀態難以仿真 鏈路局部創新和優化難 敏捷創新和試錯 低成本擴展多套環境 對業務0侵入的灰度測試環境和手段 線上真實流量 方法 鏈路染色 權重路由和流量控制 鏈路沖突檢測 資源占用審核 容量管理單元化及異地多活CDN中間層負載均衡中間層負載均衡統一接入層區域單元 A區域單元 B區域單元 C統一接入&中間層負載均衡識別用戶特征識別流量區域特征識別IDC分布拓撲結構支持流量權重控制識別切流&容災規則中間層負載均衡流量調度Metrics 數據收集根據需求動態生成某個環境成本低時序數據存儲時序和時空數據庫數據分析&算法時序和時空數據庫全局自動決策降權重定點控制遷移下線閾值保護,
6、防雪崩基于數據和算法驅動的自動決策,精細的流量調度中間層負載均衡整體架構原理系統打通中間層負載均衡與CMD中間層負載均衡與API Gateway配置中心與流量規則基礎中間件與中間層負載均衡中間層負載均衡與業務應用理解業務流量cookie,path,paramheader機房拓撲全棧metrics從網絡,操作系統,tomcat,緩存,RPC,業務都要暴露合適的狀態數據強大的中間層負載均衡大規模數據分發和推送能力數據驅動數據中心狀態數據實時性保障大數據(計算平臺)人工+智能的決策不斷改進算法機器學習方法CMDBmetricsRPC消息分布式緩存統一接入全局流量調度(數據驅動)業務流量資源調度IAA
7、S(網絡,主機,操作系統)DNS(bind)TengineLVS分布式數據庫特殊硬件加速注冊中心配置中心DNS-SD分布式協調存儲&計算平臺微灰度環境隔離單元化DPath中間件層精細流量規則層“服務發現”vs“軟負載”(weight)ip1:port1/svc1ip2:port2/svc1ip3:port2/svc1RegistryProvideConsumeConsumeregister tell me svc1s endpoints!ip1ip1,ip2,ip3流量控制request flow ip1:port1/svc1ip2:port2/svc1ip3:port2/svc1Regist
8、ryProvideConsumeConsumeregister tell me svc1s endpoints!ip1,ip2,ip3ip1,ip2,ip3服務發現request flow 服務發現 vs 軟負載(label match&selector)ip1:port1/svc1ip2:port2/svc1ip3:port2/svc1RegistryProvideConsumeConsumeregister tell me svc1s endpoints!ip1,ip2,ip3ip1,ip2,ip3服務發現request flow ip1:port1/svc1ip2:port2/svc1i
9、p3:port2/RegistryProvideConsumeConsumeregister tell me svc1s endpoints!ip1,ip2ip3動態歸組request flow 軟負載的基石-Label Based&Weightlabel based(metadata)weight(0.1精度)“軟負載”與新技術趨勢Service Mesh是client base LB 還是 server base?service mesh為何要支持權重路由?Traffic Management 的本質是什么?Kubernetes DNS-SD什么是DNS-SD?Label selector
10、Service Mesh 大規模生產應用之“阿喀琉斯之踵“-1.性能瓶頸-2.流量治理的擴展性與性能的平衡或有解決之道,但某一層必須變革user portaladminportalOPSConfigServerVIPServerMySQLDerbyETCDDisk FileCMDBGNSDiamondTaoKeeper分布式一致性(ZAB,Piv-Raft,Gossip,SW,Async-Notify,Timer-DUMP)Service DiscoveryHealth CheckDynamic DNSConfig PushIntelligent RouteTraffic MgrService
11、Meta KVServiceDistributed CoordinatorNameServerNginx/LVSLog&Stream異地多活流量調度軟負載均衡服務編排彈性計算服務治理任務調度預案限流大數據計算環境隔離切庫容災泛電商體系(天貓、淘寶、菜鳥、共享業務平臺、聚劃算、盒馬)大文娛(優酷、阿里影業、阿里音樂)搜索&廣告(搜索、阿里媽媽)安全阿里云高德地圖國際化(Lazada,AliExpress)REGIIDCIDCREGIONIDCIDCREGIONIDCIDC阿里巴巴開源 Nacoshttps:/ 和 Weight的注冊中心Service InfraserviceService-Ce
12、ntric Architecture服務注冊與發現服務共享服務協議轉換服務配置管理服務聚集與集成服務元數據管理服務連接與調用服務評價系統管理服務健康管理遺留系統集成服務跨域治理服務目錄管理Traffic ManagementService Managem滾動升級故障隔離服務安全策略服務彈性服務SLA管理服務拓撲依賴分析服務生命周期管理服務限流與熔斷流量調度環境隔離智能路由優雅上下線負載均衡異地多活Nacos 1.0 Dubbo 4.0+Nacos 2.0-An Open Service PlatformService Integration&MarketingKubernetes生態Dubbo生態Spring 生態Nacos總結定義并介紹了軟負載的概念介紹了阿里巴巴基于軟負載的應用場景及技術體系介紹了服務發現到軟負載的理念認知升級介紹了數據算法驅動的精細流量控制的“軟負載”理念