电竞比分网-中国电竞赛事及体育赛事平台

分享

虛擬化老兵介紹虛擬化技術(shù)

 xiaowei035 2016-06-01


大家好,我是徐安,一位虛擬化老兵。2010年開(kāi)始在世紀(jì)互聯(lián)(云快線(xiàn))接觸云計(jì)算和虛擬化技術(shù),應(yīng)該算是國(guó)內(nèi)較早的一批人吧。目前在漢柏科技有限公司,負(fù)責(zé)服務(wù)器虛擬化以及桌面虛擬化產(chǎn)品的技術(shù)工作。



我將從虛擬化的主流技術(shù)介紹,前沿技術(shù)介紹,Docker技術(shù)介紹,MixSAN技術(shù)介紹四個(gè)方面展開(kāi)今天的分享。由于筆者水平和知識(shí)所限,難免有理解不正確的地方,請(qǐng)各位大牛批評(píng)指正。


首先讓我們看看主流虛擬化技術(shù)有哪些,無(wú)非就是CPU虛擬化,內(nèi)存虛擬化,網(wǎng)卡虛擬化,磁盤(pán)虛擬化。


KVM是目前最主流的虛擬化技術(shù),自L(fǎng)inux 2.6.20之后集成在各主要Linux發(fā)行版本中。KVM分為四個(gè)模式,分別是客戶(hù)(虛擬機(jī))用戶(hù)模式,客戶(hù)(虛擬機(jī))內(nèi)核模式,Host Linux用戶(hù)模式,Host Linux內(nèi)核模式。虛擬機(jī)的用戶(hù)模式和內(nèi)核模式與虛擬化之前的操作系統(tǒng)對(duì)應(yīng),沒(méi)有什么好解釋的。Qemu-kvm是一個(gè)Host Linux用戶(hù)態(tài)程序,就是一個(gè)進(jìn)程,代表著一個(gè)虛擬機(jī)。Qemu-kvm主要負(fù)責(zé)為虛擬機(jī)模擬硬件,Qemu-kvm通過(guò)ioctl控制KVM內(nèi)核模塊。


一個(gè)虛擬機(jī)就是一個(gè)進(jìn)程,那一個(gè)vCPU就是一個(gè)線(xiàn)程,它被Main線(xiàn)程創(chuàng)建。這么設(shè)計(jì)的好處是無(wú)需單獨(dú)設(shè)計(jì)vCPU的調(diào)度算法了,就用Linux的線(xiàn)程調(diào)度即可。所以,對(duì)于一個(gè)vCPU來(lái)說(shuō),它就是拼了老命runing,看圖可以見(jiàn)到兩個(gè)while循環(huán),第二個(gè)while就是讓KVM內(nèi)核運(yùn)行該vCPU的上下文,一旦KVM內(nèi)核運(yùn)行不下去了,就看看是什么原因,qemu-kvm根據(jù)原因執(zhí)行下一步動(dòng)作,比如需要讀寫(xiě)磁盤(pán)了,那就用qemu-kvm去打開(kāi)該磁盤(pán)對(duì)應(yīng)的文件,執(zhí)行read,write操作。


整個(gè)虛擬機(jī)的虛擬地址到實(shí)際物理內(nèi)存地址的訪(fǎng)問(wèn)(轉(zhuǎn)換)過(guò)程為:GVA(虛擬機(jī)虛擬地址),通過(guò)VM頁(yè)表轉(zhuǎn)換為GPA(虛擬機(jī)物理地址),然后通過(guò)一個(gè)數(shù)據(jù)結(jié)構(gòu)映射為HVA(物理機(jī)虛擬地址),再通過(guò)Host頁(yè)表,轉(zhuǎn)換為HPA(物理機(jī)物理地址)。


從上頁(yè)可以看出,這么轉(zhuǎn)換太慢了,需要加速。有兩個(gè)辦法來(lái)加速上一頁(yè)的翻譯過(guò)程。1)影子頁(yè)表,2)EPT功能。那KVM使用哪個(gè)呢?如CPU支持EPT功能,那就走EPT。


EPT是利用硬件自動(dòng)翻譯GPA到HPA的地址映射:在構(gòu)建VM的頁(yè)表時(shí),EPT硬件把翻譯好的HPA地址反饋給VM頁(yè)表,VM直接使用物理地址。


