devops实践部分知识点概要总结

devops

部分实施大纲和约定
【传统软件,云原生等可参考】

基础

开发、测试和运维

自动化软件功能的持续交付、持续集成

CI CD

构建

背景

  • 主要针对研发流程自动形成输出物
  • 这个过程使用git流程和签入策略等进行控制
  • 单元测试、API测试

工具

  • 使用现有的jennkis构建约定和项目
  • 依托开发工具类

输出物

  • 软件安装包
  • OS依赖独立包
  • OS 快速安装iso镜像

镜像

背景

  • 针对"构建"的输出物进行干净的镜像制作

工具

输出物

  • 虚拟机
    • 针对virtualbox的box文件
    • 概要: 场景:在单机上快速的原型验证和功能测试
      【使用起来更简单高效】
  • 虚拟化
    • 针对vsphere的vmx文件
    • 针对docker的镜像
    • 针对kvm的box文件
      https://hub.fastgit.org/goffinet/packer-kvm
    • 针对云的部署镜像【现官方已支持直接在阿里、腾讯、京东、UCloud上部署镜像构建云主机应用】
    • 概要: 场景:真实的部署
      性能测试

部署

背景

  • 对镜像或者对构建的输出物进行自动部署

工具

输出物

  • vagrant
    • virtualbox
    • kvm
    • 概要: 单物理机上使用
  • terraform
    • 私有云,如vsphere
    • 公有云
      • alicloud
      • Tencentcloud

测试

开发单元测试

开发集成、性能测试

  • 使用vagrant或terraform的部署环境
  • 额外的软件等依赖通过ansible进行应用部署
  • 关键点
    • 测试主机环境性能
    • 测试软件版本和配置
      • OS和系统软件和配置
      • 应用系统和配置
      • 不同场景的差异配置
    • 测试数据
      • 场景覆盖
      • 数据规模
    • 运行日志
      • Warmup Colddown的时间
      • 持续时间
      • 多次连续测试的间隔
    • 监测数据
      • 优先主机的资源使用情况
      • 应用的深入监控找瓶颈:比如GC回收、哪个线程最忙等
    • 版本控制
      • 每次的结果分析和受控
      • 多次的结果可比较,迭代提升

集成测试

  • 测试依赖环境
    • 数据库
    • 后台服务系统
    • WEB站点
  • 产品部署环境
  • UI测试
    • cypress

分发安装包

独立物理主机

  • iso PXE模式自动安装
  • clonezilla(再生龙)
  • iso刻成引导光盘或U盘安装

虚拟化

  • 文件ova/ovf 导出
    • workstation导出
    • ESXi Server导出
    • 概要: ovftool命令行工具
  • 云镜像部署

开发使用

  • vagrant box导出
    • virtualbox
    • kvm (libvirtd)

结果

从OS安装到各种软件和配置的部署,完全干净的安装

整个过程通过各种工具的配置文件和脚本可以受控管理

IaC的几个比较关键的步骤

参考

XMind: ZEN - Trial Version

明细脑图

原文地址:https://www.cnblogs.com/2018/p/14478660.html