炎凰數(shù)據(jù)賦能上海網(wǎng)程,實現(xiàn)華為云資源智慧管理

· 需求

· 網(wǎng)程云服務器平臺的功能

· 云服務器平臺的技術(shù)棧

· 炎凰數(shù)據(jù)平臺收集華為云的數(shù)據(jù)

問題來了。。。

炎凰數(shù)據(jù)平臺端

網(wǎng)程云服務器平臺server端

· 華為云使用狀況的dashboard展示

· 寫在最后

· 參考

需求

隨著業(yè)務的增加,我們對華為云創(chuàng)建云服務器的需求越來越多,之前是由專門的管理員統(tǒng)一來管理,可是一直為開發(fā)人員重復著創(chuàng)建、擴容、銷毀、部署環(huán)境等工作,管理員不勝其煩。這時,我們有了想讓開發(fā)人員能夠自己創(chuàng)建云服務器的需求。后來我們發(fā)現(xiàn)華為云的API在功能上非常完整,而且華為云的API Explorer是個非常方便的調(diào)試工具,通過華為云提供的API,我們快速的開發(fā)了自己的云服務器管理平臺,開發(fā)人員可以自己完成創(chuàng)建、銷毀、擴容等操作,我們也根據(jù)賦予的權(quán)限,給開發(fā)人員不同的容量(云服務器個數(shù)容量、磁盤容量、使用時間的容量等)。

有了網(wǎng)程云服務器平臺,我們管理員的工作簡化了許多。而且開發(fā)人員,也節(jié)省了許多申請和審批云服務器的時間。但是,使用了一段時間后,發(fā)現(xiàn)我們?nèi)鄙倭艘惶捉y(tǒng)計和分析實際使用量的系統(tǒng),后來我們了解到炎凰數(shù)據(jù)平臺的分析能力之后,我們又開始整理日志數(shù)據(jù),然后發(fā)送給炎凰數(shù)據(jù)平臺。通過炎凰數(shù)據(jù)平臺對數(shù)據(jù)的分析,我們清楚地了解實際用量和產(chǎn)生的費用。

網(wǎng)程云服務器平臺的功能

以上就是我們的云服務器平臺,通過華為云開放的API,我們可以實現(xiàn):

· 創(chuàng)建/刪除臨時云服務器

· 臨時云服務器的開機、關(guān)機、重啟

· 延長臨時云服務器的租期

· 增加磁盤

· 遠程登錄

云服務器平臺的技術(shù)棧

我們是使用的華為云的Python SDK,這里不得不再次稱贊下華為云的API Explorer,是個能夠提供快速開發(fā)的工具,這里能夠根據(jù)你鍵入的值自動生成代碼。

之后也可以使用華為云提供的SDK代碼示例調(diào)試中調(diào)試代碼,而且是我們都熟悉的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輸出,生成和處理子進程生命周期中的事件。可以在一個配置文件中配置相關(guān)參數(shù),包括Supervisord自身的狀態(tài)。在
/etc/supervisord.d/xxxxx.ini 創(chuàng)建子進程,其管理的各個子進程的相關(guān)屬性。配置文件一般位于/etc/supervisord.conf。

例如:子進程配置
/etc/supervisord.d/wangcheng-web.ini

Supervisor的客戶端稱為supervisorctl,它提供了一個類shell的接口(即命令行)來使用supervisord服務端提供的功能。通過supervisorctl,用戶可以連接到supervisord服務器進程,獲得服務器進程控制的子進程的狀態(tài),啟動和停止子進程,獲得正在運行的進程列表??蛻舳送ㄟ^Unix域套接字或者TCP套接字與服務端進行通信,服務器端具有身份憑證認證機制,可以有效提升安全性。當客戶端和服務器位于同一臺機器上時,客戶端與服務器共用同一個配置文件/etc/supervisord.conf,通過不同標簽來區(qū)分兩者的配置。

炎凰數(shù)據(jù)平臺收集華為云的數(shù)據(jù)

問題來了。。。

網(wǎng)程云服務器平臺的我們寫好了,解決了開發(fā)者使用云服務器的問題,但是作為系統(tǒng)管理者,我也碰到了問題,我如何來管理?我如何知道我每月消費了多少費用?詳細的使用情況?

設想下隨著產(chǎn)品功能的增加,云服務器的使用量必然會增長,費用上也會增長。老板問能不能每月或者一個季度對云服務器做個預算?這時候沒有數(shù)據(jù)的支撐,我們很難拿出準確的數(shù)字。

這時炎凰數(shù)據(jù)平臺的價值就凸顯出來了,炎凰數(shù)據(jù)平臺能夠幫助我們通過日志文件,非常簡單而又清晰地,統(tǒng)計出云服務器的開機時間、云服務器的數(shù)量、進而可以估算出費用。

云服務器平臺的日志,是調(diào)用華為云的API,生成的JSON格式的日志文件。然后通過fluentd發(fā)送到炎凰數(shù)據(jù)平臺。(也可以使用Vector作為數(shù)據(jù)傳輸工具)。本例中,log的數(shù)據(jù)類型為JSON,其實,大家可以根據(jù)自己的實際情況選擇不同的數(shù)據(jù)類型。炎凰數(shù)據(jù)平臺不挑數(shù)據(jù)類型,有什么數(shù)據(jù),就接什么類型的數(shù)據(jù),就Parse什么類型的數(shù)據(jù)。

炎凰數(shù)據(jù)平臺端

在炎凰數(shù)據(jù)平臺中,創(chuàng)建好數(shù)據(jù)集之后,創(chuàng)建HEI,接收數(shù)據(jù)。(通過HTTP采集數(shù)據(jù))

