偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

現(xiàn)代“十二要素應(yīng)用”與Docker

云計(jì)算
“十二要素應(yīng)用”為開(kāi)發(fā)SaaS應(yīng)用提供了方法上的指導(dǎo),而Docker能夠提供打包依賴,解耦后端服務(wù)等特性,使得兩者非常吻合。這篇文章介紹了Docker特性怎樣滿足了開(kāi)發(fā)“十二要素應(yīng)用”的對(duì)應(yīng)要點(diǎn)。

“十二要素應(yīng)用”為開(kāi)發(fā)SaaS應(yīng)用提供了方法上的指導(dǎo),而Docker能夠提供打包依賴,解耦后端服務(wù)等特性,使得兩者非常吻合。這篇文章介紹了Docker特性怎樣滿足了開(kāi)發(fā)“十二要素應(yīng)用”的對(duì)應(yīng)要點(diǎn)。

Docker非常適合開(kāi)發(fā)“十二要素應(yīng)用”。

“十二要素應(yīng)用”為構(gòu)建SaaS應(yīng)用提供了方法論,是由知名PaaS云計(jì)算平臺(tái)Heroku的創(chuàng)始人Adam Wiggins提出的。請(qǐng)參考這篇文章。

Dockerfile與docker-compose.yml正在成為用代碼定義服務(wù)的標(biāo)準(zhǔn),通過(guò)它們可以定義服務(wù)的所有內(nèi)容:依賴、環(huán)境、端口、各種進(jìn)程以及后端服務(wù)。

Docker鏡像和容器為操作系統(tǒng)提供了保證,使得開(kāi)發(fā)環(huán)境和生產(chǎn)環(huán)境可以有效地保持一致。

這篇文章簡(jiǎn)單地介紹了Docker是怎樣滿足“十二要素應(yīng)用”的核心要點(diǎn)的。它解釋了用Docker開(kāi)發(fā)一個(gè)典型的“Rails/Postgres/Redis/web/worker”所應(yīng)用的技術(shù)。

后續(xù)文章將通過(guò)代碼深入介紹如何應(yīng)用這些技術(shù)。

II. 依賴—顯示地聲明和隔離依賴關(guān)系

Docker鏡像基于顯示的Dockerfile構(gòu)建,而Docker容器作為獨(dú)立的運(yùn)行環(huán)境。

Dockerfile提供了顯示聲明基礎(chǔ)操作系統(tǒng)的方法(FROM), 而且通過(guò)運(yùn)行命令來(lái)安裝附加的系統(tǒng)包以及應(yīng)用的依賴包(RUN)。

通過(guò)這些方法,你可以聲明你需要ubuntu 14.04、Ruby 2.2.2、Node 0.11,然后一次性安裝。

III. 配置—在環(huán)境中儲(chǔ)存配置

Docker容器非常依賴Linux的環(huán)境變量進(jìn)行配置。

docker-compose.yml有一個(gè)環(huán)境變量的哈希表,你可以通過(guò)它顯示的定義容器的環(huán)境變量。這些默認(rèn)的或者未定義的值將在運(yùn)行時(shí)從主機(jī)中繼承。

另外,還有Dokckerfile的ENV命令以及『docker run –env=[]』和『docker run –env-file=[]』運(yùn)行選項(xiàng)可以設(shè)置環(huán)境變量。

通過(guò)這些方法,你可以聲明你的應(yīng)用需要環(huán)境變量GITHUB_AUTH_TOKEN。

VII. 端口綁定—通過(guò)端口綁定來(lái)提供服務(wù)

Docker非常依賴端口綁定。

docker-compose.yml有一個(gè)端口陣列,可以通過(guò)它顯示的定義“主機(jī):容器”的端口綁定。『docker run –p HOST:CONTAINER』讓你可以在運(yùn)行時(shí)定義端口綁定。

通過(guò)這些方法,你可以聲明你的應(yīng)用的網(wǎng)絡(luò)服務(wù)器將監(jiān)聽(tīng)端口5000,而且你可以通過(guò)主機(jī)的端口5000獲取服務(wù)。

IV. 后端服務(wù)—把后端服務(wù)當(dāng)作附加資源

Docker容器與其它容器幾乎完全隔離,所以需要通過(guò)網(wǎng)絡(luò)與后端服務(wù)進(jìn)行通信。

