艾銻無限告訴你:容器的實(shí)現(xiàn)原理
2020-03-12 11:43 作者:艾銻無限 瀏覽量:
疫情期間,艾銻無限幫助中小企業(yè)降低運(yùn)營成本
疫情其間,所有企業(yè)都遇到了同樣的困難,不變的成本和持續(xù)降低的營收,讓企業(yè)現(xiàn)金流遭受了巨大的挑戰(zhàn),大部分企業(yè)未能進(jìn)入正常辦公狀態(tài),所以提升營收的可能性非常小,那為了減少負(fù)債的風(fēng)險(xiǎn),怎樣降
低不變的運(yùn)營成本呢?
當(dāng)年管理學(xué)大師德魯克先生說,除了你的核心業(yè)務(wù)以外,其它的一切都可以外包。
這次疫情給企業(yè)帶來的壓力猶如烏云蔽日,很多企業(yè)即便能夠挺過來也會(huì)大傷元?dú)猓车舴呛诵臉I(yè)務(wù)和裁撤冗員、提高效率三項(xiàng)也必然首當(dāng)其沖。
這一輪人員優(yōu)化,并不一定是因?yàn)閮?yōu)勝劣汰,更多的是因?yàn)榻?jīng)濟(jì)下行和疫情帶來的巨大壓力,很多業(yè)務(wù)被整體砍掉,不少優(yōu)秀人才也要重新進(jìn)入市場,就更不用說那些習(xí)慣渾水摸魚的員工了。
對(duì)于中小企業(yè)首先要砍掉的是自己的網(wǎng)管以及與網(wǎng)管類似的非企業(yè)核心崗位,原因是這樣的崗位對(duì)與中小企業(yè)來說是沒有必要的,通過艾銻無限服務(wù)的5000多家企業(yè)獲得的數(shù)據(jù),中小企業(yè)網(wǎng)管工作飽和度不
到30%,還有70%多的時(shí)間他們是沒有事可做,或做個(gè)人的事情,而且一個(gè)網(wǎng)管一年企業(yè)需要支付10多萬的整體費(fèi)用,這10多萬投入營銷推廣,有可能帶來的就是幾百萬的銷售合同,如果網(wǎng)管平時(shí)沒有
什么管理能力,不知如何規(guī)劃企業(yè)內(nèi)部的信息安全和相關(guān)密碼資料,一旦離職,發(fā)生的問題將是災(zāi)難級(jí)的,我們?cè)?jīng)有一位客戶,網(wǎng)管離職后,所有路由器、服務(wù)器、存儲(chǔ)設(shè)備的密碼全無,后來設(shè)備宕機(jī),直接
影響到企業(yè)網(wǎng)絡(luò)和系統(tǒng)三天沒有恢復(fù)正常,損失達(dá)到幾十萬元。
反過來看這件事,是不是這個(gè)離職的網(wǎng)管非常壞呢,其實(shí)也不是,我們采訪過近百位中小企業(yè)的網(wǎng)管,問過他們,如何看待中小企業(yè)網(wǎng)管這個(gè)職位?99%的人會(huì)說這是一個(gè)沒有前途的職位,會(huì)先干著,一有機(jī)會(huì)就找新的工作,那還剩下的那個(gè)人說,我沒有學(xué)歷,也沒有什么能力,能有份工作就可以了。
所以你可以想像一下,一個(gè)人在他自己認(rèn)為沒有前途的崗位上怎么能做出優(yōu)秀的成績來呢,又怎么會(huì)用心做好每一件事呢。
中小企業(yè)最明智的選擇,就是把這個(gè)崗位外包出去,把要求明確,然后確保外包公司達(dá)到既定的目標(biāo)就可以,每年直接省下的10多萬投入到企業(yè)產(chǎn)品營銷推廣中,就能為公司帶來幾百萬的銷售收入。
那怎樣才能選到一家負(fù)責(zé)、專業(yè)、性價(jià)比高的外包公司呢?
艾銻無限在IT外包行業(yè)15年,服務(wù)了5000多年企業(yè),有三條建議給到中國的中小企業(yè):
第一,從時(shí)間上看,一家企業(yè)值不值得信賴,要看它在這個(gè)行業(yè)的時(shí)間,能超過10年的企業(yè)是絕對(duì)值得信賴的,因?yàn)樗纳婺芰?qiáng),而且10年的服務(wù)會(huì)讓他們積累了經(jīng)驗(yàn)豐富,最重要是對(duì)這個(gè)非暴利的行
業(yè)能堅(jiān)持這么長時(shí)間一直做下去,一定有情懷在里面,一家有情懷又有能力的公司,能不值得信賴嗎。
第二,從服務(wù)的范圍看,有的公司只能服務(wù)某個(gè)地區(qū),有的可以服務(wù)全國,甚至能服務(wù)全球,也許你不需要能服務(wù)這么遠(yuǎn)的企業(yè),但你需要有具備這樣能力的企業(yè),因?yàn)槿绻幸惶炷愠隽怂麄兊姆?wù)范圍怎么
辦,難道需要重新找另一家嗎,這又會(huì)增加不必要的成本,所以找到能服務(wù)全國的比只能服務(wù)區(qū)域的將會(huì)更有優(yōu)勢。
第三,從行業(yè)口碑和規(guī)模看,行業(yè)口碑決定了他們的服務(wù)質(zhì)量,規(guī)模決定了服務(wù)價(jià)格,如果你只是一家中小企業(yè)你就不需要找一家大型公司給你服務(wù),如果你是一家大型企業(yè)你可以找一家和大型企業(yè)一樣有品牌
影響力的中小企業(yè)給你提供服務(wù),這直接就會(huì)給你節(jié)省大量的成本。
中小企業(yè)在百度搜索引擎找IT外包公司的話,可以搜"全國IT外包",左邊就會(huì)出現(xiàn)能做全國IT外包服務(wù)的公司,有的是做廣告推廣排在前面,有的是自然優(yōu)化的排名,在右邊會(huì)出現(xiàn)百度評(píng)選出來的優(yōu)秀
IT服務(wù)企業(yè),大家可以看到像中軟國際,博彥科技,文思海輝,軟通動(dòng)力,東軟集團(tuán)以及埃森哲都是全球排名前十的大型IT外包企業(yè) ,只有
北京艾銻無限科技發(fā)展有限公司是一家中小企業(yè),和這些巨頭能
同時(shí)出現(xiàn)在百度推薦的企業(yè)中,這源自于艾銻無限在IT外包行業(yè)多年服務(wù)的品質(zhì)和口碑,是值得中小企業(yè)首選的IT外包服務(wù)企業(yè)。
作為中小企業(yè),創(chuàng)業(yè)維艱,用好每一分錢才是王道,困難時(shí)期活下來才是最重要的,以最快的速度順應(yīng)環(huán)境的改變,做出有效的行動(dòng),把沒有必要的費(fèi)用降下來,把非核心的工作外包出去,把力量集中一點(diǎn),將
會(huì)產(chǎn)生意想不到的效果,一起加油渡過難關(guān).
艾銻無限告訴你:容器的實(shí)現(xiàn)原理
容器的本質(zhì)
容器的本質(zhì)是一個(gè)進(jìn)程。容器技術(shù)的核心功能,就是通過約束和修改進(jìn)程的動(dòng)態(tài)表現(xiàn),從而為其創(chuàng)造出一個(gè)“邊界”。
對(duì)于docker等大多數(shù)linux容器來說,cgroups技術(shù)是用來制造約束的主要手段,而namespace技術(shù)則是用來修改進(jìn)程視圖的主要方法。
首先創(chuàng)建一個(gè)容器試試:
docker run -it busybox /bin/sh
/ #
/ # ps
PID USER TIME COMMAND
1 root 0:00 /bin/sh
10 root 0:00 ps
從上面可以看到,docker里最開始執(zhí)行的/bin/sh,這就是容器內(nèi)部的第一號(hào)進(jìn)程(pid=1),而這個(gè)容器一共只有2個(gè)進(jìn)程,也就是說,docker隔離在了一個(gè)跟宿主機(jī)完全不同的世界當(dāng)中。本來我們?cè)谒拗鳈C(jī)上運(yùn)行一個(gè)/bin/sh程序,操作系統(tǒng)會(huì)給它分配一個(gè)進(jìn)程編號(hào),pid=100,現(xiàn)在docker把這個(gè)/bin/sh程序運(yùn)行在一個(gè)容器當(dāng)中,使用一個(gè)“障眼法”,讓它永遠(yuǎn)看不到其他的進(jìn)程,讓它誤以為自己就是pid=1。這個(gè)就是linux的namespace機(jī)制。而namespace的使用方式也很簡單,它實(shí)際上只是linux創(chuàng)建新進(jìn)程的一個(gè)可選參數(shù)。我們知道,linux系統(tǒng)中創(chuàng)建線程的系統(tǒng)調(diào)用是clone();比如:
int pid = clone(main_function, stack_size, SIGCHLD, NULL);
這個(gè)系統(tǒng)調(diào)用會(huì)為我們創(chuàng)建一個(gè)新的進(jìn)程,并且返回它的進(jìn)程號(hào)pid。而但我們調(diào)用clone創(chuàng)建新進(jìn)程時(shí),在參數(shù)中指定CLONE_NEWPID參數(shù):
int pid = clone(main_function, stack_size, CLONE_NEWPID | SIGCHLD, NULL);
這個(gè)時(shí)候,新創(chuàng)建的這個(gè)進(jìn)程將會(huì)“看到”一個(gè)全興的進(jìn)程空間,在這個(gè)進(jìn)程空間里,它的pid就是1。
namespace實(shí)現(xiàn)了容器間資源的隔離。linux使用6中namespace,分別對(duì)應(yīng)6中資源:Mount, UTS, IPC, PID,Network和User。這些就是linux容器最基本的實(shí)現(xiàn)原理。docker容器聽起來很玄,實(shí)際上就是在創(chuàng)建容器進(jìn)程時(shí),指定了這個(gè)進(jìn)程所需要啟動(dòng)的一組namespace參數(shù)。這樣,容器就只能看到當(dāng)前namespace所限定的資源、文件、設(shè)備、狀態(tài)和配置等。而對(duì)于主機(jī)以及其他不想管的程序,它就完全看不到了。為了更好的理解容器的特性,這里討論容器的底層實(shí)現(xiàn)技術(shù)。
cgroup和namespace是最重要的兩種技術(shù)。cgroup實(shí)現(xiàn)資源限制,namespace實(shí)現(xiàn)資源隔離。
cgroup
linux操作系統(tǒng)通過cgroup可以設(shè)置進(jìn)程使用CPU、內(nèi)存和IO資源的限額。前面提到的–cpu-shares,-m,–device-write-bps實(shí)際就是在配置cgroup。
在/sys/fs/cgroup/cpu/docker目錄中,linux會(huì)為每個(gè)容器創(chuàng)建一個(gè)cgroup目錄,以容器的長ID命名。
namespace
namespace實(shí)現(xiàn)了容器間資源的隔離。
linux使用6中namespace,分別對(duì)應(yīng)6中資源:Mount, UTS, IPC, PID,Network和User。
Mount namespace
Mount namespace讓容器看上去擁有整個(gè)文件系統(tǒng)。
UTS namespace
UTS ns讓容器擁有自己的hostname。容器的hostname默認(rèn)是它的短ID,可以通過-h或 --hostname參數(shù)來設(shè)置。
IPC namespace
IPC namespace讓容器擁有自己的共享內(nèi)存和信號(hào)量,實(shí)現(xiàn)進(jìn)程間通信。
PID namespace Network namespace
讓容器擁有自己獨(dú)立的網(wǎng)卡、ip、路由等資源。
User namespace
讓容器能夠管理自己的用戶,host不能看到容器中創(chuàng)建的用戶。