歡迎大家前往騰訊雲技術社區,獲取更多騰訊海量技術實踐干貨哦~
作者 : 李琦 , 騰訊高級工程師 , 就職於網絡平台部。曾負責公司海量運營系統的規划設計,如 TMP、Sniper、GSLB、IDCSpeed、IDCProbe 等網絡運營平台,以及參與騰訊雲雲主機、雲網絡、雲安全等基礎產品規划和大客戶的需求管理。目前主要聚焦在私有雲基礎架構的統一監管控,把騰訊基礎架構的自動化管理能力以產品化方式輸出。
引言
雲計算經過多年的發展,逐漸從概念到漸為人認知、到接受、到現在全行業擁抱上雲,雲的客戶也從最初的中小初創互聯網企業為主,逐步滲透到大型互聯網企業、金融企業、傳統企業,甚至到大型央企/政企。
因此,為了應對不同客戶的市場需求,雲的形態也開始多樣化,根據客戶對資源控制權的不同,基本分為以下幾類:

圖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,在路上,路還很長…
歡迎關注騰訊織雲公眾號,獲取織雲最新技術資訊
相關閱讀
此文已由作者授權騰訊雲技術社區發布,轉載請注明文章出處
原文鏈接:https://cloud.tencent.com/community/article/304971
