DevOps

内容纲要

前置知识

云计算

概念

DevOps = Development(开发人员) + Operations(运维人员)

DevOps 是一种重视“开发人员”和“运维人员”之间沟通合作的文化、运动或者惯例。通过自动化“软件交付”和“架构变更”的流程,使构建、测试、发布软件能更快、更频繁和更可靠。

核心概念

  1. Automated infrastructure(自动化,系统之间的集成)
  2. shared version control(SVN共享源码)
  3. one step build and deploy(持续构建和部署)
  4. feature flags(主干开发)
  5. Shared metrics
  6. IRC and IM robots(信息整合)

各部门关系图
图片标题

对应用程序发布的影响

  • 减少变更范围

  • 消除等待、快速反馈

  • 使问题定位、调试变得简单

  • 加强发布谐调,提升交付质量

  • 自动化,稳定、快速、交付结果可预测

  • 资源利用最大化

  • CI/CD 一线贯穿以上技术要点

  • 主干开发是 CI 的前提

  • 自动化以及代码周边集中管理是实施 CI 的必要条件

注意 ↓
CI/CD 是 DevOps 的技术核心,在没有自动化测试、CI/CD 之下,DevOps 就是空中楼阁

工作流

图片标题

DevOps 实践关键阶段

DevOps

  1. 持续集成
    • 作用:确保开发分支代码每次 Merge Request 通过,可以随时合并到 Dev 分支
    • 阶段
      • build:开发分支代码编译、单元测试
      • package:打包(Docker 镜像)
      • deploy:部署到测试环境
      • test:集成测试
  2. 持续交付
    • 作用:确保代码合并到 Dev 分支后,Dev 分支代码能够在生成环境中测试通过,并进行灰度测试
    • 阶段
      • build: Dev 分支代码编译、单元测试
      • package:打包(Docker 镜像)
      • deploy:部署到测试环境
      • test:基础测试
      • canary:灰度测试
  3. 持续部署
    • 作用:合并 Dev 分支代码到 Master 分支,打包并发布到线上
    • 阶段
      • build:Master 分支代码编译、单元测试
      • package:打包(Docker 镜像)
      • clear:Master 代码 Merge 回 Dev 分支
      • production:发布到线上

工具箱

  • 代码管理(SCM)
    • GitHub、GitLab、BitBucket、SubVersion
  • 构建工具
    • Ant、Gradle、maven
  • 自动部署
    • Capistrano、CodeDeploy、Ansible、Jenkins
  • 持续集成(CI)
    • Bamboo、Hudson、Jenkins
  • 配置管理
    • Ansible、Chef、Puppet、SaltStack、ScriptRock GuardRail、Consul、Apollo
  • 容器
    • Docker、LXC、第三方厂商如AWS
  • 编排
    • Kubernetes、Core、Apache Mesos、DC/OS
  • 服务注册与发现
    • Zookeeper、etcd、Consul
  • 脚本语言
    • python、ruby、shell
  • 日志管理
    • ELK、Logentries
  • 系统监控
    • Datadog、Graphite、Icinga、Nagios
  • 性能监控
    • AppDynamics、New Relic、Splunk
  • 压力测试
    • JMeter、Blaze Meter、loader.io
  • 预警
    • PagerDuty、pingdom、厂商自带如AWS SNS
  • HTTP加速器
    • Varnish
  • 消息总线
    • ActiveMQ、SQS
  • 应用服务器
    • Tomcat、JBoss
  • Web服务器
    • Apache、Nginx、IIS
  • 数据库
    • MySQL、Oracle、PostgreSQL等关系型数据库;cassandra、mongoDB、redis等NoSQL数据库
  • 项目管理(PM)
    • Jira、Asana、Taiga、Trello、Basecamp、Pivotal Tracker

参考链接
给 DevOps 初学者的入门指南

Tags:

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注