https://cloud.tencent.com/developer/article/1005598

一、引言

云计算经过多年的发展,逐渐从概念到渐为人认知、到接受、到现在全行业拥抱上云,云的客户也从最初的中小初创互联网企业为主,逐步渗透到大型互联网企业、金融企业、传统企业,甚至到大型央企/政企。

因此,为了应对不同客户的市场需求,云的形态也开始多样化,根据客户对资源控制权的不同,基本分为以下几类:

图1 云的集中形态

在传统公有云中,计算资源主要是虚拟机的形态,以至于在云计算早期一段时间内,大部分人认为云计算技术 = 虚拟机技术,这种形态下的云,你只能接触到虚拟机,任何物理资源对你都是透明的;当这些物理资源产生冲突时,势必会影响到你的业务,所以当业务要求越来越高,他们对资源的控制权也慢慢提升,希望能独享物理机,就有了裸机云;进一步,他们还希望能自定义组网,方便其原有业务的迁移或重新规划,于是有了黑石云的解决方案(顺便提一下,其实“黑石”的核心是支持Overlay的虚拟网络,而非外界解读的物理机售卖);到最后连数据中心也要求独享,就有了私有云。这时,相当于裸奔了,原来隐藏在客户背后的供应链管理、运营支撑管理、异常发现和处理等机制、系统稳定性/易用性/安全性、运维背后的人海战术等,都表露无遗,要把数据中心真正“交”给客户,不是那么简单的。

二、公有云 VS 私有云

关于私有云和公有云的PK,业界一直有争论,大部分都认为公有云才是未来,私有云是历史的倒退,尤其是技术发展的倒退,觉得这东西就是以前传统系统集成商干的事情,不是互联网人变革的上流新事情。其实,这种说法是片面的,他们只看到了“私有”这部分,要“私有”并不难,但关键是在“云”这部分,即提供一套私有云管理系统,实现整个IDC的自动化闭环管理,由之前的手工管理变成系统管理,减低用户的使用门槛。从某种程度来讲,私有云其实是公有云发展到一定阶段成熟后,一种产品化的结果,也是能力输出的一种最极致的表现。

另一方面,受限于安全合规的要求和商业竞争的考虑,传统金融(尤其银行/证券)、央企/国企/政企和大型传统企业,一般不会把核心业务放在公有云上,宁愿花更大的成本代价,也要以私有化独享的形态来掌控自己的核心业务,因此,在很长一段时间内,私有云或混合云,都还是这些金主的主要考虑方案。

三、DCOS 1.0诞生

关键词:站在巨人的肩膀,服务器/网络融合

为什么会有DCOS?

去年,腾讯云迎来了一位新筹民营银行客户 : 上海华通银行。

如下图,按银监会的要求,金融机构基本都是两地三中心,IDC之间通过腾讯的DCI互联,访问公网则通过腾讯的TIX,他们的IDC和腾讯内部IDC是不能互通的,因此是独立隔离的私有环境。IDC在外部接入方面严格控制,通过ssl vpn实现点对点接入,从物理层面来做安全防护,vpn接入后,再通过云管理门户,实现对所有资源的管理。

图2 银行私有云整体网络示意图

在公有云环境中,用户只需要接触到虚拟的云资源,比如云主机、云硬盘、云数据库等,公有云会提供配套的自动化管理系统,对这些云资源进行管理,如生产、分配、回收等。但在私有云的环境里,所有基础架构设施均由用户自行管理,包括物理服务器资源的初始化安装、远程开关机、重启和部署重装等操作,如果还是通过以往人工和现场的方式来管理,效率会非常低,进而影响到云资源的管理。因此,在私有云的环境里,需要有一套类似云资源管理的自动化系统,实现物理服务器资源导入、自动发现、电源管理、系统部署、配置初始化和回收等生命周期的自动化管理,DCOS就是在这样的需求背景下应运而生的。

DCOS的产品定位

DCOS全称Data Center Operating System,顾名思义,定位是数据中心操作系统,这是一个很泛的叫法,业界完全对标的独立产品几乎没有。回顾 DCOS这1年多摸着石头的不断探索、思考,经过近30个迭代版本的试错验证,从设计到开发到应用落地,慢慢其定位也越来越清晰–私有云的物理基础架构管理引擎。如果参考行业私有云老大 – OpenStack的模型,DCOS正好补充了OpenStack对物理资源监管控能力,如下图红框部分:

