成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

一份Docker的反方辯論——我還是用Heroku好了

codeGoogle / 1563人閱讀

摘要:那都是老一套了。已死已經(jīng)沒(méi)有人用了?,F(xiàn)在所有的一切都在容器化,它是未來(lái)。這是確保它可靠的唯一方式。我現(xiàn)在需要一個(gè)是的,為了穩(wěn)定性。我猜是規(guī)模的對(duì),沒(méi)錯(cuò)。我明白了,好吧,我懂了。那我來(lái)重復(fù)一遍確保我領(lǐng)悟了這些。

這是一篇在國(guó)外社區(qū)非?;鸬奈恼?。由CircleCI創(chuàng)始人所寫(xiě),追逐熱點(diǎn)新技術(shù)的程序員與只想做個(gè)簡(jiǎn)單web應(yīng)用的程序員對(duì)話,Docker到底能否解決簡(jiǎn)單小應(yīng)用的問(wèn)題嗎?Heroku真的歇菜了嗎?我們有請(qǐng)反方辯者登場(chǎng)——

PS,小數(shù)只是勤勞的搬運(yùn)工,文章并不代表數(shù)人云觀點(diǎn):)

本文為兩個(gè)程序員之間的對(duì)話,一個(gè)打算使用Heroku做個(gè)簡(jiǎn)單Web應(yīng)用的傳統(tǒng)程序員,另一個(gè)追捧Docker及各種新技術(shù)的時(shí)髦程序員,前者虛心向后者“請(qǐng)教”的故事……

嗨我老板讓我和你聊聊,我聽(tīng)說(shuō)你很懂Web應(yīng)用?

是的,我現(xiàn)在更沉迷分布式系統(tǒng)。我剛從ContainerCamp 和 Gluecon大會(huì)回來(lái),我正準(zhǔn)備去參加下周的Dockercon。我對(duì)于行業(yè)正在發(fā)生的變化感覺(jué)十分興奮——一切都更簡(jiǎn)單和可靠了,這就是未來(lái)呀!

真酷。目前我只搭建了一個(gè)簡(jiǎn)單的Web應(yīng)用——一個(gè)普通的使用Rails的CRUD應(yīng)用,打算部署到Heroku上去。是不是還是這樣的路子?

哦不。那都是老一套了。Heroku已死——已經(jīng)沒(méi)有人用了。你需要使用Docker,那才是未來(lái)。

哦好吧,那是啥?

Docker是一種容器化的新方式。就像LXC,但是同時(shí)也是一種封裝形式,一個(gè)分布式平臺(tái),工具讓分布式系統(tǒng)變得非常容易。

容……容器?接下來(lái)呢,LXE是啥?

就像steroids上的chroot!

好吧cher——oot又是啥?

好吧,看,Docker,容器化,它是未來(lái),它就像虛擬化但是更快更便宜。

哦就像Vagrant。

不,Vagrant已經(jīng)死了?,F(xiàn)在所有的一切都在容器化,它是未來(lái)。

好吧,所以我不再需要了解虛擬化的東西?

不,你仍然需要虛擬化,因?yàn)槿萜鞑⒉惶峁┮粋€(gè)完全安全的環(huán)境。所以如果你想在多租戶的環(huán)境下跑東西,你還是需要保證你沒(méi)有脫離沙盒的。

好吧,這里我有點(diǎn)迷惑。我們來(lái)說(shuō)一下,所以有一個(gè)類(lèi)似虛擬化的東西叫做容器,我可以把它用在Heroku上面嗎?

Heroku對(duì)Docker是有一些支持,但是我告訴你:Heroku已死,你應(yīng)該把你的容器跑在CoreOS上。

好吧,那是啥?

它是很酷的Host OS,你可以和Docker一起使用。甚至,你不需要Docker,你可以用rkt。

火箭?

不,是rkt

好吧,火箭。

不,它現(xiàn)在叫rkt。完全不一樣,它是一個(gè)可選擇的容器化形式,并不像Docker那樣是捆綁式的,所以它更有編排性。

哦那它好不好嗎?

當(dāng)然非常好,編排性是未來(lái)啊。

好的,那你是如何用它的?