頒發(fā)云服務器平臺的API Token

網(wǎng)程云服務器平臺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)控數(shù)據(jù)

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 # 炎凰數(shù)據(jù)平臺的云服務器

port 9882 #HEI數(shù)據(jù)傳輸?shù)亩丝?/p>

</server>

</store>

</match>

可能需要配置fluentd service的root權(quán)限,視監(jiān)控的文件權(quá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

然后通過網(wǎng)頁訪問炎凰數(shù)據(jù)平臺,只要執(zhí)行簡單SQL就可以對數(shù)據(jù)進行查詢

我們可以看到數(shù)據(jù)都已經(jīng)發(fā)送過來了, Cheers

華為云使用狀況的dashboard展示

通過簡單的SQL query,我們就可以實時的統(tǒng)計出,云服務器的使用情況。

我這里也節(jié)選了一些配置的使用情況

數(shù)據(jù)展示我看到了什么?

1.  華為云使用情況,作為華為云的管理者,我能清楚了解一段時間中,華為云按需創(chuàng)建的云服務器有多少,比如用了多少臺云主機,都用了多少時間。

2.  使用者,從統(tǒng)計上可以找到誰是重度使用者,從使用者中了解需求,從而改進。

3.  費用統(tǒng)計,如上圖我們可以清楚的知道我們每個月華為云的費用組成。不過,通過創(chuàng)建臨時服務器這個策略,我們減少了不少的研發(fā)成本。

寫在最后

華為云的API、開發(fā)工具、調(diào)試工具和文檔都非常完整,而且API的功能也非常齊全。對于開發(fā)者,能夠快速完成開發(fā)工作。不過對于管理和運維工作也存在著挑戰(zhàn),在使用炎凰數(shù)據(jù)平臺之后,這一切就變的簡單了很多,只要有足夠的日志,加上簡單的SQL語句,管理者頭疼的問題就迎刃而解。另外通過實時數(shù)據(jù)的分析,能夠?qū)崟r的了解當前云服務器的使用情況。

現(xiàn)在正在做的事,我們打算把炎凰數(shù)據(jù)平臺、華為云API和我們的CI/CD串聯(lián)在了一起。當開發(fā)者完成當前代碼,并提交代碼后。網(wǎng)程云服務器平臺,自動創(chuàng)建一臺臨時云服務器,臨時云服務器安裝并注冊gitlab runner,自動拉取代碼,部署環(huán)境并執(zhí)行測試腳本。然后將測試結(jié)果發(fā)送到炎凰數(shù)據(jù)平臺,炎凰數(shù)據(jù)平臺會判斷是否測試結(jié)果達成了期望,并通過郵件和Teams (Web Hook 的方式) 發(fā)送結(jié)果給開發(fā)人員。如果測試成功,網(wǎng)程云平臺會自動銷毀云服務器。如果測試失敗,云服務器會暫時保留,留給開發(fā)人員調(diào)試代碼,直到成功后銷毀,形成了開發(fā)和測試的閉環(huán)。開發(fā)人員也不需要等待測試結(jié)果,成功與否都會發(fā)送郵件和消息通知,提高了開發(fā)人員的效率,此時開發(fā)人員可以創(chuàng)建新的分支,去為其他新功能做準備了。

對于我們公司的日常開發(fā)工作上,華為云和炎凰數(shù)據(jù)平臺是兩個大殺器,殺掉了過去反復創(chuàng)建、部署環(huán)境、銷毀的時間,和管理員統(tǒng)計費用和查看使用情況的時間,在我們簡化工作流程上起到了關(guān)鍵性的作用。

參考

華為云API

https://apiexplorer.developer.huaweicloud.com/apiexplorer/overview 

炎凰數(shù)據(jù)

https://www.yanhuangdata.com/ 

免責聲明:本網(wǎng)站內(nèi)容主要來自原創(chuàng)、合作伙伴供稿和第三方自媒體作者投稿,凡在本網(wǎng)站出現(xiàn)的信息,均僅供參考。本網(wǎng)站將盡力確保所提供信息的準確性及可靠性,但不保證有關(guān)資料的準確性及可靠性,讀者在使用前請進一步核實,并對任何自主決定的行為負責。本網(wǎng)站對有關(guān)資料所引致的錯誤、不確或遺漏,概不負任何法律責任。任何單位或個人認為本網(wǎng)站中的網(wǎng)頁或鏈接內(nèi)容可能涉嫌侵犯其知識產(chǎn)權(quán)或存在不實內(nèi)容時,應及時向本網(wǎng)站提出書面權(quán)利通知或不實情況說明,并提供身份證明、權(quán)屬證明及詳細侵權(quán)或不實情況證明。本網(wǎng)站在收到上述法律文件后,將會依法盡快聯(lián)系相關(guān)文章源頭核實,溝通刪除相關(guān)內(nèi)容或斷開相關(guān)鏈接。

2023-03-15
炎凰數(shù)據(jù)賦能上海網(wǎng)程,實現(xiàn)華為云資源智慧管理
· 需求·網(wǎng)程云服務器平臺的功能·云服務器平臺的技術(shù)棧·炎凰數(shù)據(jù)平臺收集華為云的數(shù)據(jù)問題來了。。。炎凰數(shù)據(jù)平臺端網(wǎng)程云服務器平臺server端·華為云使用狀況的dashboard展示·寫在最后·參考需求隨著業(yè)務的增加,我們對華為云創(chuàng)建云服務器的需求越來越多,之前是由專門的管理員...

長按掃碼 閱讀全文