當(dāng)前位置:首頁 >  IDC >  云計(jì)算 >  正文

使用UCloud GlobalSSH加速Ansible海外部署效率

 2019-04-10 13:44  來源: 互聯(lián)網(wǎng)   我來投稿 撤稿糾錯(cuò)

  域名預(yù)訂/競(jìng)價(jià),好“米”不錯(cuò)過

Ansible是一個(gè)簡(jiǎn)單高效、無Agent架構(gòu)的自動(dòng)化編排、部署及配置管理工具,通過SSH協(xié)議實(shí)現(xiàn)遠(yuǎn)程節(jié)點(diǎn)和管理節(jié)點(diǎn)之間的通信。UCloud內(nèi)部也大量使用到了Ansible。比如,UCloud機(jī)房產(chǎn)品部署系統(tǒng),通過Ansible實(shí)現(xiàn)了部署效率的極大提升,目前已經(jīng)成為UCloud機(jī)房部署的重要工具,本文將詳細(xì)介紹Ansible在UCloud機(jī)房產(chǎn)品部署系統(tǒng)中的使用,相信對(duì)有多機(jī)房部署需求的讀者會(huì)有幫助。

什么是Ansible

Ansible是一個(gè)簡(jiǎn)單高效、無Agent架構(gòu)的自動(dòng)化編排、部署及配置管理工具,通過SSH協(xié)議實(shí)現(xiàn)遠(yuǎn)程節(jié)點(diǎn)和管理節(jié)點(diǎn)之間的通信。

Ansible的目的是簡(jiǎn)化大量復(fù)雜重復(fù)的運(yùn)維工作, 以精簡(jiǎn)的技術(shù)思路建立公司內(nèi)統(tǒng)一的自動(dòng)化文化。無Agent的架構(gòu)使其比其他工具更顯簡(jiǎn)單,基于SSH可以做到的事Ansible都可以做的更好,超高的易用度使其可以簡(jiǎn)單集成到現(xiàn)有體系之中,因而被廣泛使用。

UCloud Ansible使用場(chǎng)景

UCloud內(nèi)部也大量使用到了Ansible。比如,機(jī)房產(chǎn)品部署系統(tǒng),通過Ansible實(shí)現(xiàn)了部署效率的極大提升,目前已經(jīng)成為UCloud機(jī)房部署的重要工具。又如,現(xiàn)網(wǎng)大規(guī)模灰度發(fā)布系統(tǒng),通過集成Ansible的基礎(chǔ)API和Callback功能,很好的解決了灰度發(fā)布、回滾、控制等難題,該系統(tǒng)已經(jīng)在線上穩(wěn)定運(yùn)行3年以上,完成相關(guān)灰度發(fā)布任務(wù)上萬個(gè)。

下面將詳細(xì)介紹Ansible在機(jī)房產(chǎn)品部署系統(tǒng)中的使用,相信對(duì)有多機(jī)房部署需求的讀者會(huì)有幫助。

海外多機(jī)房部署

我們基于Ansible集中式地批量部署和管理服務(wù),集中式管理中心位于北京/上海機(jī)房。當(dāng)海外節(jié)點(diǎn)(如拉各斯、胡志明等)需要建設(shè)時(shí),通過Ansible來遠(yuǎn)程部署云產(chǎn)品及內(nèi)部服務(wù)。部分云產(chǎn)品是基于UCloud云主機(jī)作為IaaS層搭建的,所以也是通過SSH連到對(duì)應(yīng)的海外云主機(jī)進(jìn)行操作。

這和一般用戶的使用場(chǎng)景有很多相似之處,無論其是自建IDC或用了公有云,甚至多云部署來同時(shí)管理不同云上的服務(wù)器,都有類似批量部署的需要。

海外部署有個(gè)額外的痛點(diǎn),就是部署效率的問題。Ansible使用SSH協(xié)議進(jìn)行通信,SSH通道的創(chuàng)建和通信速度都較慢。當(dāng)需要通過外網(wǎng)管理,而網(wǎng)絡(luò)環(huán)境較差或帶寬不足的情況下,執(zhí)行時(shí)間基本上無法忍耐,體現(xiàn)在用Ansible部署時(shí),經(jīng)常會(huì)出現(xiàn)卡頓、連接失敗、傳輸速度較慢等現(xiàn)象,使用Copy模塊傳輸稍大的代碼包/鏡像文件時(shí)基本上要等到花兒都謝了。