我不知道,我不認(rèn)為現(xiàn)在會(huì)有人用它。

哎,那你說(shuō)說(shuō)剛才提到的CoreOS?

好的,它是你和Docker搭配使用的一個(gè)Host OS。

Host OS又是什么?

Host OS跑你所有的容器。

跑我的容器?

是的,你需要東西來(lái)跑你的容器。所以你搭建像EC2的實(shí)例,你把Core OS放上面,然后運(yùn)行Docker daemon,然后可以把Docker鏡像部署到里面。

這里的哪一部分是容器?

所有都是,看,你把你的應(yīng)用寫(xiě)一個(gè)Dockerfile,把它轉(zhuǎn)變成本地鏡像,然后你可以把它推到任何一個(gè)Docker主機(jī)。

哦,就像Heroku?

不,不是Heroku。我告訴你了,Heroku已經(jīng)死了。你用Docker來(lái)跑你的云。

啥?

是的,它真的很簡(jiǎn)單,看gifee。

Gify?

“人人都可擁有Google那樣的基礎(chǔ)設(shè)施”(Google’s infrastructure foreveryone else)。你用一些現(xiàn)成的工具和堆棧,用容器,然后就可以擁有和Google一樣強(qiáng)大的基礎(chǔ)設(shè)施了。

那為啥我不能直接用Google的東西?

你認(rèn)為六個(gè)月之內(nèi)能搞定嗎?

好吧,沒(méi)有其他人弄這個(gè)東西嗎?我自己不想弄。

亞馬遜有ECS,但是你要寫(xiě)XML或者其他玩意。

那OpenStack上的什么呢?

Ew。

Ew?

Ew。

好吧你看我真的不想自己來(lái)弄。

不,它真的很簡(jiǎn)單,你需要建一個(gè)Kubernetes集群就可以了。

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

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

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

你的意思是啥?你有一個(gè)應(yīng)用,那么你就該有至少8-12個(gè)服務(wù)。

什么?不,只有一個(gè)應(yīng)用,服務(wù)嘛,也只是其中一個(gè)。

不,看看微服務(wù)。它才是未來(lái)。我們做的都是微服務(wù),你把你的整體式應(yīng)用分割成12個(gè)服務(wù),每一塊你做的工作都只是一部分。

這看起來(lái)有點(diǎn)多啊。

這是確保它可靠的唯一方式。如果你的認(rèn)證服務(wù)掛了……

認(rèn)證服務(wù)?我正打算用它,就跟我之前用過(guò)的幾次一樣。

棒極了。用gem,把它放到它的項(xiàng)目里,把RESTful API放上去,然后你的其他服務(wù)也用那個(gè)API,就可以很好地處理失敗和其他事情。把它放到容器里,然后持續(xù)地交付。

好的,然后我就有了成堆的無(wú)法管理的服務(wù),那該怎么辦?

是的,我正在說(shuō)的Kubernetes,會(huì)協(xié)調(diào)你所有的服務(wù)的。

協(xié)調(diào)它們?

是的,你有了這些服務(wù),為了確保它們可靠你需要很多份它們的備份,Kubernetes會(huì)確保你有足夠的備份,在你的fleet里它們是各個(gè)節(jié)點(diǎn)分布式的,所以它們總是可用的。

我現(xiàn)在需要一個(gè)fleet?

是的,為了穩(wěn)定性。但是Kubernetes可以為你管理它,你知道Kubernetes很好用因?yàn)镚oogle建造了它,它跑在etcd上面。

Etcd是啥?

它是RAFT的一個(gè)具體實(shí)現(xiàn)。

好吧,Raft是啥?

它就像Paxos。

好吧,這個(gè)兔子洞到底有多深?我只是想實(shí)現(xiàn)一個(gè)應(yīng)用,哎,好吧,深呼吸,那么Paxos是啥?

Paxos就像一種很古老的70年代的舊分布式協(xié)議,沒(méi)人理解或者使用。

好吧,感謝你告訴我這個(gè)。那么Raft是啥。

因?yàn)闆](méi)人理解Paxos,所以這個(gè)叫diego的家伙……

哦你知道他?