利用軟件“欺騙VM”直接構(gòu)建GVA到HPA的頁(yè)表,VM還正常走頁(yè)表翻譯的流程,當(dāng)需要加載頁(yè)表的物理內(nèi)存時(shí),KVM接管起來(lái),然后把頁(yè)表里的內(nèi)容直接替換成真實(shí)的HPA地址即可。


左邊是普通網(wǎng)卡的虛擬化,首先qemu-kvm會(huì)模擬”E1000″的物理網(wǎng)卡,Guest OS通過(guò)模擬的中斷和DMA操作與E1000交互,E1000在Qemu-kvm內(nèi)用內(nèi)部調(diào)用把這些請(qǐng)求轉(zhuǎn)發(fā)到”tap代理”上,tap代理實(shí)際是open的Host OS的一個(gè)tap設(shè)備,所以收發(fā)包的流程就轉(zhuǎn)換為針對(duì)tap設(shè)備的read,write操作。tap設(shè)備連接在bridge上,再通過(guò)TCP/IP協(xié)議棧或bridge上的物理網(wǎng)卡把網(wǎng)絡(luò)包收發(fā)起來(lái)。

右邊是virtio網(wǎng)卡,與普通網(wǎng)卡不同的地方在DMA模擬操作變成了內(nèi)存共享。


這是具體的函數(shù)調(diào)用過(guò)程,強(qiáng)調(diào)一下:tap的操作都會(huì)經(jīng)過(guò)Qemu-kvm進(jìn)程的poll處理。左邊的是收包過(guò)程,右邊的是發(fā)包過(guò)程。


這是virtio-net收發(fā)包的調(diào)用流程。


vrio-blk與網(wǎng)卡虛擬化類(lèi)似,首先模擬一個(gè)硬件設(shè)備,對(duì)硬件設(shè)備的讀寫(xiě)操作都轉(zhuǎn)換為磁盤(pán)代理的讀寫(xiě)操作。這個(gè)磁盤(pán)代理可能是一個(gè)文件,一個(gè)塊設(shè)備,一個(gè)網(wǎng)絡(luò)設(shè)備,或者僅僅是一個(gè)模擬。


有興趣的可以私下討論,時(shí)間關(guān)系先過(guò)。


這個(gè)講起來(lái)有點(diǎn)復(fù)雜,總之可設(shè)定虛擬機(jī)某個(gè)磁盤(pán)的緩沖策略,write-back,none,write-thru。實(shí)際上就是qemu-kvm打開(kāi)文件的類(lèi)型不同。write-back的意思是數(shù)據(jù)寫(xiě)入page cache中就不管了,none的話(huà)會(huì)寫(xiě)入buffer cache(設(shè)備緩沖中),write-thru那么設(shè)備緩沖也要跨過(guò),直接寫(xiě)入設(shè)備中。


所謂前沿技術(shù),只是個(gè)人的認(rèn)識(shí),不一定正確,請(qǐng)批評(píng)指正。


所謂的FT技術(shù)就是建立兩個(gè)VM,一主一備。隔一段時(shí)間主VM暫停下,做一個(gè)checkpoint,然后恢復(fù)VM,在下一次checkpoint點(diǎn)之前,把上兩次checkpoint之間的差異(CPU,內(nèi)存)數(shù)據(jù)傳遞給備份VM,備份VM同步更新這些差異數(shù)據(jù)。

這里的困難點(diǎn)就是checkpoint之間的時(shí)間間距盡量短,如果這段時(shí)間內(nèi)存數(shù)據(jù)變化比較大,那傳輸?shù)臄?shù)據(jù)流就會(huì)巨大,那對(duì)主備之間的網(wǎng)絡(luò)帶寬壓力就會(huì)比較大。


三級(jí)緩沖是這樣的,以Widows系統(tǒng)舉例,把C盤(pán)的母盤(pán)放在內(nèi)存中,C盤(pán)的link clone出來(lái)的子盤(pán)放在SSD中,D盤(pán)放入機(jī)械硬盤(pán)中。這樣的VM啟動(dòng)速度,我們測(cè)試的結(jié)果是60個(gè)桌面,90秒內(nèi)可啟動(dòng)完。

預(yù)讀機(jī)制是指,虛擬機(jī)讓我讀取1k的數(shù)據(jù),我自動(dòng)幫你讀1M的數(shù)據(jù)讓在內(nèi)存中。


