Diese Präsentation wurde erfolgreich gemeldet.
Die SlideShare-Präsentation wird heruntergeladen. ×

Openstack高度自动化持续交付

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Wird geladen in …3
×

Hier ansehen

1 von 39 Anzeige
Anzeige

Weitere Verwandte Inhalte

Diashows für Sie (15)

Andere mochten auch (16)

Anzeige

Ähnlich wie Openstack高度自动化持续交付 (20)

Anzeige

Openstack高度自动化持续交付

  1. 1. OpenStack at Unitedstack
  2. 2. UnitedStack 托管云模式就是为客户的UOS云集群提供持续的服务。实现持续交付需要考虑的因素:
  3. 3. UnitedStack APIs Portal APIs APIs
  4. 4. Openstack
  5. 5. Nova Glance Keystone Neutron Cinder OpenStack Services UnitedStack Services Base Services Ceilometer Swift Trove Manila Designate Sahara Magnum Ironic Defcore Heat Halo(控制面板) Kiki (操作通知) Ticket (工单) Gringotts(计费) Lotus(消息通知) Vmmanager(API中间件) Gondor(发票管理) Tars(运营平台) Keystonering(认证中间件) Shire(应用市场) RabbitMQ MySQL Apache NginxHaproxy Keepalived Bind Nap Puppet Nscd
  6. 6.   需安装13个Nova组件软件包   需安装163个依赖包   需升级9个系统基础库版本   选择nova-network还是neutron来构建虚拟网络?   使用Ceph还是本地存储?   计算存储一体还是分离?   选择template或者sql作为Keystone catalog driver?   是否在pipeline中添加计费中间件? (UnitedStack开源项目的私有Patch数量) 369 167 133 129 107 92 87 13 0 100 200 300 400 Puppet Keystone Ceph Neutron Ceilometer Nova Cinder Glance   每隔6个月,OpenStack社区各个项目发布新版本   过去12个月,UnitedStack每月平均上线2.6个新服务或新特性   2015年10月,有19家托管云项目在并行实施   不同集群间的软件栈版本不一致   不同集群间的配置不一致   研发部门需要多套独立开发和测试环境QA部门需要足够 仿真的测试环境DevOps部门需要预发布环境   nova.conf 835 options   api-paste.ini 40 options   logging.conf 43 options
  7. 7. UnitedStack
  8. 8.     DevOps  
  9. 9. 框架统一 工具统一 流程统一 接口统一
  10. 10. 我们使用与社区统一的框架 ! 所有Unitedstack项目的基础框架结构都遵守社区的规范,生成与Openstack社区完全统一的代码 框架,包含标准化的API模块、数据库模块和测试用例。
  11. 11. •  PSRForge 包管理系统 •  Puppet 配置管理系统 •  Ansible 任务编排系统 •  Jenkins 作业构建系统 •  Gerrit 代码审查系统 •  Zuul 守护系统 •  Git+GitLab 代码管理和版 本控制系统 •  Jira 问题追踪系统 •  Confluence 文档管理系统 优选的社 区工具 自研工具
  12. 12. •  软件包管理流程 •  线上业务变更流程 •  项目发布周期流程 •  部署逻辑代码提交流程 •  公共库变更流程 •  。。。 •  OpenStack/UnitedStack 项目提供了统一API接口 •  Foreman/Ansible/ Puppet/Zabbix/Alerta提 供了统一API接口 •  UOS CLI 命令行工具对资源 操作进行了封装和简化
  13. 13. 研发端 patch requirements schema requirements SPEC SOURCES puppet-xxx module patch 部署端 UnitedStack有云成熟的大版本升级流程
  14. 14. 合理的分离解耦-实现自动化持续交付第二步 环境 分离 角色 分离 仓库 分离 部署 数据 权限 分离 合理的分离可以对复杂逻辑和环境进行解耦,可以设立明晰的安全边界,可以更 好地细化工作。
  15. 15. 环境 分离 统一使用Directory Environment管理 •  开发环境、测试环境、预发布环境、生产环境、临时环境
  16. 16. 保证软件包的物理隔离,从根源上杜绝软件包版本出错的可能 仓库 分离 不同集群要求不同的软件版本 •  每个仓库根据环境划分为3个branch:devel、test、products •  每个集群使用独立的软件仓库 •  每个仓库有不同的ACL
  17. 17. 部署 数据 对配置管理工作进行划分,是为了解耦,并降低维护成本 •  部署逻辑管理: modules 软件和服务的配置管理代码集合; •  部署数据管理: hieradata 涵盖了所有集群软件和服务的定制化数据; •  节点角色管理: manifests 所有被管理的服务器的角色定义集合;
  18. 18. 角色 分离 角色分离是为了实现OpenStack灵活的部署架构 一个标准的UOS集群中目前一共有15种节点类型,有的是运行在虚拟服务器内, 有的直接运行在物理服务器上。但这些角色都是通过元角色的组合而成,并且可 以根据某些项目的定制化要求进行调整。 •  目前涵盖49种元角色,允许自由组合,所以在此基础上,我们可以为不同集群提供不同的角色映射; •  基类元角色提供公共的配置管理,被所有角色引用; •  Controller Node = Base + API + MySQL + MQ + MC •  Network Node = Base + L3 + VPN +DHCP + metadata
  19. 19. •  权限分离涉及各个方面,包括:部署、变更、代码入库 权限 分离 权限分离的目的是为了设立安全边界
  20. 20. UnitedStack
  21. 21. Puppet模块 Puppet代码 Ruby代码 其它代码/ 文档 YAML代码 86 226,58267,698 79,868 84,254 目前通过git submodule的方式管理了
  22. 22. 我们借助开源社区的⼒量! 作为国内拥有最多社区成员的公司,我们积极贡献社 区的同时有效利用海量的资源库。
  23. 23.   所有规模的Openstack集群部署工具中,Puppet 的占有率排名第一   Mirantis Fuel :使用Puppet Openstack modules   RedHat Packstack 使用Upstream Puppet Openstack modules   UnitedStack UOS-Installer 使用Puppet Openstack modules 我们使用puppet作为配置管理系统
  24. 24. 我们内部深度使用了puppet作为配置管理系统,并且持续地对社区进行贡献,我们在最新 的Liberty版本中对社区贡献排名第三: 我们对Puppet Openstack社区的贡献
  25. 25. 我们与社区同步的不仅仅是指代码 ! 还引入开源社区完整的开发、测试、自动化部署等方面的CI/CD工具链,保证了代码质量。
  26. 26. UnitedStack有云全自动化持续交付 系统架构 使用优选的社区工具和自研工具,按照社区标准流程实现了从代码提交、代码审查、测试和入库的全过程。
  27. 27. IaaS的测试环境需要投入大量的物理硬件资源,成本会非常高。 快速构建模拟UOS物理拓扑的测试环境 •  我们利用自己的公有云资源构建测试环境 •  自研的UOS 虚拟资源池组件chameleon,可以快速构建模拟UOS物理拓扑的测试环境 •  通过执行一个命令,我们可以在15分钟内创建一个标准的UOS测试环境:含有15种角色,38 台虚拟机,36块卷,4个IP网段
  28. 28. 结合各行业的特点生成测试用例库推送到自动化测试平台, 实现快速测试。 UnitedStack有云拥有面向行业的测试策略
  29. 29. UOS集群测试流程 •  8套相互独立的开发环境 •  2套相互独立的测试环境 •  N 与生产环境集群一一对应的预发布环境 在相互分离的环境中,实现自动化测试
  30. 30. 线上业务变更系统 •  采用系统管理 •  提前通知充分 •  操作内容、影响范围、回滚方案 •  审核批准 •  事后复盘 •  所有变更操作和记录都可以被追朔,并且每一次变更记录都有明确的变更操作说明,操作步 骤,相关参与人等等在操作规范 •  Openstack/Ustack服务的变更操作均使用Puppet+Ansible完成 •  变更操作自动化
  31. 31. 24x7x365全天监控和热线支持 •  从业务层、云、基础设施提供全方位实时监控 •  发生故障时,自动发出报警,通知工程师上线,并自动检测预案库 •  24x7x365 热线支持
  32. 32. 多厂家生态支持
  33. 33. 作为全开源的倡导者,我们不仅仅开源代码 我们的全自动化运维工具会开源给合作伙伴,共建运维生态圈
  34. 34. UnitedStack DevOps 和R&D APIs Portal APIs APIs 合作伙伴 实施团队 合作伙伴 实施团队 合作伙伴 实施团队
  35. 35. UnitedStack ⽣态化的全⾃动运维 ⾃交付体系 建设运维体系 全⾃动化 交付体系 实现全⾃动化运维 ⽣态圈建设 培养交付运维合作伙伴 ⽣态化 全⾃动运维 实现以有云为中⼼的 ⽣态化的全⾃动运维 2016.7.31 2016.10.31 2016.12.31
  36. 36. 总结 •  OpenStack部署与运维的复杂性是长期存在的挑战 •  用社区的方式做IT,与社区同步,能提供持续交付,保证用户的云平台永远是领先的 •  代码、开发、测试、自动化部署等方面的CI/CD工具链都与社区同步,保证了代码质量 •  创新代码也都会提交到社区中,并且每六个月进行更新,与社区保持同步 •  与全球OpenStack基金会保持一致,让用户在应用OpenStack无后顾之忧 •  自动化的运维提供全天候的运维支持 •  以有云为中心的生态化全自动运维
  37. 37. 39

×