不,他做的是CoreOS,然而,Diego為他的博士論文創(chuàng)造了Raft,因?yàn)镻axos實(shí)在太難了。真是邪惡而聰明的家伙。他又寫(xiě)了etcd作為實(shí)現(xiàn),Aphyr說(shuō)它并不是很糟。

Aphyr是誰(shuí)?

Aphyr是那個(gè)寫(xiě)了“Call Me Maybe”的家伙,你知道,那個(gè)分布式系統(tǒng)和BDSM的家伙。

什么?你說(shuō)BDSM?

是的,在舊金山,每個(gè)人都進(jìn)入了分布式系統(tǒng)和BDSM。

哦,他寫(xiě)了那個(gè)Katy Perry的歌?

不,他寫(xiě)了一系列的關(guān)于每個(gè)數(shù)據(jù)庫(kù)如何掛了CAP的博客

CAP是啥?

CAP定理,它表明你只能在一致性,可用性和隔離性中選擇兩個(gè)。

好吧,所有的數(shù)據(jù)庫(kù)都完敗CAP?這意味著什么?

這意味著它們都是渣渣,就像Mongo。

我猜Mongo是web規(guī)模的?

對(duì),沒(méi)錯(cuò)。

Etcd呢?

Etcd是一個(gè)分布式鍵值存儲(chǔ)。

好吧就像Redis。

不,并不像Redis。Edcd是分布式的,如果網(wǎng)絡(luò)分區(qū)了Redis會(huì)失去它一半的代碼。

好吧,它是分布式鍵值存儲(chǔ)。那為啥它有用?

Kubernetes用etcd建立了一個(gè)標(biāo)準(zhǔn)的5節(jié)點(diǎn)的集群作為一個(gè)消息總線,它包含了Kubernetes一些自己的服務(wù)來(lái)提供一個(gè)有彈性的編排系統(tǒng)。

5個(gè)節(jié)點(diǎn)?我只有一個(gè)應(yīng)用,那么我需要多少個(gè)機(jī)子?

好吧,你要有12個(gè)服務(wù),你也需要一些多余的備份,一些負(fù)載均衡,edcd集群,你的數(shù)據(jù)庫(kù),Kubernetes集群。所以你至少應(yīng)該跑50個(gè)容器。

哦天!

沒(méi)什么大不了的。容器真的非常效率,所以你應(yīng)該可以把他們分布在8個(gè)機(jī)子上,是不是很了不起?

確實(shí)是一個(gè)方法,通過(guò)這個(gè),我是不是可以簡(jiǎn)單地部署我的應(yīng)用了?

當(dāng)然,我是說(shuō),存儲(chǔ)對(duì)于Docker和Kubernetes來(lái)說(shuō)仍然是一個(gè)開(kāi)放的問(wèn)題,網(wǎng)絡(luò)會(huì)承擔(dān)一些工作,但是你基本已經(jīng)可以達(dá)到那個(gè)未來(lái)之地了。

我明白了,好吧,我懂了。

棒極了。

感謝你的這些解釋。

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

那我來(lái)重復(fù)一遍確保我領(lǐng)悟了這些。

好的!

我只需要把我簡(jiǎn)單的CRUD應(yīng)用分割成12個(gè)微服務(wù),每一個(gè)都配有API可以彈性地恢復(fù)它們的錯(cuò)誤,把它們放進(jìn)Docker容器,啟動(dòng)8個(gè)機(jī)器的fleet,均為跑Core OS的Docker主機(jī),用一個(gè)小的跑etcd的Kubernetes的集群來(lái)協(xié)調(diào)它們,明確網(wǎng)絡(luò)和存儲(chǔ)的開(kāi)放問(wèn)題,然后我就可以持續(xù)地給我的fleet交付多個(gè)微服務(wù)的冗余備份,是這樣嗎?

是的,它是不是很棒?

我要回去繼續(xù)Heroku了。

(文章轉(zhuǎn)自:CircleCI blog)

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/26684.html