如果還嫌VM啟動(dòng)太慢了,那還有辦法,我們看一個(gè)虛擬機(jī)啟動(dòng)的過(guò)程無(wú)非是這樣的:CPU轉(zhuǎn)起來(lái),讀取Disk里的數(shù)據(jù)放入內(nèi)存中。那啟動(dòng)多個(gè)一模一樣虛擬機(jī)的時(shí)候能不能不走這個(gè)流程呢,直接把內(nèi)存和CPU的數(shù)據(jù)從虛擬機(jī)A拷貝到虛擬機(jī)B,那理論上虛擬機(jī)B的啟動(dòng)速度等于內(nèi)存對(duì)拷的時(shí)間。還可以再加速,如果虛擬機(jī)基本差不多,有些內(nèi)存數(shù)據(jù)根本不會(huì)變化,那內(nèi)存拷貝的時(shí)候能不能只是做一個(gè)link鏈接,當(dāng)子內(nèi)存某一塊有變化時(shí),再?gòu)哪竷?nèi)存中copy on write即可。


網(wǎng)卡性能加速第一方向是使用vhost-net,網(wǎng)絡(luò)數(shù)據(jù)包轉(zhuǎn)發(fā)可拋掉qemu-kvm,直接走到vhost設(shè)備,在內(nèi)核中轉(zhuǎn)發(fā)到tap設(shè)備,然后走h(yuǎn)ost內(nèi)核的bridge走出去。說(shuō)的直白點(diǎn),在創(chuàng)建VM時(shí),給qemu-kvm的網(wǎng)卡設(shè)備文件是vhost的。DPDK可加速交換模塊OVS的轉(zhuǎn)發(fā)效率,這部分我們還沒(méi)有深入研究,就一筆帶過(guò)了。


針對(duì)KVM的vGPU方案還比較少,時(shí)間關(guān)系,也一筆帶過(guò)了。


關(guān)于Docker,我們也是剛剛開(kāi)始研究,算是學(xué)習(xí)筆記吧。有說(shuō)的不對(duì)的地方,請(qǐng)各位大牛批評(píng)指正。


左邊是常用的對(duì)比圖,可以明顯看出Docker少了Guest OS Kernel這一層,所以它的密度更高,啟動(dòng)速度更快。但用戶(hù)使用Docker和虛擬機(jī),不會(huì)直接使用命令,一般是使用一個(gè)系統(tǒng)。所以,正確的對(duì)比辦法是對(duì)比它們的系統(tǒng)。右邊是從這么幾個(gè)方面我認(rèn)識(shí)到的對(duì)比??梢悦黠@看出,Docker在啟動(dòng)速度,密度,更新管理上占有比較大的優(yōu)勢(shì),其他方面,比如對(duì)Windows的支持行,穩(wěn)定性,安全性,監(jiān)控成熟度,高可用性,管理平臺(tái)成熟度上來(lái)看,都低于虛擬化技術(shù)。當(dāng)然,再次強(qiáng)調(diào)這個(gè)是我個(gè)人的認(rèn)識(shí),不一定正確。歡迎批評(píng)指正。


可以看出,這是個(gè)群雄涿鹿的時(shí)代,主要有OpenStack、Mesos、Kubernetes、Docker公司(社區(qū))四個(gè)玩家。它們爭(zhēng)奪的當(dāng)然是云時(shí)代,開(kāi)源平臺(tái)的份額,也就是云時(shí)代的控制權(quán)。


筆者一直認(rèn)為,云消費(fèi)者并不關(guān)心,你這個(gè)服務(wù)商使用的是虛擬化技術(shù)還是Docker,更不關(guān)心你自己寫(xiě)的還是基于開(kāi)源平臺(tái)改的。他關(guān)心的是你的服務(wù)是否可靠,是否穩(wěn)定,是否便宜,是否安全。所以,根據(jù)你團(tuán)隊(duì)的特點(diǎn),選擇你們自己最擅長(zhǎng)的技術(shù),為云消費(fèi)者提供有競(jìng)爭(zhēng)力的服務(wù),才是未來(lái)我們能否立足的核心。