图3 OpenStack逻辑架构图

下面分别从两个维度介绍一下DCOS的定位:

1)从资源管理的角度看:私有云里会有腾讯自采物理资源(腾讯标准服务器和网络设备)、客户托管设备和云产品(虚拟机、云储存、云负载均衡、云数据库等),DCOS定位是负责腾讯自采物理资源的监管控,同时提供中心化的CMDB,实现基础架构设施数据的资源管理。 2)从逻辑功能的角度看:如果把数据中心当作一个整体业务,最低配的银行私有云至少包括四大模块:接入层(TGW模块)、逻辑层(DCOS模块和Vstation虚拟化模块)、数据层(TDSQL模块),TGW负责外部或内部的负载均衡接入,DCOS和Vstation分别负责物理和虚拟资源的逻辑处理如生产、监控、再分配、回收等,TDSQL则是提供金融级数据库集群。

DCOS的设计思想

和支撑腾讯海量业务的需求场景不同,DCOS主要是面向传统企业,支撑大概1万台服务器(含虚拟机)规模的私有环境,产品设计上和现在内部系统会很大的差异,重点不是物理分布式架构和高并发能力,而是All-in-one高度集成、轻量简单、易部署、易运维、易扩展:

图4 DCOS设计理念

DCOS的产品解决方案

DCOS的产品解决方案如下图,按其功能主要分为四大子产品:

图5 DCOS产品解决方案

1)CMDB:涵盖了服务器、网络设备、网络端口、IDC机架机位、IDC专线、IDC出口、IP资源等物理信息的生命周期管理,基于腾讯多年IDC运营经验而建立其CI模型,并提供ADS智能审计模块,形成数据管理闭环,保证CMDB基础数据的完整性和准确性。最终,以API方式提供给web或其他云组件,并封装好常用的IP裂解/分配/回收和服务器搬迁等流程逻辑。

图6 CMDB的CI关系项

2)BME(Bare Metal Engine):物理裸机管理引擎,负责物理裸机的自动发现、带外管理、自动化部署、命令下发&文件传输等自动化管控运维,通过外部扩展,还可以实现私有云其他组件,如控制节点、计算节点、存储节点等初始化部署。

3)OneMonitor:服务器和网络融合的一站式监控引擎,涵盖服务器基础采集、服务器硬件部件采集、服务器进程&端口采集、自定义业务采集、网络设备SNMP采集、网络质量探测、网络应用数据流分析,并支持把原始监控数据转发第三方平台。

4)OneAlert:服务器和网络融合的一站式告警引擎,实现服务器硬件异常告警、服务器性能/状态告警、服务器进程&端口告警、网络设备性能和状态告警、网络设备日志告警、网络质量告警、自定义业务数值/字符告警,并支持把原始告警数据转发给第三方平台。

从业务场景讲,DCOS希望实现从物理资源准备、生产到运营的闭环管理(如下图):

图7 DCOS的业务场景

1)资源准备阶段:经过上游资源的申请、采购、建设交付后,得到物理配置信息和资源规划信息(IP资源等),并导入DCOS的CMDB,建立基础架构设施数据的baseline;

2)资源生产阶段:现场把服务器物理上架,并接上电源线后,即可进入远程管理阶段,服务器会通过带外BMC自动发送DHCP请求到DCOS;DCOS根据SN信息进行配置验收无误后,分配带外IP、标记为“已开电”状态,并纳入裸机资源池;然后通过带外IPMI即可远程初始化、开机、关机和重启;当DCOS接收到上层部署需求(RAID/OS/IP/初始密码等)后,会远程触发服务器进入PXE状态,在PXE环境通过DHCP获取部署IP,通过TFTP拉取对应的镜像和配置文件,完成部署,并通过后置初始化脚本,实现网络的配置,以及应用组件的批量部署,实现私有云的初始化,全程可以做到服务器Zero Touch;

3)资源运营阶段:服务器和网络设备的监控采集和异常故障告警,以及服务器和网络设备的日常运营管控。