相關(guān)文章

  • Docker正方登場(chǎng)——未來(lái)正在遠(yuǎn)方……

    摘要:并不是因?yàn)樗情W亮的新事物或者它是一些虛構(gòu)的最佳實(shí)踐,而是因?yàn)橄駚嗰R遜或者已經(jīng)在這上面投入了年的心血,他們告訴了我們?nèi)绾螛?gòu)建真正有規(guī)模的系統(tǒng)。截止目前,我們已經(jīng)部署了由亞馬遜等提供的重量級(jí)虛擬化服務(wù)器。 周一時(shí)候數(shù)人云與大家分享了一篇關(guān)于Docker的反方言論——《一份Docker的反方辯論——我還是用Heroku好了》,一周之后,同樣的作者,又為Docker正名,寫(xiě)了一篇正方言論。D...

    waruqi 評(píng)論0 收藏0
  • Red Hat: API層是微服務(wù)架構(gòu)成功關(guān)鍵

    摘要:作為一項(xiàng)在云中部署應(yīng)用和服務(wù)的新技術(shù)已成為當(dāng)下最新的熱門(mén)話題。曾熱衷于促進(jìn)的綜合軟件棧,說(shuō)該公司對(duì)于微服務(wù)架構(gòu)有著很好的定位。 Microservices作為一項(xiàng)在云中部署應(yīng)用和服務(wù)的新技術(shù)已成為當(dāng)下最新的熱門(mén)話題。但大部分圍繞microservices的爭(zhēng)論都集中在容器或其他技術(shù)是否能很好的實(shí)施微服務(wù),而紅帽說(shuō)API應(yīng)該是重點(diǎn)。 企業(yè)和服務(wù)提供商正在尋找更好的方法將應(yīng)用程序部署在云環(huán)...

    myshell 評(píng)論0 收藏0
  • Hexo+NexT+Heroku十分鐘免費(fèi)博客建站教程

    摘要:就拿本篇教程為例,發(fā)布第一篇文章。十分鐘免費(fèi)博客建站教程如果你沒(méi)有自定義的路徑的話,默認(rèn)生成的文件都會(huì)在目錄下。具體語(yǔ)法請(qǐng)移步官網(wǎng)最后附上我的博客鏈接嚶嚶嚶填坑小窩 title: Hexo+NexT+Heroku十分鐘免費(fèi)博客建站教程date: 2016-10-29 20:57:20author:嚶嚶嚶 前言(上一段廢話抒發(fā)一下情感先) 接觸互聯(lián)網(wǎng)到現(xiàn)在不長(zhǎng)不短也有兩年了,從最開(kāi)始連...

    Gu_Yan 評(píng)論0 收藏0
  • docker 踩坑筆記之 psql: could not connect to server

    摘要:最近在用跑,也遇到了一些坑,這里記錄一下。首先項(xiàng)目然后就開(kāi)始報(bào)錯(cuò)了這里報(bào)錯(cuò)是說(shuō)找不到文件,但我本地運(yùn)行是沒(méi)問(wèn)題的。同樣的,還需要把用戶名修改成和鏡像預(yù)定的一致。打開(kāi)最新生成的文件。本人菜鳥(niǎo)一枚,如有錯(cuò)誤之處,敬請(qǐng)指正,謝謝 最近在用docker跑rails,也遇到了一些坑,這里記錄一下。 首先build項(xiàng)目: docker-compose build 然后就開(kāi)始報(bào)錯(cuò)了: psql: c...

    ddongjian0000 評(píng)論0 收藏0
  • OpenStack和Docker不能,ServerLess能決定云計(jì)算勝負(fù)嗎?

    摘要:彼時(shí),從虛擬化管理到公有云,熱鬧異常。雖然年才明顯放棄公有云的全面競(jìng)爭(zhēng),但在年決定發(fā)起和開(kāi)源項(xiàng)目是,不說(shuō)明確,至少已經(jīng)隱隱覺(jué)得肯定搞不過(guò)亞馬遜了。年前賣(mài)的多火,被視為虛擬主機(jī)的升級(jí)版。當(dāng)然不是新堆棧,而是傳統(tǒng)堆棧。 還記得在十多年前,SaaS鼻祖SalesForce喊出的口號(hào)『No Software』嗎?SalesForce在這個(gè)口號(hào)聲中開(kāi)創(chuàng)了SaaS行業(yè),并成為當(dāng)今市值460億美元的Saa...

    gitmilk 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<