· 需求
· 網程云服務器平臺的功能
· 云服務器平臺的技術棧
· 炎凰數據平臺收集華為云的數據
問題來了。。。
炎凰數據平臺端
網程云服務器平臺server端
· 華為云使用狀況的dashboard展示
· 寫在最后
· 參考
需求
隨著業(yè)務的增加,我們對華為云創(chuàng)建云服務器的需求越來越多,之前是由專門的管理員統(tǒng)一來管理,可是一直為開發(fā)人員重復著創(chuàng)建、擴容、銷毀、部署環(huán)境等工作,管理員不勝其煩。這時,我們有了想讓開發(fā)人員能夠自己創(chuàng)建云服務器的需求。后來我們發(fā)現(xiàn)華為云的API在功能上非常完整,而且華為云的API Explorer是個非常方便的調試工具,通過華為云提供的API,我們快速的開發(fā)了自己的云服務器管理平臺,開發(fā)人員可以自己完成創(chuàng)建、銷毀、擴容等操作,我們也根據賦予的權限,給開發(fā)人員不同的容量(云服務器個數容量、磁盤容量、使用時間的容量等)。
有了網程云服務器平臺,我們管理員的工作簡化了許多。而且開發(fā)人員,也節(jié)省了許多申請和審批云服務器的時間。但是,使用了一段時間后,發(fā)現(xiàn)我們缺少了一套統(tǒng)計和分析實際使用量的系統(tǒng),后來我們了解到炎凰數據平臺的分析能力之后,我們又開始整理日志數據,然后發(fā)送給炎凰數據平臺。通過炎凰數據平臺對數據的分析,我們清楚地了解實際用量和產生的費用。
網程云服務器平臺的功能
以上就是我們的云服務器平臺,通過華為云開放的API,我們可以實現(xiàn):
· 創(chuàng)建/刪除臨時云服務器
· 臨時云服務器的開機、關機、重啟
· 延長臨時云服務器的租期
· 增加磁盤
· 遠程登錄
云服務器平臺的技術棧
我們是使用的華為云的Python SDK,這里不得不再次稱贊下華為云的API Explorer,是個能夠提供快速開發(fā)的工具,這里能夠根據你鍵入的值自動生成代碼。
之后也可以使用華為云提供的SDK代碼示例調試中調試代碼,而且是我們都熟悉的VS Code的風格。截個圖,自己體會,常使用VS Code開發(fā)的朋友是不是看著很熟悉。
因為我們選擇使用Python作為開發(fā)語言的緣故,就使用了 Flask + Gunicorn + Supervisor 來托管Web服務。
Flask 因為本身就是Python編寫,所以對Python的契合度就很高,而且是一個輕量級的Web應用框架。
Gunicorn是作為Flask的WSGI HTTP服務器。它所在的位置通常是在反向代理(如 Nginx)或者負載均衡(如 AWS ELB)和一個web應用(比如 Django 或者 Flask)之間。
這里只要把Flask 的5000端口托管起來即可,配置如下:
Supervisor的服務進程為supervisord,主要負責在啟動自身時啟動管理的子進程,響應客戶端的命令,重啟崩潰或退出的子進程,記錄子進程stdout和stderr輸出,生成和處理子進程生命周期中的事件??梢栽谝粋€配置文件中配置相關參數,包括Supervisord自身的狀態(tài)。在
/etc/supervisord.d/xxxxx.ini 創(chuàng)建子進程,其管理的各個子進程的相關屬性。配置文件一般位于/etc/supervisord.conf。
例如:子進程配置
/etc/supervisord.d/wangcheng-web.ini
Supervisor的客戶端稱為supervisorctl,它提供了一個類shell的接口(即命令行)來使用supervisord服務端提供的功能。通過supervisorctl,用戶可以連接到supervisord服務器進程,獲得服務器進程控制的子進程的狀態(tài),啟動和停止子進程,獲得正在運行的進程列表??蛻舳送ㄟ^Unix域套接字或者TCP套接字與服務端進行通信,服務器端具有身份憑證認證機制,可以有效提升安全性。當客戶端和服務器位于同一臺機器上時,客戶端與服務器共用同一個配置文件/etc/supervisord.conf,通過不同標簽來區(qū)分兩者的配置。
炎凰數據平臺收集華為云的數據
問題來了。。。
網程云服務器平臺的我們寫好了,解決了開發(fā)者使用云服務器的問題,但是作為系統(tǒng)管理者,我也碰到了問題,我如何來管理?我如何知道我每月消費了多少費用?詳細的使用情況?
設想下隨著產品功能的增加,云服務器的使用量必然會增長,費用上也會增長。老板問能不能每月或者一個季度對云服務器做個預算?這時候沒有數據的支撐,我們很難拿出準確的數字。
這時炎凰數據平臺的價值就凸顯出來了,炎凰數據平臺能夠幫助我們通過日志文件,非常簡單而又清晰地,統(tǒng)計出云服務器的開機時間、云服務器的數量、進而可以估算出費用。
云服務器平臺的日志,是調用華為云的API,生成的JSON格式的日志文件。然后通過fluentd發(fā)送到炎凰數據平臺。(也可以使用Vector作為數據傳輸工具)。本例中,log的數據類型為JSON,其實,大家可以根據自己的實際情況選擇不同的數據類型。炎凰數據平臺不挑數據類型,有什么數據,就接什么類型的數據,就Parse什么類型的數據。
炎凰數據平臺端
在炎凰數據平臺中,創(chuàng)建好數據集之后,創(chuàng)建HEI,接收數據。(通過HTTP采集數據)
頒發(fā)云服務器平臺的API Token
網程云服務器平臺server端
安裝Fluentd
curl -L https://toolbelt.treasuredata.com/sh/install-redhat-td-agent4.sh | sh
systemctl enable td-agent
systemctl start td-agent
配置fluentd的監(jiān)控數據
vi /etc/td-agent/td-agent.conf
修改以下配置
<source>
tag wangcheng_log #tag name, will fill into below stanza name
@type tail
path /opt/wangcheng_log* #log files
read_from_head true
<parse>
@type none
</parse>
</source>
<filter wangcheng_log.**> #tag name
@type record_modifier
remove_keys message
<record>
_message ${record["message"]}
_datatype json #data type
_event_set wangcheng #add event set on honghu
_time 0
</record>
</filter>
<match wangcheng_log.**> #tag name
@type copy
<store>
@type stdout
</store>
<store>
@type forward
<server>
name yhp
host yhp.yanhuangdata.com # 炎凰數據平臺的云服務器
port 9882 #HEI數據傳輸的端口
</server>
</store>
</match>
可能需要配置fluentd service的root權限,視監(jiān)控的文件權限而定。
sed -i 's/User=td-agent/User=root/g' /etc/systemd/system/multi-user.target.wants/td-agent.service
sed -i 's/Group=td-agent/Group=root/g' /etc/systemd/system/multi-user.target.wants/td-agent.service
systemctl daemon-reload
systemctl restart td-agent
vi /etc/systemd/system/multi-user.target.wants/td-agent.service
[Service]
User=root
Group=root
然后通過網頁訪問炎凰數據平臺,只要執(zhí)行簡單SQL就可以對數據進行查詢
我們可以看到數據都已經發(fā)送過來了, Cheers
華為云使用狀況的dashboard展示
通過簡單的SQL query,我們就可以實時的統(tǒng)計出,云服務器的使用情況。
我這里也節(jié)選了一些配置的使用情況
數據展示我看到了什么?
1. 華為云使用情況,作為華為云的管理者,我能清楚了解一段時間中,華為云按需創(chuàng)建的云服務器有多少,比如用了多少臺云主機,都用了多少時間。
2. 使用者,從統(tǒng)計上可以找到誰是重度使用者,從使用者中了解需求,從而改進。
3. 費用統(tǒng)計,如上圖我們可以清楚的知道我們每個月華為云的費用組成。不過,通過創(chuàng)建臨時服務器這個策略,我們減少了不少的研發(fā)成本。
寫在最后
華為云的API、開發(fā)工具、調試工具和文檔都非常完整,而且API的功能也非常齊全。對于開發(fā)者,能夠快速完成開發(fā)工作。不過對于管理和運維工作也存在著挑戰(zhàn),在使用炎凰數據平臺之后,這一切就變的簡單了很多,只要有足夠的日志,加上簡單的SQL語句,管理者頭疼的問題就迎刃而解。另外通過實時數據的分析,能夠實時的了解當前云服務器的使用情況。
現(xiàn)在正在做的事,我們打算把炎凰數據平臺、華為云API和我們的CI/CD串聯(lián)在了一起。當開發(fā)者完成當前代碼,并提交代碼后。網程云服務器平臺,自動創(chuàng)建一臺臨時云服務器,臨時云服務器安裝并注冊gitlab runner,自動拉取代碼,部署環(huán)境并執(zhí)行測試腳本。然后將測試結果發(fā)送到炎凰數據平臺,炎凰數據平臺會判斷是否測試結果達成了期望,并通過郵件和Teams (Web Hook 的方式) 發(fā)送結果給開發(fā)人員。如果測試成功,網程云平臺會自動銷毀云服務器。如果測試失敗,云服務器會暫時保留,留給開發(fā)人員調試代碼,直到成功后銷毀,形成了開發(fā)和測試的閉環(huán)。開發(fā)人員也不需要等待測試結果,成功與否都會發(fā)送郵件和消息通知,提高了開發(fā)人員的效率,此時開發(fā)人員可以創(chuàng)建新的分支,去為其他新功能做準備了。
對于我們公司的日常開發(fā)工作上,華為云和炎凰數據平臺是兩個大殺器,殺掉了過去反復創(chuàng)建、部署環(huán)境、銷毀的時間,和管理員統(tǒng)計費用和查看使用情況的時間,在我們簡化工作流程上起到了關鍵性的作用。
參考
華為云API
https://apiexplorer.developer.huaweicloud.com/apiexplorer/overview
炎凰數據
- ?新一代核心系統(tǒng)全面上線!中華財險與阿里云達成數智化升級新合作
- 阿里云通過信通院首批企業(yè)用云治理能力成熟度評測
- 2025年云預測:傳統(tǒng)漏洞、人工智能增長和邊緣繁榮
- 云遣返:工作負載分配的關鍵戰(zhàn)略考慮因素
- 告別加班!華為云推薦數智員工“入職”會無憂
- 阿里云支持疊紙新游《無限暖暖》全球多平臺開服!
- Gartner:到2027年,90%的企業(yè)機構將采用混合云
- Gartner:到2025年,全球公有云終端用戶支出將達到7230億美元
- AI熱潮推動全球云計算市場增長,Q3支出增長21%至820億美元
- 阿里云百煉上線百萬長文本模型Qwen2.5 -Turbo,百萬tokens僅需0.3元
免責聲明:本網站內容主要來自原創(chuàng)、合作伙伴供稿和第三方自媒體作者投稿,凡在本網站出現(xiàn)的信息,均僅供參考。本網站將盡力確保所提供信息的準確性及可靠性,但不保證有關資料的準確性及可靠性,讀者在使用前請進一步核實,并對任何自主決定的行為負責。本網站對有關資料所引致的錯誤、不確或遺漏,概不負任何法律責任。任何單位或個人認為本網站中的網頁或鏈接內容可能涉嫌侵犯其知識產權或存在不實內容時,應及時向本網站提出書面權利通知或不實情況說明,并提供身份證明、權屬證明及詳細侵權或不實情況證明。本網站在收到上述法律文件后,將會依法盡快聯(lián)系相關文章源頭核實,溝通刪除相關內容或斷開相關鏈接。