《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