我們的解決方法,是把UCloud的 PaaS產(chǎn)品GlobalSSH,集成進(jìn)Ansible,用于提高跨國(guó)遠(yuǎn)程管理服務(wù)器效率。

GlobalSSH

GlobalSSH為了保障海外數(shù)據(jù)中心的運(yùn)維而推出,采用了UCloud眾多IaaS產(chǎn)品如ULB4(四層負(fù)載均衡)、UDPN(洲際內(nèi)網(wǎng)互聯(lián)、0丟包)及高包量云主機(jī),引入智能DNS服務(wù)以提供就近接入的能力。網(wǎng)絡(luò)轉(zhuǎn)發(fā)基于成熟穩(wěn)定的GRE、NAT技術(shù),支持TCP端口(除80、443)四層轉(zhuǎn)發(fā)。

Ansible Playbook方式部署

我們將GlobalSSH集成到Ansible,做一個(gè)簡(jiǎn)單的軟件包拷貝及安裝,步驟如下所示。

1) 首先,我們通過UCloud API或控制臺(tái)在北京二和拉各斯(尼日利亞)各創(chuàng)建一臺(tái)云主機(jī),帶寬為1Mb,其中拉各斯機(jī)房會(huì)自動(dòng)開啟GlobalSSH功能(所有UCloud海外機(jī)房均會(huì)自動(dòng)開啟),如下圖所示:

2)準(zhǔn)備一個(gè)簡(jiǎn)單的Ansible Playbook,分別完成3個(gè)步驟:gather facts、copy代碼包以及yum安裝代碼。相關(guān)的playbook如下所示:

--- - hosts: all tasks: - name: copy test copy: src=/data/MySQL-devel-5.6.41-1.el6.x86_64.rpm dest=/data/test - name: install mysql-devel yum: name=/data/MySQL-devel-5.6.41-1.el6.x86_64.rpm state=present

3)準(zhǔn)備一個(gè)hosts文件,用于配置GlobalSSH所生成的域名。Ansible在對(duì)GlobalSSH的支持上非常簡(jiǎn)單,只要在主機(jī)變量里面添加 ansible_ssh_host=xxx.xxx.xxx.xxx.ipssh.net即可。我們的機(jī)房部署系統(tǒng)會(huì)結(jié)合Ansible的Dynamic Inventory功能,直接在生成的inventory中將GlobalSSH的加速域名加到ansible_ssh_host變量中了,使用起來也是非常容易的,如下所示。

[root@10-10-83-122 ~]# cat hosts_nrly [all] 152.32.140.39 ansible_ssh_pass=example [root@10-10-83-122 ~]# cat hosts_nrly_1 [all] 152.32.140.39 ansible_ssh_pass=example ansible_ssh_host=152.32.140.39.ipssh.net

4)使用ansible-playbook命令執(zhí)行該playbook,任務(wù)完成。

測(cè)試對(duì)比

前面提到,GlobalSSH大幅提高了我們海外部署的效率??梢酝ㄟ^另寫一個(gè)無GlobalSSH加速的Playbook,來測(cè)試一下具體的加速效果。

無GlobalSSH的Playbook寫起來比較簡(jiǎn)單,和上文基本類似,區(qū)別在第三步的hosts文件里不使用加速域名,而是直接填寫原有的外網(wǎng)IP地址。

為防止單次測(cè)試結(jié)果的不準(zhǔn)確,這里測(cè)試了10次,取平均值進(jìn)行比較。

測(cè)試命令:

time for i in `seq 1 10`; do ansible-playbook -i hosts_nrly test_playbook.yml; done time for i in `seq 1 10`; do ansible-playbook -i hosts_nrly_1 test_playbook.yml; done

最終的結(jié)果如下所示,可以看到在簡(jiǎn)單的Ansible Playbook部署中, 經(jīng)過GlobalSSH加速后的效果提升了32.23%。

Ansible Ad-hoc方式

GlobalSSH在低速的帶寬下可以提升整個(gè)網(wǎng)絡(luò)傳輸?shù)姆€(wěn)定性和速度,尤其是對(duì)RTT (Round-Trip Time)往返延遲的提升,更是有著外網(wǎng)彈性IP所不具備的速度優(yōu)勢(shì)。 因此我們認(rèn)為它對(duì)Ansible Ad-hoc方式也有很大幫助。

運(yùn)維人員經(jīng)常會(huì)用Ad-hoc方式,它類似pssh,卻支持Ansible所有的module語法,通常的使用場(chǎng)景是批量執(zhí)行命令并查看回顯結(jié)果。為了驗(yàn)證假設(shè),我們對(duì)Ad-hoc方式也做了類似測(cè)試,發(fā)現(xiàn)GlobalSSH后的優(yōu)化效果更明顯,優(yōu)化速度超過50%,詳細(xì)結(jié)果如下所示。