筆者認(rèn)為融合了Docker與虛擬化的云平臺(tái)應(yīng)該包括三個(gè)層次:資源管理層,虛擬化層,服務(wù)層。當(dāng)然docker與虛擬化會(huì)共用大部分模塊,這也是筆者認(rèn)為要構(gòu)筑融合平臺(tái)的好處。資源管理層至少包括:計(jì)算資源管理,存儲(chǔ)資源管理,網(wǎng)絡(luò)管理,安全管理。虛擬化層肯定包括:虛擬化引擎(一般情況下就是KVM),容器引擎(一般情況下就是Docker)。服務(wù)層至少包括:高可用性,編排管理,容災(zāi)備份,服務(wù)發(fā)現(xiàn),應(yīng)用發(fā)布,應(yīng)用升級(jí),自感擴(kuò)容,編排管理,平臺(tái)高可用性,生命周期管理,用戶(hù)權(quán)限認(rèn)證,監(jiān)控報(bào)警,日志審計(jì),負(fù)載均衡,鏡像管理,系統(tǒng)維護(hù)等模塊。


Kubernetes的優(yōu)勢(shì)在于它是第一個(gè)Docker集群管理平臺(tái),第一個(gè)提出并實(shí)現(xiàn)了Pod,Replication,Services Discovery等概念。關(guān)于技術(shù)細(xì)節(jié),筆者在此不做過(guò)多介紹,請(qǐng)自行百度,Google,或者自己搭建平臺(tái)體驗(yàn)。下面的其他方案也相同。

Swarm是Docker在2014年12月份新發(fā)布的Docker集群管理工具。Swarm可管理Docker集群,管理和分配計(jì)算資源,也包含服務(wù)發(fā)現(xiàn)(可以選用etcd、ZooKeeper、Consul),容器編排等功能。Swarm的優(yōu)勢(shì)是與Docker接口API統(tǒng)一。

Mesos的目標(biāo)是下一代數(shù)據(jù)中心操作系統(tǒng)(DCOS),其最核心功能在于集群管理,計(jì)算資源管理,任務(wù)分發(fā),原本用作Hadoop等分布式任務(wù)管理。從0.20版開(kāi)始,Mesos支持Docker形式的任務(wù)調(diào)度(主要看中Docker的任務(wù)隔離,資源限制,隨鏡像發(fā)布)。在Mesos之上,Marathon可以用作為Docker編排和生命周期管理。

為保證云計(jì)算領(lǐng)域的領(lǐng)先地位,2015年5月份溫哥華峰會(huì)上,OpenStack提出了“集成引擎”的思路。其實(shí)說(shuō)白了就是在Kubernetes、Swarm和Mesos的上面套一層,用OpenStack Magnum的接口來(lái)管理它們。OpenStack的優(yōu)勢(shì)在于在虛擬化上積累的多租戶(hù),編排,存儲(chǔ)以及網(wǎng)絡(luò)能力。筆者認(rèn)為這個(gè)方案有點(diǎn)另類(lèi),OpenStack不會(huì)甘心僅僅做個(gè)”集成商”的。筆者大膽猜測(cè),憑借強(qiáng)大的內(nèi)生能力,OpenStack Magnum一定會(huì)慢慢學(xué)習(xí)和消化Kubernetes、Swarm和Mesos的優(yōu)勢(shì),并最終替代它們變成另一個(gè)”Nova”,這個(gè)”Nova”操作和管理Docker。

對(duì)四種方案進(jìn)行全方位的比較,按照0(沒(méi)有此項(xiàng)功能),1(有,但不完善),2(有,且比較完善)。結(jié)果是Kubernets稍稍勝出,個(gè)人認(rèn)識(shí),不一定正確。


關(guān)于存儲(chǔ)

  1. 將Docker的rootfs以及Volume跑在Ceph集群中。據(jù)說(shuō)Docker社區(qū)即將實(shí)現(xiàn)Ceph RBD Graph Driver。

  2. Ceph模塊Docker化,與Docker節(jié)點(diǎn)統(tǒng)一起來(lái),實(shí)現(xiàn)超融合理念。


關(guān)于網(wǎng)絡(luò)

  1. 與虛擬化一體實(shí)現(xiàn)DHCP,實(shí)際IP分配通過(guò)Docker 1.9以上的–ip參數(shù)設(shè)定。

  2. 利用OVS實(shí)現(xiàn)Docker與VM互聯(lián)互通。