图8 DCOS管理控制台

DCOS的技术解决方案:

1)逻辑架构

图9 DCOS的逻辑架构图

DCOS采用模块化设计,每个模块(红框)负责部分功能,如oob负责带外&部署,sc负责服务器信息采集管理,cmdb负责配置管理等。模块可单独部署,成为独立的产品组件。模块之间基本没有依赖性(CMDB除外),维护和故障排查起来比较方便,同时易于进行模块扩展。

模块内部采用分层式设计,api负责模块接入,master(storage)可进行任务调度、数据存储等控制逻辑,nodesvr(jobsvr/collect)完成任务执行、数据转发等,agent在业务机器上负责信息采集、文件传输等。模块化+分层式设计,使得DCOS结构清晰,容灾方案也相对简单。

2)软件交付方式

为了实现离线部署,以软件包或镜像形式交付,部署在物理服务器上。

3)软件部署方式

DCOS采用模块化+分层式设计,支持集中式部署和分布式部署。集中式部署:除agent(部署在业务服务器)外,其它程序部署在一台控制服务器;分布式部署:分为中央控制服务器(如api、master、storager)、区域控制服务器(如collect、nodesvr、jobsvr)和agent(部署在业务服务器),可实现多机房或区域的统一管理。

所以说,DCOS 1.0是站在巨人的肩膀上,把网平多年来海量运营经验和工具系统进行了系统化的沉淀、浓缩,并结合私有云的和传统企业需求场景的一次全新的能力输出,服务器和网络All-in-one融合管理的一次新尝试。

图10 DCOS系统演进

四、DCOS 2.0 成长&展望

关键词:拥抱外部环境,走出自己的路 随着DCOS逐步成熟,以及外部客户需求的“洗礼”,DCOS从2.0开始,逐步拥抱外部环境,抛开腾讯海量标准化机制的一些束缚,增加客户环境适配和自定义的能力,走出自己特色的路。

图11 DCOS 2.0的自定义能力

1)集成第三方组件监控

涵盖主流中间件/数据库/虚拟机/容器和开源组件的常用指标,开箱即用。

图12 集成的第三方组件

2)自定义SNMP监控

能适配不同厂家/型号/指标的SNMP信息采集,实现了一套SNMP采集通用框架,用户只需要定义好网络设备采集模板,系统即能自动识别通用OID和设备的私有OID,实现SNMP的统一采集调度和数据处理加工,解决不同私有云客户的网络设备兼容问题。

3)自定义业务监控和告警

监控和告警与CMDB CI项解耦,支持用户自定义对象(如TGW集群、NAS集群、交易数据)、多维指标数据(如地域、门店、支付方式、交易金额等)的接入,和之前CI项+特性ID的一维度管理机制相比,更通用、门槛更低、更贴近外部客户的场景,尤其在业务监控方面。

4)服务器自定义部署能力

将原来标准化的服务器部署中的关键参数进行提炼、建模,实现BIOS、分区、RAID、OS镜像、网络等部署方案的自定义,以满足不同客户的服务器环境需求。

DCOS 2.0,在路上,路还很长…

