精品国产一级在线观看,国产成人综合久久精品亚洲,免费一级欧美大片在线观看

容器時(shí)代,難道這就是我們想要的未來?

責(zé)任編輯:editor005

作者:周峰翻譯

2015-07-27 14:21:22

摘自:dockone

P:Paxos就是沒有人理解或使用的上世紀(jì)70年代老的分布式共識(shí)協(xié)議。P: 嗯,你將有大約12個(gè)服務(wù),當(dāng)然,你需要冗余副本,幾個(gè)負(fù)載均衡的集群etcd,你的數(shù)據(jù)庫(kù)和kubernetes集群。

容器時(shí)代,難道這就是我們想要的未來?

  以下完整的對(duì)話記錄,U 為提問者,P為Paul Biggar(Founder of CircleCI)。

U:Hi,我老板讓我采訪你,我聽說你是個(gè)Web專家?

P:是啊,我現(xiàn)在專攻分布式系統(tǒng)。我剛從ContainerCamp和Gluecon回來,打算下周參加DockerCon。真的很興奮,整個(gè)行業(yè)正朝著 - 讓一切更簡(jiǎn)單,更可靠的方式前進(jìn)。這就是未來!

U:Cool,我現(xiàn)在構(gòu)建一個(gè)簡(jiǎn)單的Web應(yīng)用程序 ——一個(gè)使用Rails的普通CRUD應(yīng)用程序,將會(huì)部署到Heroku的。給我提些建議?

P:Oh,不。這是老方式。Heroku已死 ——沒有人會(huì)再使用它了。你現(xiàn)在需要使用Docker。這才是未來。

U:Oh,好的。Docker是什么?

P:Docker是一種新的容器化的方式。就像LXC,但Docker也是一種打包形式、分發(fā)平臺(tái)和工具,它可以讓分布式系統(tǒng)的構(gòu)建變得非常容易。

U:容器化 ——那是什么?什么是LXE?

P:是LXC。你可以把它想成chroot的升級(jí)版。

U:什么是 cher-oot?

P:好,看看。Docker。集裝箱。這就是未來。這就像虛擬化,但速度更快、更廉價(jià)。

U:Oh,就像Vagrant

P:不,Vagrant已死。一切都將會(huì)被容器化,這就是未來。

U:好了,所以我不需要知道虛擬化什么嗎?

P:不,你仍然需要虛擬化,因?yàn)槿萜髂壳皼]有提供充分的安全保證。所以,如果你想在多租戶環(huán)境中運(yùn)行應(yīng)用,你仍然需要沙箱。

U:好吧,我開始有點(diǎn)糊涂了。讓我們一起回顧下。現(xiàn)在有一個(gè)像虛擬化一樣的東西,被稱為容器。我可以在Heroku上使用它嗎?

P:嗯,Heroku提供了對(duì)Docker的支持,但我告訴你:Heroku已經(jīng)死了。你需要在CoreOS上運(yùn)行你的容器。

U:擦,那CoreOS是什么?

P:它是一個(gè)可以運(yùn)行Docker的Host OS。該死的,你甚至都不需要Docker,可以直接使用rkt。

U:Rocket?

P:不,rkt。

U:沒錯(cuò),那就是Rocket。

P:不,現(xiàn)在已經(jīng)叫rkt了。與Docker完全不同。這是另一種集裝箱格式,不像Docker把東西都綁定在一起,所以它更可以隨意組合。

U:那樣很好?

P:當(dāng)然這是很好的。組合是未來的趨勢(shì)。

U:好,你如何使用它?

P:我不知道。估計(jì)還沒人能玩轉(zhuǎn)它。

U:好吧。那你接著剛才繼續(xù)說下CoreOS?

P:它是一個(gè)可以使用Docker的Host OS。

U:什么是Host OS?

P:一個(gè)運(yùn)行容器的主機(jī)操作系統(tǒng)。

U:運(yùn)行我的容器?

P:是啊,你總得有運(yùn)行東西的容器。就像你設(shè)置一個(gè)EC2實(shí)例,你把CoreOS放上去就可以了,隨后運(yùn)行Docker的守護(hù)進(jìn)程,然后你就可以將Docker鏡像部署上去。

[page]

U:其中哪一部分是容器?

P:所有。你可以把應(yīng)用程序?qū)憺橐粋€(gè)Dockerfile,然后在本地把它變成一個(gè)鏡像,這樣,鏡像就可以被部署到任何Docker主機(jī)了。