服務(wù)發(fā)現(xiàn)可以讓一個(gè)應(yīng)用或者組件發(fā)現(xiàn)其運(yùn)行環(huán)境以及其它應(yīng)用或組件的信息。當(dāng)一個(gè)服務(wù)啟動(dòng)時(shí),注冊(cè)自身信息,例如,一個(gè)MySQL數(shù)據(jù)庫(kù)服務(wù)會(huì)在這注冊(cè)它運(yùn)行的ip和端口。負(fù)載均衡的策略可根據(jù)負(fù)載在Ngnix和DNS上體現(xiàn),不如發(fā)現(xiàn)某個(gè)負(fù)載太高,就Ngnix或者DNS到另外的Docker Server上。


 

  1. 靜態(tài)遷移&Docker HA:Ceph共享存儲(chǔ) + IP設(shè)定 == 可實(shí)現(xiàn)Docker遷移功能。

  2. 動(dòng)態(tài)遷移: 熱遷移CRIU(凍結(jié)進(jìn)程 –> 保存在存儲(chǔ)上 –> 讀取并恢復(fù)出來(lái))。 


一個(gè)Set跑一個(gè)業(yè)務(wù),由多個(gè)Docker組成,支持灰度升級(jí),如果監(jiān)控到負(fù)載太高,也可在Set內(nèi)增加Docker數(shù)量。


這里說(shuō)的MixSAN就是Ceph。


Ceph是一種為優(yōu)秀的性能、可靠性和可擴(kuò)展性而設(shè)計(jì)的統(tǒng)一的(同時(shí)提供對(duì)象存儲(chǔ)、塊存儲(chǔ)和文件系統(tǒng)存儲(chǔ)三種功能)、分布式的存儲(chǔ)系統(tǒng)(高可靠性;高度自動(dòng)化;高可擴(kuò)展性)。

RADOS的系統(tǒng)邏輯結(jié)構(gòu)如右圖所示:

  1. OSD和monitor之間相互傳輸節(jié)點(diǎn)狀態(tài)信息,共同得出系統(tǒng)的cluster map。

  2. 客戶(hù)端程序通過(guò)與OSD或者monitor的交互獲取cluster map,然后直接在本地進(jìn)行計(jì)算,得出對(duì)象的存儲(chǔ)位置后,便直接與對(duì)應(yīng)的OSD通信,完成數(shù)據(jù)的各種操作。


pool,rbd卷,pg,osd之間的關(guān)系如圖所示。在Pool內(nèi)建立rbd卷,按照4M分為許多object,一個(gè)object對(duì)應(yīng)一個(gè)pg,一個(gè)pg分發(fā)到不同的osd上把數(shù)據(jù)存儲(chǔ)起來(lái),一般就是存儲(chǔ)在一個(gè)文件中。


左圖可以明顯看出,一次寫(xiě)會(huì)寫(xiě)三次,所以有寫(xiě)放大的問(wèn)題。

讀的話(huà)分為幾種算法,一種是只去找primary,一種是在三個(gè)osd上隨機(jī)找一個(gè)去讀,另一個(gè)是盡可能靠近自己去讀。


這種情況我們?cè)谌f(wàn)兆情況下,測(cè)試出來(lái)的性能等同于萬(wàn)兆iSCSI存儲(chǔ)性能。

這么做的好處:冷熱數(shù)據(jù)分離,用相對(duì)快速/昂貴的存儲(chǔ)設(shè)備如SSD盤(pán),組成一個(gè)Pool來(lái)作為Cache層,后端用相對(duì)慢速/廉價(jià)的設(shè)備來(lái)組建冷數(shù)據(jù)存儲(chǔ)池。

tier Cache策略有兩種模式:

  1. Write-back模式 Ceph客戶(hù)端直接往cache-pool里寫(xiě)數(shù)據(jù),寫(xiě)完立即返回,Tiering Agent再及時(shí)把數(shù)據(jù)flush到base-pool。當(dāng)客戶(hù)端要讀的數(shù)據(jù)不在cache-pool時(shí),Tiering Agent負(fù)責(zé)把數(shù)據(jù)從base-pool遷移到cache-pool。

  2. read-only模式 Ceph客戶(hù)端在寫(xiě)操作時(shí)往base-pool上直接寫(xiě)。讀數(shù)據(jù)時(shí)先從cache-pool上讀取,如果不在則從base-pool上讀取,同時(shí)把數(shù)據(jù)緩沖在cache-pool。

我們使用的Cache策略是write-back模式。


