学习笔记 – OCP大会 | DCOS – 面向数据中心的运营操作系统(附PPT)

导读:1月15日,首届OCP中国技术研讨会在深圳召开,本次会议是由腾讯云和OCP国际社区合办。在大会现场,腾讯专家工程师杨晓颖在OCP技术研讨会上发表名为《腾讯云DCOS技术分享》的演讲,以下为演讲全文。杨晓颖,中山大学硕士研究生,腾讯服务器管控架构师。主要负责腾讯服务器自动化运营平台、私有云基础设施监管控方案。

本次分享大纲

1.   DCOS概念&优势

2.   DCOS解决方案简介

3.   DCOS各模块揭秘

4.   DCOS项目应用&开放计划

大家好,很高兴有机会跟大家一起探讨和学习,今天我分享的主题是DCOS项目。

DCOS概念&优势

1.DCOS概念

DCOS,全称Data Center Operating System,它致力于打造私有云基础物理设施的管理引擎,提供的服务包括服务器和网络设备监管控、配置管理和告警管理。

2.DCOS优势

DCOS功能相对全面,它实际上得益于腾讯多年基础设施的运营经验。腾讯有着百万量级服务器,数以万计的网络设备,庞大而复杂的业务生态圈,积累了大量宝贵的运营经验,另外我们也考虑到私有云环境的不确定性,如用户使用的设备类型、用户实际业务需求等,这些都是不可预估的,所以DCOS在融合腾讯优秀运营经验的同时,也着重提升了自定义能力。

在架构上,DCOS采用模块化和分层式设计,按功能划分模块,用户可根据自身需要选择安装。分层式设计支持集中式和分布式部署:集中式部署简单,一台机器可实现全网控制;分布式相对灵活,可适配复杂的网络环境。另外,DCOS提供了大量的开放API,可供用户进行二次开发,打造自己的运营系统。

DCOS解决方案

1.DCOS在私有云的角色

DCOS在私有云管理中扮演什么样的角色呢?它主要提供四大类别服务:CMDB(配置管理)、BME(物理裸机管理)、OneMonitor(监控)、OneAlert(告警)。它一定程度上填补了云解决方案如OpenStack在服务器和网络设备监管控这一块的空白。云其它OSS系统和用户自有系统,通过DCOS API与其交互,共同构建整个管控平台。

2、DCOS功能列表

接下来我们看一下DCOS在这四大类别服务中提供了哪些具体的功能。

最左边是配置管理系统CMDB,它负责管理基础设施的物理信息,这是我们进行一些基础设施生命管理的第一步,用户把数据导入CMDB,成为其它模块数据来源。

我们在业务上线之前,需要对服务器进行系统安装,所以我们开发了第二个模块,即带外部署模块,提供了服务器带外操作(如开关机等电源操作),OS安装(包括PXE安装和快速重装),以及带外密码库管理。

使用这个模块把服务器部署好之后,在运营过程中我们可能需要对OS进行变更或者业务系统发布,所以我们推出了第三个模块,即服务器管控模块,它支持对服务器进行远程控制,如文件传输、脚本的执行等。

另外,在运营过程中我们可能还会关注服务器的运作情况,有没有故障等,所以我们又有了服务器的监控模块。这个模块会采集OS基础数据,包括OS状态、性能等,还会监控业务应用的进程和端口。同时,我们还加入了对硬件的监控,这可以帮助用户更全面地了解机器运作。

除了关注服务器故障,我们还会关注网络设备的状态,第五个模块就是关于网络设备的采集监控。网络设备监控包括SNMP流量采集、日志收集、会话流量、网络质量探测等。

最后一个是告警模块,负责告警策略的配置,以及告警管理,如告警判断、去重、屏蔽等。

DCOS各模块揭秘

接下来我们逐个了解一下各个模块到底是什么样子的。

1.CMDB(配置管理)

刚刚提到CMDB存储的是所有基础设施的物理信息。它源自于腾讯多年IDC运营经验,抽象了多个管理对象,包括IDC专线/出口、网络设备、服务器、IDC机架机位以及IP资源等。我们能够管理这些物理对象的基本信息,以及它们的关联关系。同时我们还提供了诸如服务器硬盘等部件数据,以及网络设备的端口信息,通过这些数据,我们可以绘制物理拓扑结构。这是整个设施生命周期管理的第一步。

2.服务器管理

第二个是服务器的管理,它也是借鉴了腾讯内部成百上千种机型的部署经验以及海量服务器的管控经验。我们实现了对服务器资源的自动发现,带外管理、OS部署还有远程控制。

