自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

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

云計(jì)算
本文為CircleCI的創(chuàng)始人Paul Biggar回答與一位訪問(wèn)者的對(duì)話,結(jié)論是自己去做軟件部署及維護(hù)的成本是巨大的。文中不乏對(duì)于自建環(huán)境的吐槽,當(dāng)然作為CircleCI的創(chuàng)始人,此文目的是為了讓大家都用CircleCI的產(chǎn)品。對(duì)話有很多知識(shí)和概念非常值得學(xué)習(xí)。

[[142150]]

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

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

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

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

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

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。集裝箱。這就是未來(lái)。這就像虛擬化,但速度更快、更廉價(jià)。

U:Oh,就像Vagrant

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

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

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

U:好吧,我開(kāi)始有點(diǎn)糊涂了。讓我們一起回顧下?,F(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:沒(méi)錯(cuò),那就是Rocket。

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

U:那樣很好?

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

U:好,你如何使用它?

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

U:好吧。那你接著剛才繼續(xù)說(shuō)下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鏡像部署上去。

#p#

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

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

U:啊,就像Heroku?

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

U:什么?

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

U:Gify?

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

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

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

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

P:嗯,亞馬遜有ECS,但你得寫(xiě)煩人的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:什么?沒(méi)有,我只是一個(gè)應(yīng)用程序。為什么有那么多服務(wù)?

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

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

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è)開(kāi)源項(xiàng)目,它有使用到etcd。

U:什么是etcd?

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

U:好了,什么是Raft?

P:它就像Paxos。

U:好,什么是Paxos?

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

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

P:由于沒(méi)有人理解Paxos,所以Diego....

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

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

#p#

U:什么是Aphyr?

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

U:什么?你說(shuō)BDSM?

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

U:嗯,OK。他寫(xiě)過(guò)Katy Perry的歌曲?

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

U:什么是CAP?

P:CAP定理。CAP 理論說(shuō)在一個(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:沒(méi)有其他人會(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:沒(méi)什么大不了!容器是非常高效的,所以你應(yīng)該能夠分發(fā)這些跨越在8臺(tái)服務(wù)器上!是不是很神奇呢?

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

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

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

P:非常好!

U:感謝解釋它。

P:沒(méi)問(wèn)題。

U:請(qǐng)?jiān)试S讓我再說(shuō)復(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集群來(lái)調(diào)度他們,再解決『網(wǎng)絡(luò)和存儲(chǔ)』難題,然后我不斷地提供每個(gè)微服務(wù)的多個(gè)冗余副本到我的集群。是不是這樣?

P:是!是不是很炫酷?

U:我要用回Heroku。

原文鏈接:http://www.dockone.io/article/529

責(zé)任編輯:Ophira 來(lái)源: dockone
相關(guān)推薦

2015-08-03 11:37:45

容器生態(tài)docker未來(lái)

2019-11-27 08:52:13

網(wǎng)易裁員微博

2022-01-07 14:35:17

一碼通大數(shù)據(jù)

2011-10-31 14:29:14

2018-11-08 15:30:04

JavaScriptES6異步

2010-07-09 11:27:40

思科標(biāo)準(zhǔn)

2015-03-31 09:35:41

2015-07-21 10:24:02

Windows RT升級(jí)

2014-01-02 14:04:42

2012-12-28 13:34:16

大數(shù)據(jù)數(shù)據(jù)中心高效

2021-09-03 10:44:42

ThreadLocalObject 數(shù)組

2019-01-02 04:40:19

物聯(lián)網(wǎng)企業(yè)IOT

2024-12-13 16:37:56

SpringBootJava

2016-01-12 17:01:45

Bootstrap原因

2013-08-28 14:16:07

2020-06-08 10:32:10

Windows 10微軟Windows 7

2020-02-17 15:55:22

Office 365

2024-04-24 09:47:36

2018-11-01 13:38:51

Java中斷停止

2015-01-09 10:10:00

Linux
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)