因?yàn)閷W(xué)習(xí)rails,使用教程railsBridge,臺(tái)灣的中譯版.地址如下
http://zh-tw.railsbridge.org
其中,在開(kāi)首的章節(jié)里就提到如何設(shè)置初始環(huán)境.關(guān)于git服務(wù)器的選擇,直接推薦使用heroku,剛開(kāi)始直接的理解是他就是類似GitCafe的應(yīng)用,于是沒(méi)有在意,直接去GitCafe上創(chuàng)建了新的倉(cāng)庫(kù),又鼓搗一整子提交,公鑰的問(wèn)題,當(dāng)然遇到一些問(wèn)題,早上起床就解決了.
在繼續(xù)跳躍式閱讀的過(guò)程中發(fā)現(xiàn)教程中說(shuō)過(guò)將應(yīng)用deploy到heroku上,這個(gè)引起了我的警覺(jué),Heroku是一個(gè)托管服務(wù)器?直接集成Git與服務(wù)器的功能,開(kāi)發(fā)人員只需要將程序在本地開(kāi)發(fā)完成,接著部署到該服務(wù)器上,即可展開(kāi)實(shí)際的測(cè)試與使用.這類的應(yīng)用在公司內(nèi)見(jiàn)過(guò),很簡(jiǎn)單.于是,開(kāi)始查詢關(guān)于heroku的說(shuō)明,果不其然.就是云服務(wù).
heroku的地址,先要注冊(cè)才能使用,不過(guò)注冊(cè)使用是免費(fèi)的.
通過(guò)該地址進(jìn)入后根據(jù)引導(dǎo)完成賬號(hào)注冊(cè).超級(jí)簡(jiǎn)單,進(jìn)入后就是一個(gè)創(chuàng)建應(yīng)用的截面,其中就飽含rails應(yīng)用.如下圖

另外,Heroku也提供了一個(gè)自己開(kāi)發(fā)的工具套件,用來(lái)支持應(yīng)用部署,完全是命令行.就連公鑰的添加也直接是通過(guò)命令行進(jìn)行的,就這一點(diǎn)就已經(jīng)非常便捷且節(jié)省時(shí)間.工具條件通過(guò)如下路徑安裝
https://toolbelt.heroku.com/
Linux下直接通過(guò)如下命令行來(lái)安裝
wget -qO-https://toolbelt.heroku.com/install-ubuntu.sh| sh
添加公鑰很方便
heroku keys:add
注:關(guān)于Heroku的說(shuō)明,來(lái)自infoQ,原文在這里,link?
受益于Heroku,Ruby的web應(yīng)用程序部署變得異常簡(jiǎn)單:所有的工作只是在終端上輸入少許命令。無(wú)需郵件,無(wú)需電話,也無(wú)需技術(shù)支持(supportticket)。我們已經(jīng)開(kāi)始在Hashrocket使用Heroku來(lái)托管我們的內(nèi)部執(zhí)行環(huán)境,我可以證明,這是一種你從未經(jīng)歷過(guò)的部署體驗(yàn)。Heroku一出現(xiàn),Capistrano即行將就木了。在完成注冊(cè),并在Heroku的云計(jì)算平臺(tái)上創(chuàng)建一個(gè)新的應(yīng)用實(shí)例之后,部署僅僅是一句:git push heroku master。
這個(gè)push命令觸發(fā)了一個(gè)進(jìn)程:把應(yīng)用程序編譯成一個(gè)獨(dú)立的、只讀的實(shí)例,在Heroku里它被稱為“slug”。它會(huì)自動(dòng)地進(jìn)行測(cè)試來(lái)保證它能正常地啟動(dòng)。被依賴的gem會(huì)被自動(dòng)安裝,并且通過(guò)應(yīng)用程序根目錄下的一個(gè).gemsmanifest文件進(jìn)行維護(hù):這是與普通的Rails應(yīng)用程序的唯一不同之處。同時(shí)需要指出的是,Heroku也支持Merb和Sinatra(實(shí)際上是任何一款Rack)。
一旦push成功,slug就在一個(gè)或多個(gè)slot中被實(shí)例化。這些slot將置于一個(gè)特殊設(shè)計(jì)的網(wǎng)格計(jì)算環(huán)境中,slug在這個(gè)環(huán)境中可以訪問(wèn)數(shù)據(jù)庫(kù)和緩存信息,并且開(kāi)始啟動(dòng)。Heroku唯一支持的數(shù)據(jù)庫(kù)是Postgres。據(jù)James說(shuō),Heroku之所以目前不支持MySQL,是因?yàn)樗€不支持事務(wù)型數(shù)據(jù)描述語(yǔ)言(transactional DDL)的執(zhí)行。
slug激活后,就成為了一個(gè)擁有完整功能的web應(yīng)用,它被稱作“dyno” 。每個(gè)dyno都是網(wǎng)格中服務(wù)器的一個(gè)單獨(dú)進(jìn)程,它包括了應(yīng)用程序代碼、框架、中間件、Rack、應(yīng)用服務(wù)器、Ruby虛擬機(jī)以及POSIX環(huán)境。Dyno使用的應(yīng)用服務(wù)器是經(jīng)過(guò)少許修改的Thin,系統(tǒng)分配給它250M內(nèi)存。