华为软件开发云 DevOps 实践

2020-03-01 136浏览

  • 1.基于kubernetes的企业级容器云 周彩钦 联想PaaS团队资深工程师 2017/04/18
  • 2.
  • 3.• 背景和挑战 • 企业级容器云设计与思考 • 让一切自动化 • 监控与日志 • Showcase • 那些坑,那些事 2017 Lenovo Internal. All rights reserved. 大纲 3
  • 4.2017 Lenovo Internal. All rights reserved. 背景和挑战 • 联想30年 4
  • 5.背景和挑战 • IT环境复杂 IIS Tomcat JBoss Nginx 编程语言 .NET Java php 操作系统 Windows Linux AIX 服务器环境 网络环境 物理机 VMware 跨地域多DC VPN OpenStack HAProxy Node.js AWS 2017 Lenovo Internal. All rights reserved. 架构和软件 Azure 专线 5
  • 6.企业应用多样化 系统架构各异 应用对平台的需求不同 应用的迭代速度不同 应用的开发模式不同 2017 Lenovo Internal. All rights reserved. 背景和挑战 6
  • 7.背景和挑战 • 组织架构 Lenovo OPS 外包 遗孤 • 分散且风格各异 • 技术多样水平各异 • 各路神仙,各显神通 • 干完一票,拍马就走 2017 Lenovo Internal. All rights reserved. – 单一运维团队支持N多开发团队 – 人少活多 – 缺乏标准和规范 • 奇葩应用,历史遗产 • 相见不相识 7
  • 8.背景和挑战 01 02 03 每个项目自维护 难以规范和升级 抽象成工具 模板化 一键化 多个工具集成 最佳搭配 合力作战 脚本化 工具化 平台化 2017 Lenovo Internal. All rights reserved. • 内部系统演进 8
  • 9.企业级容器云设计与思考 • 为何出发? 规范落地困难 依然不够自动化 服务割裂,申请流程 人工参与的半自动化 自服务平台 高效协作,加速迭代 2017 Lenovo Internal. All rights reserved. 系统分散,难以统一 资源使用率低 底层资源使用率低 9
  • 10.企业级容器云设计与思考 • 企业所关心的和容器带给我们的,如何去匹配 灵活 企业应用 诉求 安全 敏捷 移植 容器 快速 2017 Lenovo Internal. All rights reserved. 简单 稳定 隔离 10
  • 11.企业级容器云设计与思考 • 思考角度 从需求出发 从用户的角度思考 简单,学习成本低,改变成本小 从成本方面衡量 资源利用率,人力成本,投入产出比 从长远技术方向考虑 未来方向,新技术潮流,公司战略 从技术的角度评估 高效,稳定,可扩展 2017 Lenovo Internal. All rights reserved. 需求驱动,勿求大而全,没有银弹 11
  • 12.简单 复杂 开放 安全 规范 自由 2017 Lenovo Internal. All rights reserved. 企业级容器云设计与思考 • 平衡术 12
  • 13.企业级容器云设计与思考 • 方案的抉择:购买商业产品 VS 自研 自研 商业产品 简单快速 大厂支持,产品不够成熟 功能多但开发模式需要改变 定制化和扩展成本高 平台问题难以定位和处理 无法满足业务需求 商业产品 最大程度满足业务需求 技术可控,灵活,响应快速 便于结合公司规范提供自服务 研发投入大 维护成本高 2017 Lenovo Internal. All rights reserved. 自研 13
  • 14.2017 Lenovo Internal. All rights reserved. 企业级容器云设计与思考 • 技术的抉择 14
  • 15.企业级容器云设计与思考 Flannel网络 K8S Pod app01.xpaas.lenovo.com K8S Service Router K8S Pod DNS *.xpaas.lenovo.com Router IP Service Name K8S Cluster IP app01.xpaas.lenovo.com 172.19.228.1 app02.xpaas.lenovo.com 172.19.228.2 … 2017 Lenovo Internal. All rights reserved. • 网络方案及路由设计—简单,低侵入 … 15
  • 16.企业级容器云设计与思考 需求 数据持久化 数据共享 存储技术 使用方案 StorageClass PV PVC 2017 Lenovo Internal. All rights reserved. • 存储方案选择 16
  • 17.企业级容器云设计与思考 • 核心功能设计:配置简单,部署一键化,自服务 配置变更 创建应用 配置应用 持续迭代 部署应用 删除应用 部署服务 删除服务 服务部署:一次配置,部署成型 2017 Lenovo Internal. All rights reserved. 应用部署:频繁变更,持续迭代 配置变更 创建服务 配置服务 17
  • 18.企业级容器云设计与思考 console • 配置请求 • 部署请求 builder • • • • 准备构建环境 生成Dockerfile Build镜像 Push镜像 kubernetes • 部署服务 2017 Lenovo Internal. All rights reserved. • 部署流程 18
  • 19.企业级容器云设计与思考 • 其他技术方案和选型 前后端分离 微服务 Spring Boot 2017 Lenovo Internal. All rights reserved. SPA 19
  • 20.容器云设计--多集群支持的容器云 • What? – 多个容器云集群统一管理 • Why? 多个数据中心统一一个集群技术和管理难度大 2 混合基础架构 物理机,VMWare,OpenStack,AWS,Azure 2017 Lenovo Internal. All rights reserved. 跨数据中心 统一用户体验 多集群统一管理,无须切换平台系统 20
  • 21.容器云设计--多集群支持的容器云 • 多集群,一平台 Router1 Console Front End Console Back End Registry Dev/Ops/Admin End User 2017 Lenovo Internal. All rights reserved. K8S-1 K8S-2 Router2 21
  • 22.容器云设计-- DevOps的支持与企业权限设计 K8S-1 Console Restful API K8S-2 2017 Lenovo Internal. All rights reserved. • 常用DevOps工具的支持,快速融入现有开发体系 XPlatform 22
  • 23.容器云设计-- DevOps的支持与企业权限设计 • 良好的权限设计,让自服务变成现实 Project Master Application Developer Service Guest 2017 Lenovo Internal. All rights reserved. Owner 23
  • 24.让一切自动化--工欲善其事,必先利其器 集群安装运维自动化 环境安装 组件安装运维自动化 配置管理 服务部署上线自动化 部署上线 2017 Lenovo Internal. All rights reserved. • 从设计开始之初就把自动化理念融入进来 • 充分利用Docker的优势,加速平台的迭代 24
  • 25.让一切自动化 K8S快速搭建 20分钟完成各组件搭建 10分钟推送 故障恢复 减少故障,快速故障恢复 快速迭代 2017 Lenovo Internal. All rights reserved. Console搭建 上线时间小于5分钟 25
  • 26.监控与日志 Applications Docker Kubernetes 2017 Lenovo Internal. All rights reserved. • 监控:传统监控+新监控平台 OS CPU/Disk/Memory 26
  • 27.监控与日志 • 日志平台:多种采集手段并行 Applications log tail K8S Pod LogMinion ES Cluster stdout stderr Docker Kubernetes stdout stderr K8S DaemonSet logspout Kafka Cluster log tail Log Parser 2017 Lenovo Internal. All rights reserved. Kibana K8S DaemonSet OS 27
  • 28.2017 Lenovo Internal. All rights reserved. Showcase • 部署示例 28
  • 29.2017 Lenovo Internal. All rights reserved. Showcase • Scale Out横向扩展 29
  • 30.2017 Lenovo Internal. All rights reserved. Showcase • 滚动更新 30
  • 31.2017 Lenovo Internal. All rights reserved. Showcase • 容器访问 31
  • 32.2017 Lenovo Internal. All rights reserved. Showcase • 日志查看 32
  • 33.2017 Lenovo Internal. All rights reserved. Showcase • 资源管理 33
  • 34.那些坑,那些事 – K8S Deployment ID出现重复,导致部署后不更新应用https://github.com/kubernetes/kubernetes/issues/29735– flannel重启导致重新分配IP – K8S Dashboard卡顿的问题 – harbor服务器重启后出现mysql无主进程 • 平台开发的那些事 – 平台健壮性:当服务器频繁挂掉的时候,才知道现实和理想的距离 – Angular2出新版本了,更还是不更 2017 Lenovo Internal. All rights reserved. • 底层平台的那些坑 34
  • 35.
  • 36.Focused on CUSTOMERS in everything we do 我们以客户为中心,全力以赴创造价值 Global TEAM players guided by integrity and TRUST 我们是全球化团队,正直互信合作共赢 We Do What We Say. We Own What We Do. We Wow Our Customers. 说到做到,尽心尽力,成就客户 ENTREPRENEURS committed to driving change 我们是创业者,主动担当锐意变革 INNOVATORS who relentlessly pursue new ideas 我们是创新者,坚持不懈推陈出新 36