U:啊,就像Heroku?

P:不,不是Heroku。我告訴過你了。Heroku死了。你現(xiàn)在使用的是Docker。

U:什么?

P:是啊,這真的很簡(jiǎn)單。查一查#gifee。

U:Gify?

P:“谷歌的基礎(chǔ)設(shè)施”。你可以基于一些現(xiàn)有的工具,并通過使用容器,就可以擁有和谷歌相同的基礎(chǔ)設(shè)施了。

U:我為什么不只使用谷歌的東西呢?

P:你認(rèn)為這將是大約6個(gè)月可以完成的?

U:OK,沒有云服務(wù)商提供類似的服務(wù)嗎?我真的不想自己搞一套

P:嗯,亞馬遜有ECS,但你得寫煩人的XML。

U:OpenStack又是什么東西?

P:Ew。

U:Ew?

P:Ew。

U:我真的不想自建。

P:不,它真的很容易。您只需設(shè)置一個(gè)Kubernetes集群。

U:我需要一個(gè)集群?

P:Kubernetes集群。它會(huì)管理所有服務(wù)的部署。

U:我只有一個(gè)服務(wù)。

P:什么意思?你確實(shí)有一個(gè)應(yīng)用程序,所以你必須至少有8-12個(gè)服務(wù)?

U:什么?沒有,我只是一個(gè)應(yīng)用程序。為什么有那么多服務(wù)?

P:不,看看微服務(wù)。這是未來。這就是現(xiàn)在我們所做的一切。你把你的整體應(yīng)用程序分解成12個(gè)服務(wù)。每一個(gè)服務(wù)只做一件事情。

U:這似乎代價(jià)過高。

P:這是確保應(yīng)用可靠的唯一途徑。你可以想象下如果你的驗(yàn)證服務(wù)宕機(jī)了...

U:認(rèn)證服務(wù)?我之前用的是Gem。

P:對(duì)的。使用gem。把它轉(zhuǎn)變?yōu)橐粋€(gè)項(xiàng)目,再封裝一個(gè)RESTful API就可以了。當(dāng)你的其它服務(wù)使用這個(gè)API的時(shí)候,它就會(huì)變得非常容器。最后你可以把這個(gè)項(xiàng)目放在容器中。

U:好了,現(xiàn)在我已經(jīng)得到了幾十個(gè)難以管理的服務(wù),現(xiàn)在該怎么辦?

P:Yeah,我提到的Kubernetes。它可以讓你協(xié)調(diào)所有的服務(wù)。

U:交給Kubernetes進(jìn)行調(diào)度?

P:是啊,你的這些服務(wù)并不是每時(shí)每刻都是可靠的,所以你需要有多個(gè)『副本』。Kubernetes就是讓這些服務(wù)分布在你的集群的多臺(tái)主機(jī)上,以保證服務(wù)的可靠性。

U:我需要一個(gè)集群呢?

P:是啊,為了可靠性。Kubernetes會(huì)幫你管理。Kubernetes是谷歌的一個(gè)開源項(xiàng)目,它有使用到etcd。

U:什么是etcd?

P:它是Raft的實(shí)現(xiàn)。

U:好了,什么是Raft?

P:它就像Paxos。

U:好,什么是Paxos?

P:Paxos就是沒有人理解或使用的上世紀(jì)70年代老的分布式共識(shí)協(xié)議。

U:太好了,謝謝你告訴我。Raft是什么?

P:由于沒有人理解Paxos,所以Diego....

U:哦,你認(rèn)識(shí)他嗎?

P:不,他在CoreOS工作。換句話說,因?yàn)镻axos太難了,Diego就在他的博士論文中發(fā)布了Raft。聰明的家伙。之后他寫了etcd作為實(shí)現(xiàn),Aphyr說,這不是狗屎。

[page]

U:什么是Aphyr?

P:Aphyr是那家伙昵稱,“就叫我這個(gè)名字吧。” 你要知道,關(guān)于分布式系統(tǒng)和BDSM的人?

U:什么?你說BDSM?

P:是啊,BDSM。那在舊金山。每個(gè)人都向往分布式系統(tǒng)和BDSM。

U:嗯,OK。他寫過Katy Perry的歌曲?