我們的虛擬機(jī)在分配時(shí),考慮Ceph的第一個(gè)object的primary Node,通過(guò)計(jì)算,發(fā)現(xiàn)這種方式比不指定情況下的速度提升30%左右。主要是一個(gè)object中存儲(chǔ)了qcow2的表頭數(shù)據(jù)。


該圖是osd的狀態(tài)遷移圖,大致看下就會(huì)發(fā)現(xiàn)巨復(fù)雜,我們也發(fā)現(xiàn)有很多坑,目前正在填。


 

Q&A

Q:虛機(jī)遷移是否有涉及?不論是負(fù)載觸發(fā)還是容災(zāi)觸發(fā)或者業(yè)務(wù)邏輯觸發(fā)。

A:負(fù)載觸發(fā)的有DRS,省電模式?;究紤]是負(fù)載高時(shí)往低負(fù)載上遷移,省電模式則正好相反,把虛擬機(jī)集中起來(lái),關(guān)閉那些不需要的虛擬機(jī)。

Q:KVM的Host內(nèi)核參數(shù)開(kāi)啟IP轉(zhuǎn)發(fā) 作用是啥,如果使用的是橋接網(wǎng)絡(luò)是否一樣需要開(kāi)啟?

A:一般情況下都是需要開(kāi)啟的,如果物理機(jī)需要給虛擬機(jī)網(wǎng)絡(luò)通信的話(huà)。

Q:容器化取代虛擬化真的只是時(shí)間問(wèn)題嗎?

A:虛擬化技術(shù)源于以CPU為核心的硬件能力溢出,一虛多也綽綽有余。帶來(lái)的結(jié)果:1.降低x86硬件平臺(tái)的差異性,VM隨便漂移;2.可統(tǒng)一管理池化后的資源,提高管理性和利用效率;3.不同guest os的vm可同時(shí)運(yùn)行在同一個(gè)主機(jī)里;4.各層級(jí),各種類(lèi)軟件近乎零成本往上遷移。

容器的本質(zhì)是Linux上“相對(duì)獨(dú)立的更好管理的程序運(yùn)行環(huán)境”。帶來(lái)的結(jié)果:1.適當(dāng)降低linux操作系統(tǒng)的差異性;2.統(tǒng)一管理“應(yīng)用”,提高部署與運(yùn)行的效率;3.“一統(tǒng)天下”的理想極致世界:從庫(kù)上下載任何想要的應(yīng)用,快速且高密度的啟動(dòng);4.未統(tǒng)一前,應(yīng)用程序往上遷移有一定成本。

所以,短期未來(lái)更有可能的是:虛擬化與容器各負(fù)責(zé)自己擅長(zhǎng)的部分,由于更容易與現(xiàn)有世界“兼容”,虛擬化占的市場(chǎng)份額可能會(huì)更大。長(zhǎng)期未來(lái),當(dāng)統(tǒng)一的世界什么都提供時(shí),哪里都可運(yùn)行時(shí),虛擬化,容器,你,我可能都已不存在。

Q:請(qǐng)問(wèn)桌面虛擬化有什么痛點(diǎn),或者難點(diǎn)么?

A:業(yè)務(wù)上的疼點(diǎn):

技術(shù)上的難點(diǎn)有兩個(gè):

1)終端尤其usb設(shè)備的適配性工作,太磨人了。
2)協(xié)議的分析,研究,以及改進(jìn)。

Q:KVM虛擬化中Linux內(nèi)核的兩個(gè)模塊kvm和kvm_intel具體起到什么作用?

A:我有段時(shí)間沒(méi)有摸具體的代碼了,kvm和kvm_intel組合在一起完成KVM內(nèi)核相關(guān)的工作。

kvm_intel主要是針對(duì)Intel硬件的具體實(shí)現(xiàn),比如CPU上下文結(jié)構(gòu)等信息。KVM完成相對(duì)上層一些的工作,比如qemu-kvm下發(fā)ioctol指令解析,內(nèi)存虛擬化等工作。

@Container容器技術(shù)大會(huì)正在火熱報(bào)名中,知名公司的Docker、Kubernetes、Mesos應(yīng)用案例,點(diǎn)擊下圖可查看大會(huì)具體內(nèi)容。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶(hù)發(fā)布,不代表本站觀(guān)點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶(hù) 評(píng)論公約

    類(lèi)似文章 更多