測(cè)試命令:

time for i in `seq 1 10`; do ansible -i hosts_nrly all -m shell -a "cat /var/log/messages"; done time for i in `seq 1 10`; do ansible -i hosts_nrly_1 all -m shell -a "cat /var/log/messages"; done

測(cè)試結(jié)果:

總結(jié)

Ansible是被大量使用的DevOps工具,我們?cè)谑褂弥懈鶕?jù)需要,將GlobalSSH很容易地集成其中,避免了服務(wù)器部署中SSH卡頓造成的不良影響。

申請(qǐng)創(chuàng)業(yè)報(bào)道,分享創(chuàng)業(yè)好點(diǎn)子。點(diǎn)擊此處,共同探討創(chuàng)業(yè)新機(jī)遇!

相關(guān)標(biāo)簽
網(wǎng)站服務(wù)器
云計(jì)算
UC

相關(guān)文章

  • 選擇云服務(wù)需要考慮哪些因素?

    作為云計(jì)算技術(shù)落地的重要基礎(chǔ)設(shè)施成果,云服務(wù)器近年來獲得的飛速發(fā)展有目共睹。云服務(wù)器需求量的激增引發(fā)行業(yè)競(jìng)爭(zhēng)的加劇,甚至很多服務(wù)商將VPS更名為云服務(wù)器混淆視聽,濫竽充數(shù)。為保證我們互聯(lián)網(wǎng)服務(wù)的正常創(chuàng)建和運(yùn)行,優(yōu)質(zhì)的云服務(wù)器是基礎(chǔ)保障,那么選擇云服務(wù)器要考慮哪些因素呢?一、你的網(wǎng)站目標(biāo)群體你的網(wǎng)站目

  • RAKsmart 服務(wù)器:助你在游戲中傲視群雄!

    RAKsmart服務(wù)器是一款高性能的游戲服務(wù)器,它能夠幫助玩家在游戲中傲視群雄,享受更加流暢、快速的游戲體驗(yàn)。RAKsmart服務(wù)器采用了最新的技術(shù)和先進(jìn)的硬件,具有強(qiáng)大的性能和穩(wěn)定性。它配備了高品質(zhì)的CPU、GPU和內(nèi)存等硬件設(shè)備,能夠處理大量的游戲數(shù)據(jù)和計(jì)算任務(wù),保證游戲數(shù)據(jù)的實(shí)時(shí)性和準(zhǔn)確性。同

    標(biāo)簽:
    網(wǎng)站服務(wù)器
  • 2022年中國(guó)云市場(chǎng)份額:阿里云騰訊云下降

    4月23日,IDC發(fā)布《中國(guó)公有云服務(wù)市場(chǎng)(2022下半年)跟蹤》,占據(jù)前四的分別為阿里云(40.6%)、華為云(11.0%)、騰訊云(11.0%)、中國(guó)電信(8.7%)。

  • 什么是云計(jì)算

    云計(jì)算是一種基于互聯(lián)網(wǎng)的計(jì)算模式,它允許用戶通過互聯(lián)網(wǎng)訪問可擴(kuò)展的計(jì)算資源,而無需直接控制這些資源。云計(jì)算的出現(xiàn)改變了傳統(tǒng)計(jì)算模式的局面,為用戶提供了更加靈活、高效和可靠的計(jì)算環(huán)境。云計(jì)算的基本原理是將計(jì)算資源集中在一個(gè)中央服務(wù)器上,并通過互聯(lián)網(wǎng)向用戶提供計(jì)算服務(wù)。這樣,用戶就可以通過互聯(lián)網(wǎng)訪問計(jì)算

  • 大寬帶服務(wù)器有什么優(yōu)勢(shì)?

    從屬性上看,大寬帶可以分為G口大帶寬、萬兆大帶寬等,從線路上看,可以分為電信、移動(dòng)、聯(lián)通等,從地域?qū)傩钥?,可以分為?guó)內(nèi)寬帶、國(guó)際寬帶。大寬帶是一種互聯(lián)網(wǎng)業(yè)務(wù),寬帶是一種傳輸速度。單位時(shí)間內(nèi)能夠在線路上傳送的數(shù)據(jù)量,帶寬越大,支持在線傳送的數(shù)據(jù)量就越大

熱門排行

信息推薦