P:不,他寫了一組博客文章有關(guān)如何在每個(gè)數(shù)據(jù)庫(kù)發(fā)生故障時(shí)CAP。

U:什么是CAP?

P:CAP定理。CAP 理論說在一個(gè)系統(tǒng)中對(duì)某個(gè)數(shù)據(jù)不存在一個(gè)算法同時(shí)滿足一致性,可用性和分區(qū)容忍性。

U:OK,所有數(shù)據(jù)庫(kù)發(fā)生故障時(shí)CAP?這是什么意思?

P:就像Mongo。

U:我以為Mongo was web scale?(此處有梗http://www.mongodb-is-web-scale.com/是個(gè)Mongo網(wǎng)站)

P:沒有其他人會(huì)這么做。

U:好了,那 etcd?

P:是啊, etcd是一個(gè)分布式key-value存儲(chǔ)。

U:哦,就像Redis。

P:不,一點(diǎn)都不像Redis。etcd是分布式的。

U:好的,這是一個(gè)分布式 key-value存儲(chǔ)。

P:Kubernetes設(shè)置一個(gè)使用etcd作為消息總線標(biāo)準(zhǔn)的5個(gè)節(jié)點(diǎn)集群。它結(jié)合了Kubernetes自己的服務(wù),并提供一個(gè)非常彈性的業(yè)務(wù)流程體系。

U:5個(gè)節(jié)點(diǎn)?我有一個(gè)應(yīng)用程序。我做這些該需要多少臺(tái)機(jī)器啊?

P: 嗯,你將有大約12個(gè)服務(wù),當(dāng)然,你需要冗余副本,幾個(gè)負(fù)載均衡的集群etcd,你的數(shù)據(jù)庫(kù)和kubernetes集群。因此,需要運(yùn)行50個(gè)容器。

U:擦!

P:沒什么大不了!容器是非常高效的,所以你應(yīng)該能夠分發(fā)這些跨越在8臺(tái)服務(wù)器上!是不是很神奇呢?

U:這就是把它的一種方式。而完成這一切,我就可以簡(jiǎn)單地部署我的應(yīng)用程序?

P:當(dāng)然。我的意思是,存儲(chǔ)仍然是Docker和Kubernetes一個(gè)未解決的問題,并且網(wǎng)絡(luò)也會(huì)有不少問題,但你基本上還沒到那步!

U:我明白。好吧,我想我會(huì)努力得到他。

P:非常好!

U:感謝解釋它。

P:沒問題。

U:請(qǐng)?jiān)试S讓我再說復(fù)述一遍,看看是否我的理解是否正確的。

P:當(dāng)然可以。

U:我只需要將我簡(jiǎn)單的CRUD應(yīng)用程序分割成12個(gè)微服務(wù),每個(gè)都有自己的API,每個(gè)微服務(wù)調(diào)用其中其他的API,而且彈性處理失敗,并把它們放到Docker容器中。Docker容器又運(yùn)行于CoreOS之上,并分布在集群的8臺(tái)機(jī)器上,同時(shí)使用運(yùn)行etcd的Kubernetes集群來調(diào)度他們,再解決『網(wǎng)絡(luò)和存儲(chǔ)』難題,然后我不斷地提供每個(gè)微服務(wù)的多個(gè)冗余副本到我的集群。是不是這樣?

P:是!是不是很炫酷?

U:我要用回Heroku。

鏈接已復(fù)制,快去分享吧

企業(yè)網(wǎng)版權(quán)所有?2010-2024 京ICP備09108050號(hào)-6京公網(wǎng)安備 11010502049343號(hào)

  • <menuitem id="jw4sk"></menuitem>

    1. <form id="jw4sk"><tbody id="jw4sk"><dfn id="jw4sk"></dfn></tbody></form>
      主站蜘蛛池模板: 两当县| 绥中县| 田阳县| 贵阳市| 海伦市| 灵丘县| 本溪| 横山县| 昌邑市| 清徐县| 杂多县| 泽普县| 江阴市| 清水河县| 奉新县| 亳州市| 孟村| 磴口县| 平泉县| 钟祥市| 蛟河市| 凌源市| 昭觉县| 莱芜市| 石门县| 博湖县| 颍上县| 雅安市| 广宗县| 郓城县| 库尔勒市| 筠连县| 赞皇县| 温泉县| 义马市| 西充县| 郧西县| 兰西县| 刚察县| 墨竹工卡县| 门头沟区|