项目导航


DevOps

logo

简单来说,DevOps 是 Development 和 Operations 的组合词,是一种重视软件开发人员 (Dev) 和IT运维技术人员 (Ops) 之间沟通合作的文化或惯例。透过自动化”软件交付”和”架构变更”的流程,来使得构建、测试、发布软件能够更加地快捷、频繁和可靠。

DevOps 的三大原则:

  • 基础设施即代码 (Infrastructure as Code)
    将重复的事情使用自动化脚本或软件来实现,例如 Docker(容器化)、Jenkins(持续集成)、Puppet(基础架构构建)等。

  • 持续交付 (Continuous Delivery)
    在生产环境发布可靠的软件并交付给用户使用,而持续部署则不一定交付给用户使用。其中涉及到两个时间,需要尽可能减小这两个时间:Time to Repair, TTR 修复时间,Time To Marketing, TTM 产品上线时间。

  • 协同工作 (Culture of Collaboration)
    开发者和运维人员必须定期进行密切的合作,通常是通过几种建议方式:A) 自动化,以减少不必要的协作;B) 小范围,每次修改的内容不宜过多,减少发布的风险;C) 统一信息集散地,使用Wiki可以共享信息。

包含的内容有:

实现

这里介绍整体的规范、通用服务的搭建。

  • 通用规范 设置一些通用的规范,包括错误码、命名规则等。
  • 基础服务 一些通用服务的搭建,例如 FTP、HTTP、DB 等。

Agents

部署在主机侧,使用 C 语言实现,按照功能划分为如下几类,基本、监控、日志、安全、网络等,详细见如下的介绍,其中所有的 Agent 统一由 BootAgent 进行管理。

如下是实现的细节。

  • BootAgent 装机时安装,负责安装、升级、监控、重启其它 Agent 。
  • BasicAgent 基本命令执行(同步、异步、查询)、安装部署、服务健康检查等。
  • MonitorAgent 采集监控数据,包括系统类、中间组件、业务指标等。
  • SecureAgent 安全相关,例如入侵检测。
其它

上述 Agent 的实现有很多公共库支撑,如下是其简单的介绍。

  • Agent 通用库 记录一些通用库的实现、API 接口,以及一个示例 MiniAgent。

Servers

根据不同的功能进行划分,其中前端的 DashBoard 主要包括了容量、性能、风险信息,可以是每天聚合后的信息。

  • ResTest 一个 Restful API 的测试工具。
  • BootServer BootAgent 的服务端,用于 Agent 的安装部署、升级、状态统计等。
  • Cargo 基础的通用服务,包括了单点登陆系统、用户信息、Portal等。

FAQ