精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

12 分鐘從頭搭建一個完整的Rails應用

云計算
從無到有搭建一個完整的 Rails 應用可以在12分鐘內完成,這種速度放在任何場合都是令人印象深刻的。能獲得一個免費的持續集成環境,可以查看不同版本的應用之間的區別,不會影響到同主機上已經在運行的應用,這些功能強大到難以置信,讓我感到很興奮。在文章的最后,我只希望你能感受到我的興奮!

在 Docker 和 Ansible 的技術社區內存在著很多好玩的東西,我希望在你閱讀完這篇文章后也能像我們一樣熱愛它們。當然,你也會收獲一些實踐知識,那就是如何通過部署 Ansible 和 Docker 來為 Rails 應用搭建一個完整的服務器環境。

也許有人會問:你怎么不去用 Heroku?首先,我可以在任何供應商提供的主機上運行 Docker 和 Ansible;其次,相比于方便性,我更偏向于喜歡靈活性。我可以在這種組合中運行任何程序,而不僅僅是 web 應用。最后,我骨子里是一個工匠,我非常了解如何把零件拼湊在一起工作。Heroku 的基礎模塊是 Linux Container,而 Docker 表現出來的多功能性也是基于這種技術。事實上,Docker 的其中一個座右銘是:容器化是新虛擬化技術。

[[152523]]

為什么使用 Ansible?

我重度使用 Chef 已經有4年了(LCTT:Chef 是與 puppet 類似的配置管理工具),基礎設施即代碼的觀念讓我覺得非常無聊。我花費大量時間來管理代碼,而不是管理基礎設施本身。不論多小的改變,都需要相當大的努力來實現它。使用 Ansible,你可以一手掌握擁有可描述性數據的基礎架構,另一只手掌握不同組件之間的交互作用。這種更簡單的操作模式讓我把精力集中在如何將我的技術設施私有化,提高了我的工作效率。與 Unix 的模式一樣,Ansible 提供大量功能簡單的模塊,我們可以組合這些模塊,達到不同的工作要求。

除了 Python 和 SSH,Ansible 不再依賴其他軟件,在它的遠端主機上不需要部署代理,也不會留下任何運行痕跡。更厲害的是,它提供一套內建的、可擴展的模塊庫文件,通過它你可以控制所有的一切:包管理器、云服務供應商、數據庫等等等等。

為什么要使用 Docker?

Docker 的定位是:提供最可靠、最方便的方式來部署服務。這些服務可以是 mysqld,可以是 redis,可以是 Rails 應用。先聊聊 git 吧,它的快照功能讓它可以以最有效的方式發布代碼,Docker 的處理方法與它類似。它保證應用可以無視主機環境,隨心所欲地跑起來。

一種最普遍的誤解是人們總是把 Docker 容器看成是一個虛擬機,當然,我表示理解你們的誤解。Docker 滿足單一功能原則,在一個容器里面只跑一個進程,所以一次修改只會影響一個進程,而這些進程可以被重用。這種模型參考了 Unix 的哲學思想,當前還處于試驗階段,并且正變得越來越穩定。

設置選項

不需要離開終端,我就可以使用 Ansible 來在這些云平臺中生成實例:Amazon Web Services,Linode,Rackspace 以及 DigitalOcean。如果想要更詳細的信息,我于1分25秒內在位于阿姆斯特丹的2號數據中心上創建了一個 2GB 的 DigitalOcean 虛擬機。另外的1分50秒用于系統配置,包括設置 Docker 和其他個人選項。當我完成這些基本設定后,就可以部署我的應用了。值得一提的是這個過程中我沒有配置任何數據庫或程序開發語言,Docker 已經幫我把應用所需要的事情都安排好了。

Ansible 通過 SSH 為遠端主機發送命令。我保存在本地 ssh 代理上面的 SSH 密鑰會通過 Ansible 提供的 SSH 會話分享到遠端主機。當我把應用代碼從遠端 clone 下來,或者上傳到遠端時,我就不再需要提供 git 所需的證書了,我的 ssh 代理會幫我通過 git 主機的身份驗證程序的。

