《2018年銀行容器平臺以及容器大數據混部的思考.pdf》由會員分享,可在線閱讀,更多相關《2018年銀行容器平臺以及容器大數據混部的思考.pdf(35頁珍藏版)》請在三個皮匠報告上搜索。
1、銀行容器平臺以及容器大數據混部的思考銀行容器平臺以及容器大數據混部的思考 阿里云容器計算高級技術專家 李鵬 2018/04/19 銀行業務變革 1 微服務DevOps 技術 2 應用為中心 文化 3 技術驅動業務 商業 銀行運維的關注問題 資源集約化管理 在線離線資源管理 資源 業務的快速部署 業務 自助式運維 運維 以容器為核心,推動全面轉型 以容器為核心以容器為核心,推動全面轉型 推動全面轉型 CI/CD工具 應用容器化 應用編排 資源調度 應用監控 應用商城 支持敏捷開發 實現DevOps 支持灰度發布 支持A/B Test 支持在線升級 新一代CaaS 軟件能力開放 實現高效自動化運維
2、 保障業務安全穩定 實現APM 解決測試開發環境不一致 異構資源智能調度 混合云無縫部署 一鍵部署復雜應用 實現自動應用彈性伸縮 應用自動 HA 和 Failover 微服務架構管理 應用交付標準化 應用環境標準化 應用組件重用化 飛天敏捷版架構示意圖 Kubernetes 管理節點 工作節點 工作節點 工作節點 管理員 部署和管理應用 管理節點 管理節點 管理節點 內部分布式存儲 RAFT一致性 負載均衡 DTR Replica 工作節點 負載均衡 DTR Replica工作節點 push/pull 鏡像 監控服務 日志服務 控制臺,Open API NAS/S3等分布式鏡像存儲 負載均衡
3、Haproxy,F5 告警服務 用戶 應用 log-pilot log-pilot monitoring-agent-heapster log-pilot 監控服務 Zabbix,etc 日志服務 Kaffka,ELK 告警服務 Zabbix,etc 用戶自建 認證服務 認證服務 LDAP,OAuth Kubernetes 管理節點 Kubernetes 管理節點 管理域 運用域 運用域 log-pilot monitoring-agent NAS/CephRBD/S3 管控界面 Troopers Mirana DTR Replica工作節點 log-pilot monitoring-agen
4、t log-pilot monitoring-agent log-pilot monitoring-agent log-pilot monitoring-agent log-pilot monitoring-agent log-pilot 阿里云容器服務混合部署集群聯邦 用戶機房A 用戶機房B 阿里云 Linux Linux Linux Linux Linux Linux Linux Linux Linux Linux Linux Linux Linux Linux Linux Linux Linux Linux Linux Linux APIServer APIServer APIServe
5、r APIServer APIServer Federa.onControllerManager Etcd Federa.onAPIServer API Federa.onDNS(阿里云)基于QoS的大數據與在線運用的混部 在線業務Web應用數據庫QoSclass:Guaranteed:limit=request離線業務Spark/MapReduce/DeeplearningQoSclass:Burstablerequestlimit 基于QoS的大數據與在線運用的混部 在線業務Web應用以及數據庫 qosClass:Guaranteedresources:requests:cpu:300m
6、memory:512Mi limits:cpu:300m memory:512Mi命名空間隔離和資源控制 cpu:12memory:16Gi Name:onlineLabels:Annotations:Status:ActiveResource Quotas Name:quota Resource Used Hard-configmaps 1 100 cpu 550m 12 memory 768Mi 16Gi persistentvolumeclaims 1 100 pods 2 100 replicationcontrollers 0 10 requests.storage 20Gi 102
7、4G secrets 3 100 services 2 10Resource Limits Type Resource Min Max Default Request Default Limit Max Limit/Request Ratio-Container cpu -100m 4 -Container memory -256Mi 16Gi -基于Kubernetes QoS的大數據與在線運用的混部 離線大數據運算QoSClass:Burstableresources:requests:cpu:100m memory:512Mi命名空間隔離和資源控制 cpu:4memory:32Gi Na
8、me:batchLabels:Annotations:Status:ActiveResource Quotas Name:quota Resource Used Hard-configmaps 0 100 cpu 400m 4 memory 2Gi 32Gi persistentvolumeclaims 0 100 pods 4 100 replicationcontrollers 0 10 requests.storage 0 1024G secrets 1 100 services 2 10Resource Limits Type Resource Min Max Default Requ
9、est Default Limit Max Limit/Request Ratio-Container cpu -100m 1 -Container memory -256Mi 16Gi -基于Kubernetes QoS的大數據與在線運用的混部 離線大數據運算帶寬控制QoSforbandwidthannota.ons:kubernetes.io/egress-bandwidth:10Mkubernetes.io/ingress-bandwidth:5M命名空間隔離和流量資源控制 ingress-bandwidth:5Megress-bandwidth:10MPod級別的流量控制 ingres
10、s-bandwidth:10Megress-bandwidth:10M Name:batchLabels:Annotations:kubernetes.io/egress-bandwidth=10M kubernetes.io/ingress-bandwidth=5MStatus:ActiveResource Quotas Name:quota Resource Used Hard-configmaps 0 100 cpu 100m 4 memory 256Mi 32Gi persistentvolumeclaims 0 100 pods 1 100 replicationcontroller
11、s 0 10 requests.storage 0 1024G secrets 1 100 services 0 10Resource Limits Type Resource Min Max Default Request Default Limit Max Limit/Request Ratio-Container cpu -100m 1 -Container memory -256Mi 16Gi -4 0.00-10.00 sec 93.7 MBytes 78.6 Mbits/sec receiver 基于Kubernetes QoS的大數據與在線運用的混部 離線大數據運算本地磁盤用量控
12、制QoSforrooWslimits:ephemeral-storage:100Mirequests:ephemeral-storage:100Mi命名空間隔離和rooWsdisk資源控制limits:-default:cpu:1memory:16Giephemeral-storage:100MidefaultRequest:cpu:100mmemory:256Miephemeral-storage:100Mitype:ContainerPod級別的rooWsdisk控制limits:ephemeral-storage:100Mirequests:ephemeral-storage:100Mi
13、 apiVersion:v1kind:LimitRange#setdefaultrequest/limitforyourcontainersmetadata:name:limits#namespace:users-namespace#specifyyournamespacespec:limits:-default:cpu:1memory:16Giephemeral-storage:100MidefaultRequest:cpu:100mmemory:256Miephemeral-storage:100Mitype:Container -容器異構計算 12CPU GPU FPGA RDMA 異構
14、資源 異構應用 人工智能、高性能計算應用 深度學習、高性能計算運行環境 25GE 統一調度、管理 快速迭代 容 器 服 務 基于Kubernetes的GPU調度和運維管理 TensorBoardTensorflow應用 MXNet應用 Kubelet數據卷 容器集群 Tensorflow應用 MXNet應用 Kubelet數據卷 解決方案控制臺集群管理、任務調度 一鍵部署集群 支持GPU調度 掛載共享存儲 負載均衡 彈性伸縮 GPU資源監控 日志管理 鏡像Hub 云監控gpu0/gpu1 gpu0 gpu0 容器平臺在銀行云平臺上線的主要關注點 鑒權審計 SSO集成以及RABC支持和多層次審計
15、 日志 系統日志和應用日志收集以及查詢 監控 完善的容器監控和自定義監控方案 安全 容器審計以及流量可視化和漏洞掃描 發布/容災 多副本高可用組件以及 完整的元數據備份恢復方案 容器開發 容器應用開發,遷移,持續集成 用戶場景 現有Weblogic/tomcat應用低成本向容器平臺的遷移 容器飛天敏捷版企業集成:1.Derrick自動化遷移 2.提供容器應用開發最佳實踐咨詢,提供DevOps流水線集成 3.敏捷版有完整的遷移方案,可以完成現有weblogic/tomcat應用到容器平臺的遷移,包括:鑒權,應用、日志、審計、監控等的無侵入式遷移。容器開發 Docker利用鏡像作為標準軟件交付的手
16、段,可以提供統一的的構建、交付、運維能力。我們討論Docker鏡像構建工作 容器風格選擇 Docker鏡像規范 Dockerfile中的安全考慮 Docker鏡像管理和發布流程 Docker鏡像優化 云原生計算與容器技術,容器開發模式 應用為王,Java內存管理,PID1進程管理 開源工具Derrick:讓開發人員不必懂Docker也可以構建鏡像 讓開發人員可以專注在應用的開發上,可快速完成應用Docker化 特點 代碼探測,支持常見編程框架 自動生成容器配置 Dockerfile,docker-compose.yml,Kubernets resource(TBD)Jenkinsfile 內建
17、最佳實踐 多階段構建等 https:/ java-maven project nodejs-npm python-pip setup php-composer golang-go 容器開發持續集成 持續集成,發布審核 實施結果 No.ce:來自XXXX行的分享和授權 用戶場景 容器飛天敏捷版企業集成:1.統一認證能力RBAC,OAuth,證書,Token等多種認證能力。2.完善RBAC,多租戶,多集群授權,集群內細粒度授權管理。3.完整UI,API,Registry審計能力 4.AdmissionControl,LabelSelector 資源管控 5.NetworkPolicy 開發團隊A的
18、某信用證項目上線,同時團隊B的區塊鏈項目上線,需要完整的隔離,鑒權,審計能力 實施結果 No.ce:來自XXXX行的分享和授權 用戶場景 容器飛天敏捷版企業集成:1.core dump,jvm dump 和 application log 和server log 分別被容器平臺log-pilot采集到遠程存儲和Kaffka中。2.同時容器平臺會自動在其他節點上重啟該應用,保證在分析差錯的階段應用也是可用的。3.報警通知運維,開發人員,便于開發人員按時間點復盤和重現現場,追蹤原因。Weblogic應用服務器在某天由于JVM crash導致業務中斷 存儲支持 Volume Plugin Pod B
19、 volume kubelet Volume Plugin Pod A volume kubelet Worker nodes Aliyun EBS/NAS/OSS(Ceph RBD/NAS)API Server Volume Provisioner Master nodes 存儲支持 Volume Plugin Pod B Pod A kubelet Volume Plugin Pod A volume kubelet Worker nodes API Server Volume Provisioner Master nodes X Aliyun EBS/NAS/OSS(Ceph RBD/N
20、AS)volume volume 實施結果 No.ce:來自XXXX行的分享和授權 用戶場景 用戶的業務應用響應速度變慢,發現Weblogic應用出現線程數過多,GC頻繁 容器飛天敏捷版企業集成:1.觸發業務報警,系統通過短信通知管理員,應用管理員對應用進行擴容,應用響應速度恢復正常。2.觸發HPA(Horizontal Pod Autoscaler),系統自動擴容應用,應用響應速度恢復正常。3.觸發系統資源報警,通知系統管理員,系統自動增加新節點,并擴容應用,應用響應速度恢復正常。彈性伸縮 聲明式伸縮策略 監控插件支持-Input:nagios,apache,docker,UDP,.-Out
21、put:Influxdb,prometheus,kafka Monitoring Agent Docker Engine Monitoring Agent Docker Engine Monitoring Service Cloud Monitoring Service Or InfluxDB+Kapacitor Cluster Manager Alert:Avg CPU 70%LB aliyun.auto_scaling.max_cpu:70 aliyun.auto_scaling.step:2 28 webhook平臺高可用:平臺管理功能在加電后自動恢復 平臺高可用:平臺管理和業務應用均不
22、受影響 實施結果 用戶場景 發布人員錯誤更新了某個部署的鏡像和配置,導致新的部署無法正常進行。容器飛天敏捷版企業集成:1.支持藍綠發布,灰度發布,允許撤回應用更新。2.管理員通過恢復etcd,可以在分鐘內迅速找回部署。3.管理員恢復用戶鏡像的鑒權信息,撤回修改。4.報警通知運維,開發人員,便于開發人員按時間點復盤,通過審計追責到發布流程是否合規。藍綠灰度發布 Release your software faster and safer 外部負載均衡 DiscoveryService Docker Engine(k8s Manager)Agent Routing Docker Engine(Worker)Agent Routing Docker Engine(Worker)Agent Routing App App DB App-Blue DB App App App-Green DB watchwatch and report實施結果 THANKS