机器在上电之后,我们通过DHCP服务给它分配带外IP,借此实现了资源的自动发现,进而掌管它的带外,之后我们可以通过PXE方式对机器进行OS安装。除此之外,我们的部署模块还支持快速重装。当然了,因为我们不可能预估到用户的业务是什么样的形态,所以我们开放了很多自定义的能力,比如自定义OS安装,自定义RAID组合,还有自定义分区,部署后定制化操作等。最右边的是远程控制模块,它主要是提供稳定高效的文件传输和脚本执行通道,用户可以基于这个模块去开发自己的作业平台。

3.服务器监控

接下来我们看看怎么去监控服务器,我们的监控模块到底有哪些功能。它包含了软件和硬件的采集和监控,以及第三方组件的监控,当然还提供了通道给用户上报自己采集的监控数据。

在OS基础监控这块,我们采集了CPU利用率、内存使用量、磁盘IO、网卡的状态等。在硬件这块,我们采集了诸如电源、风扇、硬盘、RAID卡等的配置信息,同时会生成告警,比如内存缺失、风扇缺失、电源异常、硬盘故障等。除此之外,对于业务应用,我们提供了进程端口监控,还支持用户导入DataDog开源脚本进行第三方组件的监控。最后,由于用户可能要监控自身系统的状态,需要在本机收集数据,希望有方法能帮忙把这些数据存储起来,所以我们也提供了自定义上报通道,用户把自行收集的业务数据上报,由DCOS存储和转发。

4.网络监控

接下来我们看一下网络监控。事实上对于网络监控,我们拆分了四个子模块,第一个是SNMP模块,它主要负责采集网络设备端口信息,包括端口配置、端口的出入流量等,以及设备整体的运作状态,能够发现设备中断、失联等异常。因为我们不可能覆盖市面上所有的网络设备类型,所以设计了一套自定义采集机制:用户根据既定的语法以及默认模板,编写满足其要求的采集模板,然后把设备跟模板绑定,导入我们系统,我们就能对设备进行自动的采集和监控。

第二个是网络设备的日志收集,我们能够收集设备的日志,做数据解析和合法性校验,然后进行关键字匹配,判断是否产生告警。我们支持用户自定义匹配规则,也就是说,用户希望看到哪些告警,关注哪些级别,都可以自己编写规则,导入系统。

第三个是网络质量探测,我们可以发现网络是否ping通,还有丢包延时情况。用户可根据需要部署DCOS探测客户端,在后台定义好探测任务,系统就会自动帮他探测他所关注的网络情况。

最后是会话流量监控,我们支持了netflow/sflow/netstream协议的数据收集和解析,从会话数据中提取源IP、目标IP、源端口、目标端口、出入方向、协议等信息,根据规则做汇总处理并存储。用户可以根据这些信息来分析业务的流量使用情况,进而进行业务调整和成本优化。

5.告警管理

前面提到了服务器和网络设备的监控,在设备出现异常时,我们能够发现异常,并告警出去。但这些告警用户可能不太关心,或者需要特殊处理,比如用户觉得某告警要发生了多次之后才知会他,或者重复告警需要过滤等。因此我们推出了DCOS告警模块。我们的告警模块提供了告警策略的配置管理以及告警的判断、去重、屏蔽、通知等。

它的数据来源于服务器和网络设备采集模块,当然也支持了用户自行上报告警。我们可以调用API进行告警策略配置和告警查询。告警策略能够决定告警将被怎么处理,比如要发生多少次之后才需要通知,或者告警是否被屏蔽,又或者是否满足什么条件才转发给消息中心等。根据告警策略和收到的数据,我们就能够进入告警判断、告警去重、告警屏蔽,再到告警通知。最后我们也会判断告警是否已恢复,恢复之后通知用户。这就是整套告警管理机制,实现了刚刚提到的用户对告警的定制化要求。

DCOS项目应用&开放计划

目前为止,我们介绍了DCOS大部分的功能和模块,当然我们会不断完善已有的功能模块,还会引进更多的监管控服务,比如像故障预测等,丰富我们的平台能力。

接下来我们看看DCOS目前的落地场景以及开放计划。

1.项目应用

DCOS已经伴随腾讯金融云和专有云落地超过了15家中大型企业,这些企业服务器数量从几百到上万不等,企业类型也是多种多样,诸如银行、超市、交易所等,客户包括建行总行、港交所、永辉超市、微众银行等。

2.专利&开源

专利方面,DCOS目前已有多篇国内外的专利;而开源方面,我们的配置管理模块(CMDB),已经在腾讯内部开源了,其它模块也在陆续进行。当然,我们也在积极推动外部开源。

3.开放计划

最后,我们计划把DCOS的软件使用贡献给OCP开源项目。初期,我们会开放CMDB模块,服务器相关的模块(包括带外部署和远程控制),还有告警模块。其它的模块会根据其成熟程度陆续开放。我们希望通过这些措施,为OCP的生态圈和整个云解决方案,贡献我们的一份力量!

以上是我今天的分享内容,谢谢大家!

正文完