Docker 和應用的依賴性

我發現有一點挺有意思的:大部分開發者非常了解他們的應用需要什么版本的編程語言,這些語言依賴關系有多種形式:Python 的包、Ruby 的打包系統 gems、node.js 的模塊等等,但與數據庫或消息隊列這種重要的概念相比起來,這些語言就處于很隨便的境地了——隨便給我個編程語言環境,我都能把數據庫和消息隊列系統跑起來。我認為這是 DevOps 運動(它旨在促進開發與運維團隊的和諧相處)的動機之一,開發者負責搭建應用所需要的環境。Docker 使這個任務變得簡單明了直截了當,它為現有環境加了實用的一層配置。

我的應用依賴于 MySQL 5.5和 Redis 2.8,依賴關系放在“.dockercontainerdependencies”文件里面:

  1. gerhard/mysql:5.5 
  2. gerhard/redis:2.8 

Ansible 會查看這個文件,并且通知 Docker 加載正確的鏡像,然后在容器中啟動。它還會把這些服務容器鏈接到應用容器。如果你想知道 Docker 容器的鏈接功能是怎么工作的,可以參考Docker 0.6.5 發布通知.

我的應用包括一個 Dockerfile,它詳細指定了 Ruby Docker 鏡像的信息,這里面的步驟能夠保證把正確的 Ruby 版本加載到鏡像中。

  1. FROM howareyou/ruby:2.0.0-p353 
  2.   
  3. ADD ./ /terrabox 
  4.   
  5. RUN \ 
  6.   . /.profile ;\ 
  7.   rm -fr /terrabox/.git ;\ 
  8.   cd /terrabox ;\ 
  9.   bundle install --local ;\ 
  10.   echo '. /.profile && cd /terrabox && RAILS_ENV=test bundle exec rake db:create db:migrate && bundle exec rspec' > /test-terrabox ;\ 
  11.   echo '. /.profile && cd /terrabox && export RAILS_ENV=production && rake db:create db:migrate && bundle exec unicorn -c config/unicorn.rails.conf.rb' > /run-terrabox ;\ 
  12. # END RUN 
  13.   
  14. ENTRYPOINT ["/bin/bash"
  15. CMD ["/run-terrabox"
  16.   
  17. EXPOSE 3000 

第一步是復制應用的所有代碼到 Docker 鏡像,加載上一個鏡像的全局環境變量。這個例子中的 Ruby Docker 鏡像會加載 PATH 配置,這個配置能確保鏡像加載正確的 Ruby 版本。

接下來,刪除 git 歷史,Docker 容器不需要它們。我安裝了所有 Ruby 的 gems,創建一個名為“/test-terrabox”的命令,這個命令會被名為“test-only”的容器執行。這個步驟的目的是能正確解決應用和它的依賴關系,讓 Docker 容器正確鏈接起來,保證在真正的應用容器啟動前能通過所有測試項目。

CMD 這個步驟是在新的 web 應用容器啟動后執行的。在測試環節結束后馬上就執行/run-terrabox命令進行編譯。

最后,Dockerfile 為應用指定了一個端口號,將容器內部端口號為3000的端口映射到主機(運行著 Docker 的機器)的一個隨機分配的端口上。當 Docker 容器里面的應用需要響應來自外界的請求時,這個端口可用于反向代理或負載均衡。

Docker 容器內運行 Rails 應用

沒有本地 Docker 鏡像,從零開始部署一個中級規模的 Rails 應用大概需要100個 gems,進行100次整體測試,在使用2個核心實例和2GB內存的情況下,這些操作需要花費8分16秒。裝上 Ruby、MySQL 和 Redis Docker 鏡像后,部署應用花費了4分45秒。另外,如果從一個已存在的主應用鏡像編譯出一個新的 Docker 應用鏡像出來,只需花費2分23秒。綜上所述,部署一套新的 Rails 應用,解決其所有依賴關系(包括 MySQL 和 Redis),只需花我2分鐘多一點的時間就夠了。

需要指出的一點是,我的應用上運行著一套完全測試套件,跑完測試需要花費額外1分鐘時間。盡管是無意的,Docker 可以變成一套簡單的持續集成環境,當測試失敗后,Docker 會把“test-only”這個容器保留下來,用于分析出錯原因。我可以在1分鐘之內和我的客戶一起驗證新代碼,保證不同版本的應用之間是完全隔離的,同操作系統也是隔離的。傳統虛擬機啟動系統時需要花費好幾分鐘,Docker 容器只花幾秒。另外,一旦一個 Dockedr 鏡像編譯出來,并且針對我的某個版本的應用的測試都被通過,我就可以把這個鏡像提交到一個私有的 Docker Registry 上,可以被其他 Docker 主機下載下來并啟動一個新的 Docker 容器,而這不過需要幾秒鐘時間。

總結

Ansible 讓我重新看到管理基礎設施的樂趣。Docker 讓我有充分的信心能穩定處理應用部署過程中最重要的步驟——交付環節。雙劍合璧,威力無窮。

從無到有搭建一個完整的 Rails 應用可以在12分鐘內完成,這種速度放在任何場合都是令人印象深刻的。能獲得一個免費的持續集成環境,可以查看不同版本的應用之間的區別,不會影響到同主機上已經在運行的應用,這些功能強大到難以置信,讓我感到很興奮。在文章的最后,我只希望你能感受到我的興奮!

我在2014年1月倫敦 Docker 會議上講過這個主題,已經分享到 Speakerdeck了。

如果想獲得更多的關于 Ansible 和 Docker 的內容,請訂閱 changlog 周報,它會在每周六推送一周最有價值的關于這兩個主題的新聞鏈接。

如果你想為我們的 Changlog 寫一篇文章,請使用 Draft repo,他們會幫到你的。

下次見,Gerhard。

博文出處:https://linux.cn/article-4290-1-rel.html

責任編輯:Ophira 來源: linux.cn
相關推薦

2022-11-14 08:01:48

2021-07-14 17:39:46

ReactRails API前端組件

2022-10-08 00:00:00

AdminUser數據庫鑒權

2023-02-01 08:04:07

測試flask網頁

2024-07-29 12:47:32

2014-12-24 11:34:23

CoreOSWordPress集群部署

2024-06-13 08:36:11

2022-02-22 11:57:32

BOAWeb服務器

2020-12-07 16:56:35

Rails

2015-03-10 11:21:44

JavaScript組JavaScript

2024-08-15 14:48:57

2021-08-09 10:36:49

Python搜索引擎命令

2020-07-03 10:21:48

Go框架Docker

2009-10-09 09:37:46

2018-11-08 13:53:15

Flink程序環境

2022-06-28 12:35:21

DockerPython

2022-03-01 11:38:51

RPC框架后端

2020-09-25 18:41:02

GitHub開發倉庫

2021-09-08 10:05:17

服務器架構數據

2025-02-10 11:27:37

點贊
收藏

51CTO技術棧公眾號

一区二区三区日韩精品| 日本不卡一区二区三区| 亚洲成人网在线| 少妇高潮喷水久久久久久久久久| 国产午夜在线观看| 国产在线一区二区| 91精品国产高清久久久久久| 精品成人无码一区二区三区| 久久久精品区| 欧美午夜久久久| 亚洲欧美一二三| 全部免费毛片在线播放网站| 狠狠色狠狠色合久久伊人| 欧美精品videossex性护士| 国产精品无码一区二区三区| 97久久精品一区二区三区的观看方式| 午夜日韩在线电影| 一区二区视频在线免费| 亚洲色图欧美视频| 国产美女精品一区二区三区| 日本精品在线视频| 免看一级a毛片一片成人不卡| 精品国产中文字幕第一页| 日韩欧美亚洲另类制服综合在线| 999精品网站| 超碰在线97国产| 亚洲同性gay激情无套| 欧美极品一区二区| 囯产精品久久久久久| 九九**精品视频免费播放| 国产91精品青草社区| 免费网站观看www在线观| 欧美mv日韩| 国产亚洲精品va在线观看| 伊人久久一区二区三区| 91麻豆精品| 欧美日本在线一区| 日本美女高潮视频| 日韩大尺度黄色| 五月综合激情婷婷六月色窝| 久久亚洲a v| 黄色网在线免费观看| 国产精品久久免费看| 日本成人黄色免费看| 日本福利片高清在线观看| 成人免费高清在线| av蓝导航精品导航| 精品国精品国产自在久不卡| 久久国产生活片100| 国产精品视频久久久久| 伊人中文字幕在线观看| 亚洲欧美日韩在线观看a三区| 97久久精品视频| 精品深夜av无码一区二区老年| 一区二区三区网站| 久久69精品久久久久久久电影好| 神马久久精品综合| 国产精品久久久久9999赢消| 色噜噜国产精品视频一区二区| 99久久99久久精品免费| 成人高清av| 色yeye香蕉凹凸一区二区av| 亚洲精品卡一卡二| 欧美一区激情| 久久久久久久久久久av| 日韩欧美性视频| 亚洲欧美日韩综合国产aⅴ| 欧美一区视频在线| 波多野结衣一区二区三区四区| 日韩高清不卡一区二区| 国产精品老牛影院在线观看 | 亚洲综合男人的天堂| 国产又粗又长又爽视频| av电影在线免费| 黑人与娇小精品av专区| 国产a级片免费观看| 久久99国产精品二区高清软件| 欧美精品1区2区| 久久久国产精品久久久| 欧美韩一区二区| 亚洲无限av看| www.99re7| 亚洲精品色图| 国产黑人绿帽在线第一区| 一级日韩一级欧美| 国产成人午夜片在线观看高清观看| 国产精品免费在线播放| 激情综合闲人网| 亚洲欧美一区二区视频| 国产精品无码人妻一区二区在线| 91精品影视| 日韩视频一区在线观看| 扒开jk护士狂揉免费| 久久久久亚洲| 欧美一级高清免费| aa视频在线免费观看| 99久久婷婷国产精品综合| 亚洲春色在线视频| 超碰中文在线| 欧美日韩精品免费| 妖精视频一区二区| 国产韩日影视精品| 欧美做受高潮1| 国产区精品在线| 久久久久99精品国产片| 国产免费一区二区三区四在线播放| 白浆视频在线观看| 欧美精品高清视频| 日韩人妻一区二区三区| 国内精品99| 国产精品你懂得| 天堂资源中文在线| 伊人婷婷欧美激情| 亚洲一级片网站| 偷拍精品福利视频导航| 欧美成人小视频| 久久久久亚洲视频| av午夜一区麻豆| 欧美少妇一区二区三区| 精品日本视频| 日韩精品视频观看| 久久久全国免费视频| 麻豆成人91精品二区三区| 久久99精品久久久久久秒播放器| 成人在线网址| 欧美日韩一区二区三区在线看| 亚洲av成人片色在线观看高潮 | 一区二区三区麻豆| 91丝袜美腿高跟国产极品老师 | 日本美女一区二区| 久久综合中文色婷婷| 欧美大片黄色| 欧美一区二区三区日韩视频| 亚洲天堂最新地址| 天堂av在线一区| 欧美日韩一区二区三区在线观看免 | www在线观看免费| 日韩精品成人在线观看| 久久久精品久久久| 国产又粗又猛又黄又爽| 国产精品的网站| 日本人视频jizz页码69| 国产日产精品_国产精品毛片| 欧洲日韩成人av| 亚洲色偷精品一区二区三区| 欧美日韩免费看| 日韩网站在线播放| 亚洲自拍另类| 欧美日韩高清免费| 新片速递亚洲合集欧美合集| 亚洲欧美日韩国产成人| 丁香社区五月天| 久久精品欧美日韩| 好男人www社区| 欧美性感美女一区二区| 国产精品自拍偷拍| 久草中文在线| 欧美一区二区视频网站| 国产性xxxx| 成人av在线一区二区三区| 一卡二卡三卡视频| 日本精品影院| 国产成人精品久久久| av在线播放网| 制服丝袜亚洲精品中文字幕| 青青草原在线免费观看视频| 丁香亚洲综合激情啪啪综合| 国产婷婷一区二区三区| 亚洲精品播放| 国产精品扒开腿做爽爽爽视频| 电影av一区| 337p亚洲精品色噜噜| 国产在线拍揄自揄拍| 91偷拍与自偷拍精品| 天天碰免费视频| 91精品动漫在线观看| 国产a一区二区| 在线免费三级电影网站| 中文字幕在线观看亚洲| 亚洲国产av一区二区| 狠狠躁夜夜躁人人爽超碰91| 无码国产69精品久久久久同性| 久久黄色级2电影| 免费无码毛片一区二三区| 国产91精品对白在线播放| 国产色视频一区| 欧美色图天堂| 亚洲天堂2020| 国产三区在线播放| 欧美性xxxxxxxxx| 艳妇荡乳欲伦69影片| 97久久超碰国产精品| 天天视频天天爽| 黄色精品网站| 亚洲乱码一区二区三区三上悠亚 | 精品区一区二区| 欧美精品韩国精品| 亚洲婷婷综合久久一本伊一区| 精品一区二区视频在线观看| 麻豆一区二区三区| 久激情内射婷内射蜜桃| 国产精品黑丝在线播放| 久久久久久国产精品免费免费| 欧美另类激情| 欧美性受xxxx白人性爽| 国产三级在线播放| 亚洲系列中文字幕| www.日本在线观看| 欧美综合一区二区三区| 久久精品国产亚洲av香蕉| 国产精品视频观看| 爱爱的免费视频| 国产成人免费视频一区| 自拍偷拍21p| 久久成人免费| 日本精品久久久久久久久久| 亚洲国产老妈| 亚洲第一综合| 精品一区在线| 国产亚洲自拍偷拍| 最新国产精品精品视频| 成人xxxxx| 欧美黄色成人| 国产精品video| 日韩激情电影免费看| 欧美另类交人妖| 欧美成人三区| 这里只有精品丝袜| 国产在线自天天| 亚洲欧美制服另类日韩| 手机看片1024国产| 精品国产欧美一区二区| 99在线观看免费| 67194成人在线观看| 最新黄色网址在线观看| 色乱码一区二区三区88| 久久一区二区三区视频| 精品美女永久免费视频| 国产精品成人aaaa在线| 亚洲综合视频网| 久久无码精品丰满人妻| 夜夜精品视频一区二区| 麻豆一区产品精品蜜桃的特点| 一区二区三区中文字幕电影| 欧美一级特黄高清视频| 日韩理论片在线| 免费国产羞羞网站美图| 亚洲美女偷拍久久| 午夜69成人做爰视频| 亚洲精品一二三区| 91成人福利视频| 一区二区成人在线观看| 激情五月少妇a| 亚洲国产精品一区二区久久恐怖片 | 日本欧美国产在线| 高清成人在线| 国产精品久久久久一区二区| 欧美日韩视频免费看| 成人性生交大片免费看小说| 欧美国产亚洲精品| 国产高清不卡av| 欧美久久香蕉| 日韩精品最新在线观看| 希岛爱理av一区二区三区| 最新视频 - x88av| 欧美日韩蜜桃| 自慰无码一区二区三区| 日韩有码一区二区三区| 不卡的在线视频| 国产精品综合av一区二区国产馆| 国产a级片视频| 久久久久久一二三区| 亚洲女同二女同志奶水| 一区二区三区免费看视频| 日本系列第一页| 色播五月激情综合网| 国产又粗又大又爽| 日韩精品一区二| 欧美香蕉爽爽人人爽| 色多多国产成人永久免费网站| 亚洲精品白浆| 日韩av电影手机在线| 国产亚洲字幕| 久久涩涩网站| 国产韩国精品一区二区三区| 国产中文字幕二区| 另类调教123区| 亚洲欧美高清在线| 日本一区二区三级电影在线观看 | 奇米777第四色| 国产日韩欧美精品一区| 五月婷婷一区二区| 色噜噜偷拍精品综合在线| 精品久久久久中文慕人妻 | 免费毛片视频网站| 亚洲人成影院在线观看| 四虎精品永久在线| 日韩一区二区在线观看视频播放| 久久av少妇| 欧美激情乱人伦| 欧美天堂在线| 久久一区二区三区av| 综合久久久久| 男女爽爽爽视频| 91原创在线视频| 福利所第一导航| 欧美精品日韩一本| 毛片在线能看| 97视频色精品| 欧美日韩午夜电影网| 日韩视频精品| 亚洲综合电影一区二区三区| 国偷自产av一区二区三区麻豆| 欧美国产禁国产网站cc| 国产午夜在线播放| 日韩欧美一二区| 麻豆免费在线视频| 国产精品久久77777| 少妇高潮一区二区三区| 福利在线一区二区| 国产精品性做久久久久久| 久久久久久久久福利| 日韩欧中文字幕| 国产成人自拍一区| 欧美国产一区二区三区| 国产精品日本一区二区不卡视频| 日韩av图片| 视频一区中文字幕国产| 男生裸体视频网站| 亚洲综合激情小说| 精品国产免费无码久久久| 久久久成人av| 9999精品免费视频| 伊人久久大香线蕉av一区| 免费看欧美美女黄的网站| 久久久久无码精品国产sm果冻| 色综合亚洲欧洲| 美国成人毛片| 国产精品流白浆视频| 国产欧美日韩精品一区二区免费| 久久美女福利视频| 26uuu亚洲| 9i精品福利一区二区三区| 亚洲男人天堂2023| av有声小说一区二区三区| 欧美日韩最好看的视频| 日韩av中文字幕一区二区三区| 久久久视频6r| 欧美三级视频在线观看| 欧美成人三区| 91手机在线播放| 悠悠资源网久久精品| 国产一级伦理片| 日韩欧美中文在线| 国产永久av在线| 国产精品一区二区电影| 婷婷亚洲综合| 日本人dh亚洲人ⅹxx| 亚洲高清视频的网址| 天堂在线一二区| 国产精品高清在线观看| 欧美一区二区三| 91香蕉视频在线观看视频| 亚洲一二三专区| 美女欧美视频在线观看免费 | 亚洲欧美日韩久久| 亚洲AV无码一区二区三区性| 久久免费成人精品视频| 婷婷精品在线| 中文字幕亚洲欧洲| 亚洲一级不卡视频| 国产视频第一页在线观看| 成人在线中文字幕| 亚洲精品免费观看| 手机看片日韩av| 欧美大肚乱孕交hd孕妇| 色偷偷色偷偷色偷偷在线视频| 天天人人精品| 国产福利精品导航| 日韩美一区二区| 久久亚洲欧美日韩精品专区 | 尤物一区二区三区| 成人晚上爱看视频| 中文人妻熟女乱又乱精品| 毛片精品免费在线观看| 亚洲成aⅴ人片久久青草影院| 色www免费视频| 激情亚洲一区二区三区四区 | 国内外成人免费激情在线视频网站 | 黑人巨大精品欧美一区| 日韩成人av毛片| 日韩在线小视频| 日韩一级中文字幕| 一区二区三区欧美| 国产精品乱码久久久| 欧美综合激情网| 午夜国产精品视频| 国产黄色大片免费看| 精品国产一区二区三区忘忧草 | 欧美男男video|