DCOS :私有云的物理基础架构管理引擎的更多相关文章

  1. 【 DCOS 】织云 CMDB 管理引擎技术详解

    欢迎大家前往腾讯云技术社区,获取更多腾讯海量技术实践干货哦~ 作者 : 李琦 , 腾讯高级工程师 , 就职于网络平台部.曾负责公司海量运营系统的规划设计,如 TMP.Sniper.GSLB.IDCSp ...

  2. OpenFlow能解决私有云网络VLAN问题么

    本文转载自:http://network.51cto.com/art/201202/314310.htm 在关于私有云网络的文章中,我们首先探讨了物理网络是否影响私有云.本文我们将讨论如何通过软件定义 ...

  3. 云计算服务模型,第 1 部分: 基础架构即服务(IaaS)

    英文原文:Cloud computing service models, Part 1: Infrastructure as a Service 本文介绍三个云类别中的第一个:基础架构即服务(infr ...

  4. CloudStack云基础架构的一些概念

    1. Zones(区域) 一个区域在CloudStack配置中是最大的组织单元.一个区域通常代表一个单独的数据中心,虽然在一个数据中心也允许有多个区域.将基础架构设施加入到区域中的好处是提供物理隔离和 ...

  5. OpenStack 企业私有云的若干需求(9): 云管理平台 CMP

    本系列会介绍OpenStack 企业私有云的几个需求: 自动扩展(Auto-scaling)支持 多租户和租户隔离 (multi-tenancy and tenancy isolation) 混合云( ...

  6. Windows Server基础架构云参考架构:硬件之上的设计

    作者 王枫 发布于2014年1月27日 综述 毫无疑问,移动互联网.社交网络.大数据和云计算已经成为IT发展的四个大的趋势.其中云计算又为前三个提供了一个理想的平台.今天不仅互联网公司,很多传统行业的 ...

  7. 微软云基础架构Hyper-scale Datacenter

    每天醒来,可能很多人的习惯都是打开手机,看看微信,刷刷朋友圈,或者看看新闻,去咖啡店,打开电脑搜索一些关键字,观看视频,电视剧--可是你有没有想过你每一次键盘的敲击,每一次微信的语音的发送,数据会流向 ...

  8. 转://Oracle 高可用技术与云基础架构

    众所周知Oracle云基础架构已经在越来越多的行业里应用.大家了解云基础架构是如何演进的嘛?可能有人会说Oracle高可用技术是组成云架构的基础,那它们的关系是怎么样的?大家又了解Oracle高可用技 ...

  9. [翻译]用 Puppet 搭建易管理的服务器基础架构(4)

    我通过伯乐在线翻译了一个Puppet简明教程,一共分为四部分,这是第四部分. 原文地址:http://blog.jobbole.com/89214/ 本文由 伯乐在线 - Wing 翻译,黄利民 校稿 ...

随机推荐

  1. MySQL与OLAP:分析型SQL查询最佳实践探索

    搞点多维分析,糙快猛的解决方式就是使用ROLAP(关系型OLAP)了.数据经维度建模后存储在MySQL,ROLAP引擎(比方开源的Mondrian)负责将OLAP请求转化为SQL语句提交给数据库.OL ...

  2. 你想知道的关于JavaScript作用域的一切(译)

    原文链接: Everything you wanted to know about JavaScript scope 原文作者: Todd Motto JavaScript中有许多章节是关于scope ...

  3. easymock快速入门

    easymock是众多mock之中的很容易用的mock,今天刚开始学习,来个简单的教程.以购物车结算为例子,比如首先是每一个商品项的pojo. public class Item { private ...

  4. Using Repository Pattern in Entity Framework

    One of the most common pattern is followed in the world of Entity Framework is “Repository Pattern”. ...

  5. Eclipse中创建Maven多模块工程

    1.先创建父项目 在Eclipse里面New -> Maven Project: 在弹出界面中选择“Create a simple project” 这样,我们就按常规模版创建了一个Maven工 ...

  6. 用copy 还是 strong?

    NSArray与NSMutableArray用copy修饰还是strong 这个是原文  http://blog.csdn.net/winzlee/article/details/51752354 一 ...

  7. 【struts2】struts2的execAndWait拦截器使用

    使用execAndWait拦截器可以在等待较长时间的后台处理中增加等待页面.实现如下图所示的效果: 1)struts.xml主要部分 <action name="test" ...

  8. Python学习笔记001——Linux

    Linux文件系统采用树形目录结构,系统中一切皆文件.文件名字母区分大小写 Linux命令使用格式(终端窗口) 命令名 [选项] [参数] 命令名:在命令行输入命令. 备注:命令名字母区分大小写, 1 ...

  9. centos6.4安装GitLab

    参考文章: http://www.pickysysadmin.ca/2013/03/25/how-to-install-gitlab-5-0-on-centos-6/ yum安装redis的方法: h ...

  10. apktool 在mac下的使用 -反编译安卓apk文件

    1.下载apktool 点击这里下载 ,里面有两个文件,一个是.jar,一个是自己写的脚本.sh 注:最新的apktool.jar 文件可以点击这里下载 .sh脚本是自写脚本可不用更新最新,下载的ja ...