华为吴建林 - 华为全球IT系统基于PaaS的实践分享

2020-02-27 192浏览

  • 1.华为全球IT系统基于PaaS的实践分享 嘉宾:吴建林
  • 2.目录 • 华为IT需求背景 • PaaS架构设计 • 需求实践 • 问题回顾 • Q&A 技术 引言 生产力 业务
  • 3.华为IT需求背景 华为IT介绍 华为IT现状 全球8大数据中心 17万+固定用户 业务支撑 采购、供应链、交付、销售、财经 办公IT、流程IT 管理规模 数十万台虚拟机 800+应用、2000+子应用(2016)
  • 4.华为IT需求背景 英国 俄罗斯 中东 华东 华南 南非 01 传统IT模式业务不够敏捷 人工审批流程繁多,无法快速Devops迭代 墨西哥 02 管理规模庞大,运维难度高 全球8大数据中心,管理虚机数量极速增长,运 维一体化成本高 南美 03 应用微服务化改造,个数急剧增长 通过微服务改造应用数量增长3倍以上,传统 IaaS无法支持快速弹性部署 虚拟化成本高,资源利用率低 04 IaaS虚拟化成本高,应用独占资源,利用率低 05 全球业务访问体验差 缺乏全球分布式动态路由,用户访问速度无法保 障 06 平台异构,支撑难度大 多种开发语言、多种IaaS、多种中间件增加平台 支撑难度 10%-25% App App App Bins Bins Bins 虚 OS OS OS 拟 化 Hypervisor Host OS Server
  • 5.PaaS架构设计 华为IT应用 供应链 Ideal 交付 财经 …… 服务集成 流量管理 计费管理 安全管理 运维控制台 集成网关 容量管理 健康管理 容灾备份 配置管理 自助服务 Dev Web IDE 微服务框架 CodeClub 应用调度 与资源管理 CI CD Test Run 代码构建 静态检查 API管理 容器服务 流水线 中间件服务 PaaS核心层(3+1) 微服务 运行与治理 应用开发 流水线 Kubernetes 测试IDE 接口测试 产品测试 资源配置中心 日志&调用链 监控&告警 中间件云服务 Kubernetes …… 同城双活 1km 深圳*区 双活生产中心 …… 异地灾备 深圳**区 …… 异地 灾备中心
  • 6.PaaS架构设计 FusionStage在华为IT的进展 1 2015年2月份开始容器试点 • 局部应用容器试点,基于Docker • 应用无状态改造 2 2015年10月份开始上线生产环境 • 基于Kubernetes、Docker方案,管理规模: 1000+VM,5000+容器 • 解决WS-AT网络协议问题,支持企业级应用的容器化方案,完成传统SOA向微服务的改 造。 3 2016年10月份开始在内部IT大规模推广 • 基于Kubernetes、Docker方案,管理规模: 4000+VM,20000+容器 • 提高Devops效率10倍以上,资源利用率提升1-3倍,全自动化流程,替换繁琐的人工审批。 • 支持弹性伸缩,亲和反亲和调度,ELB自动对接等
  • 7.需求实践 流水线构建,一键式应用发布 1 应用发布 Web Portal HDFS 存储 Pipline 容器制造工厂 2 镜像安全扫描 安全中心 4 部署验证 调度&编排 3 根据发布应用的环境选择仓库 5 同步到生产 容器镜像仓库(Test) 容器镜像仓库(Pro) 4 部署验证 6 全球镜像同步 测试环境 海外DC(生产环境) 国内DC(生产环境) 基于流水线,完成自动化版本构建,实现一键式应用发布;完成容器安全扫描,全球镜像同步与自动化调度 编排,打通部门墙,实现Devops。部署效率由原来的1周提升到5分钟,开发迭代速度提高10倍。
  • 8.需求实践 支持应用混合编排,实现虚拟机、物理机、容器的统一调度 混合编排 Web Designer Web Designer 图形化编排部署 Kubernetes API Server ETCD 混合编排 支持物理机、虚拟机、容器的统一资源调度,网 络互通 安全仓库 Docker镜像仓库、软件仓库,支持权限控制、安 全扫描、分布式存储 自助服务 自动化镜像构建,一键式自助服务 Pod Controller Process Controller 容器镜像仓库 PM VM 软件仓库 镜像自助服务 Pipline 拖拽式应用部署,资源一体化,屏蔽异构环境,节省95%的人工操作时间,操作性强
  • 9.需求实践 支持应用混合编排,实现虚拟机、物理机、容器的统一调度
  • 10.需求实践 万级容器运维管理系统 采集端 统一Agent管理框架 存储 支持Opentsdb/Hbase/ES,支持跨数据中心 智能分析 策略告警汇聚,经过大数据平台分析产生事件 实时流分析&线下分析 产生事件以后的自动弹性扩缩容 展示 支持管理员视角、应用视角多种展示 自定义Dashboard制作 告警 大数据分析平台 事件 策略引擎 Kafka 展示 Opentsdb/Hbase/ES 事件 Prometheus Xlet ICAgent Heapster 支持万级容器的实时监控数据采集、存储、聚合分析与展示
  • 11.需求实践 跨数据中心的两级调度: 亲和反亲和,提高部署可靠性&部署效率 主站点管理 MWC MQ Kube-APIServer Zone 1 Z1N1 Z1N2 1Scheduler 一级调度: 完成数据中心、 Region、环境、资源数调度 Kube-Scheduler ...Z1N1 Z1N2 Z1N3 2 二级调度: 完成单数据中心内 部的亲和反亲和部署调度 Zone 2 Z2N1 Z2N2 应用A的Pod 应用B的Pod . . .Z1N3 . . .Z2N3 自研调度算法: 1. 本地镜像: 亲和(提速) 2. 创建失败次数: 反亲和(Failover) 开源调度算法: 1. CPU余量: 亲和 2. Mem余量: 亲和 3. 容器个数: 反亲和 4. 同个应用部署: 反亲和 5. 同个app实例尽量分散在不同的虚拟机 解决跨数据中心调度问题,应用端到端部署调度时间从原来的5分钟降低到20s
  • 12.需求实践 全球分布式动态路由,快速访问体验,应用灰度,达5个9可靠性 DNS 物理L4转发 灰度管理 策略管理 …… 全球分布式路由 Redis Master 中间件ELB功能 : • 支持企业级WebSphere应用WS-AT事务协议 • 动态路由配置,无需重启 • 提供Nginx Plus商用版本级功能,会话保持、 健康检查 • 支持跨EDC的失效转移 • 基于策略的灰度发布 Redis Slave Tomcat WAS Kubernetes Redis Slave Tomcat WAS 支撑华为IT内部系统域名260多个,平均访问流 量达2千万次/天,访问时延微秒级别,达5个9 可靠性。 Kubernetes
  • 13.需求实践 应用灰度发布、自动弹性扩缩 扩缩容 应用升级 PaaS ELB 自动对接 API Server ETCD Cloud Controller Kubernetes Deployement Controller Node Node Node 扩缩容 应用自发现,ELB自动对接 虚拟机、容器混合扩缩容支持 应用升级 滚动灰度升级应用无中断 替换方式升级,资源需求量较大 V1 V1 V1 1 V2 V2 V2 替换式、灰度发布 V1 1 V1 2 V1 3 V2 V2 V2 滚动式、灰度发布 支持应用灰度发布,异构资源弹性扩缩容,自动ELB对接,实现无中断升级与扩缩容
  • 14.需求实践 传统IT 100个虚拟机 20%虚拟化消耗 部署&弹性时间:一周 运维部署靠人工,量小 中断升级,路由切换 CI CD未打通 不支持跨站点迁移 大网直通消耗大量网络资源 Fusionstage 价值分析 20个虚拟机 8%虚拟化消耗 部署&弹性时间:5分钟 百万级全自动化运维平台 灰度发布应用0中断升级 Devops全流程打通 跨站点应用快速迁移 网络共享、端口分配
  • 15.问题回顾 K8s Service引起的访问性能问题 服务自发现,网络4层直通,端口分配,性能相比Overlay提升2-5倍 问题描述: 测试发现1000台节点,600个Service,4000个Pod,每个Pod一个容器,最终Kube_proxy会在所有的 节点上产生近18000条 Iptable数据,且每次更新路由表都会耗时5-10s。 网络优化: 1. 端口管理: Kubelet端口池统一管理。 2. 应用自发现:容器所在节点IP:Port'>IP:Port