docker-compse.yml有一個(gè)鏈接哈希表,你可以通過(guò)它指定你的應(yīng)用所需要依賴的其他容器服務(wù)。‘docker-compose up’命令將首先開(kāi)啟這些后端服務(wù),然后配置應(yīng)用容器中網(wǎng)絡(luò)連接信息的環(huán)境變量。

通過(guò)這些方法,你可以聲明你的應(yīng)用需要Postgres 9.4和Redis 3.0服務(wù),讓你的應(yīng)用通過(guò)主機(jī)名和端口號(hào)與他們建立連接。

VI. 進(jìn)程—以一個(gè)或者多個(gè)無(wú)狀態(tài)進(jìn)程運(yùn)行應(yīng)用

默認(rèn)情況下,Docker容器是不帶儲(chǔ)存的進(jìn)程。

docker-compose.yml定義了一系列服務(wù),每一個(gè)服務(wù)都有自己的鏡像或者構(gòu)建文件(Dockerfile)以及命令。

通過(guò)這些方法,你可以聲明你的應(yīng)用同時(shí)有一個(gè)網(wǎng)絡(luò)進(jìn)程和工作進(jìn)程。

XII. 管理進(jìn)程—后臺(tái)管理任務(wù)當(dāng)做一次性進(jìn)程運(yùn)行

Docker鏡像可以很容易地運(yùn)行一次性進(jìn)程。

‘docker run myapp CMD’可以在與你的網(wǎng)絡(luò)進(jìn)程一致的環(huán)境中運(yùn)行任意命令。

通過(guò)這些方法,你可以基于你的Postgres數(shù)據(jù)庫(kù)運(yùn)行交互式的bash或者運(yùn)行一次性的’rake db:migrate’進(jìn)程。

現(xiàn)有技術(shù)

若沒(méi)有Docker,OS X的開(kāi)發(fā)工具鏈?zhǔn)沁@樣的:Homebrew作為系統(tǒng)依賴包, Postgres和Redis作為開(kāi)發(fā)服務(wù), Ruby的Bundler作為跨平臺(tái)開(kāi)發(fā)依賴,一系列的Shell腳本和foreman讓所有工具在本地同時(shí)運(yùn)行起來(lái),以及一個(gè)獨(dú)立的基于Linux的構(gòu)建服務(wù)負(fù)責(zé)將應(yīng)用打包到生產(chǎn)環(huán)境。

這樣的工作流并沒(méi)有錯(cuò)誤,但是Docker提供一個(gè)更簡(jiǎn)潔的方式。

有了Dockerfile和docker-compose.yml文件,我們將不再需要任何OS X系統(tǒng)依賴,服務(wù)包或者跨平臺(tái)的語(yǔ)言依賴。一個(gè)簡(jiǎn)單的“dicker-compose up”命令可以提供一個(gè)完整的Linux開(kāi)發(fā)環(huán)境,并且能夠輕易地將“十二要素應(yīng)用”移植到生產(chǎn)機(jī)器。

原文鏈接:http://dockone.io/article/411
 

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

2015-06-30 10:32:55

云計(jì)算應(yīng)用設(shè)計(jì)十二要素

2022-11-21 07:48:04

2023-05-15 07:33:06

云原生自身業(yè)務(wù)云廠商

2023-12-25 15:10:22

云計(jì)算數(shù)字化轉(zhuǎn)型云服務(wù)轉(zhuǎn)型

2024-11-07 09:08:58

2024-11-29 14:08:51

2023-10-26 11:23:42

2013-11-27 09:47:57

應(yīng)用現(xiàn)代化云遷移

2019-07-16 08:02:22

Docker自動(dòng)化容器

2023-03-03 14:06:15

2014-02-28 09:49:11

2022-07-15 08:00:00

安全零信任數(shù)據(jù)泄露

2015-10-29 14:35:21

移動(dòng)設(shè)備現(xiàn)代化

2013-02-21 11:09:55

2020-03-24 07:22:04

物聯(lián)網(wǎng)現(xiàn)代辦公IOT

2011-04-18 14:43:55

2011-09-06 09:08:51

Chrome應(yīng)用

2023-09-28 10:29:04

云應(yīng)用云倉(cāng)庫(kù)

2024-01-17 08:01:28

Docker語(yǔ)法命令

2009-07-17 17:32:09

BSM企業(yè)IT與業(yè)務(wù)摩卡
點(diǎn)贊
收藏

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