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

Shopify的Docker封裝技術(shù)使用經(jīng)驗(yàn)

云計(jì)算
Shopify是一個(gè)大型的RubyonRails應(yīng)用,其產(chǎn)品服務(wù)器能通過(guò)給1700個(gè)處理核心和6TB RAM分配任務(wù)來(lái)完成每秒處理8000多個(gè)請(qǐng)求。Shpify為了更加便捷、跨平臺(tái)跨版本地進(jìn)行分包任務(wù),采用了時(shí)下炙手可熱的Docker封裝技術(shù)。近日,Shopify在其博客上分享了自己的Docker技術(shù)使用經(jīng)驗(yàn)。

Shopify是一個(gè)大型的RubyonRails應(yīng)用,其產(chǎn)品服務(wù)器能通過(guò)給1700個(gè)處理核心和6TB RAM分配任務(wù)來(lái)完成每秒處理8000多個(gè)請(qǐng)求。Shpify為了更加便捷、跨平臺(tái)跨版本地進(jìn)行分包任務(wù),采用了時(shí)下炙手可熱的Docker封裝技術(shù)。近日,Shopify在其博客上分享了自己的Docker技術(shù)使用經(jīng)驗(yàn)。

關(guān)于封裝格式的選擇,Docker提供很多封裝格式,從輕量級(jí)的單進(jìn)程容器到重量級(jí)的富應(yīng)用容器,一應(yīng)俱全。Shopify的開(kāi)發(fā)者選擇“纖薄”路徑的容器,并隔絕外部影響,目的就是為了減少CPU和內(nèi)存的負(fù)擔(dān)。不過(guò)雖然運(yùn)行纖薄容器,但還有一個(gè)初始化進(jìn)程(PID=1)使得監(jiān)測(cè)工具、保密管理和服務(wù)能夠緊密集成。除了初始化進(jìn)程,還添加了一個(gè)在每個(gè)容器內(nèi)占用PID=2并且簡(jiǎn)單啟動(dòng)應(yīng)用進(jìn)程(PID=3)的ppidshim。有該 ppidshim,應(yīng)用程序不會(huì)直接從(i.e. ppid != 1)繼承。除此以外還提供了健康檢查,以保證其正常運(yùn)行。

有一個(gè)要特別注意的一點(diǎn),Shopify稱之為“容器的100定律”。在選擇將何種服務(wù)放入容器中時(shí),假設(shè)一臺(tái)主機(jī)中運(yùn)行100個(gè)小容器,評(píng)估是需要運(yùn)行一個(gè)給定服務(wù)100次,還是共享一臺(tái)主機(jī)的服務(wù)更好。用于***效率的選擇,這個(gè)評(píng)判標(biāo)準(zhǔn)在實(shí)際中很有用處。100定律的使用需要一定的靈活性。一些情況下,僅僅需要寫(xiě)一下組件的“黏合器”,也可以通過(guò)配置來(lái)達(dá)到目的。最終,你應(yīng)該獲得一個(gè)容器,內(nèi)含你的應(yīng)用程序運(yùn)行所需的東西,以及一個(gè)提供了Docker托管和共享服務(wù)的主機(jī)環(huán)境。

關(guān)于Debug,沒(méi)有特別需要注意的,容器內(nèi)運(yùn)行應(yīng)用在絕大多數(shù)情況下和他們未封裝時(shí)行為相同,而且,大多數(shù)標(biāo)準(zhǔn)的Debug工具和技術(shù)在Docker主機(jī)上能正常運(yùn)行。所以開(kāi)發(fā)者只需照常調(diào)試。

命名方面。選取容器名稱的時(shí)候,盡量描述其工作內(nèi)容(例如:unicorn-1,resque-2),為了便于追溯,還要結(jié)合主機(jī)名(例如unicorn-1.server2.shopify.com.)。在使用過(guò)程中,將Docker的主機(jī)名標(biāo)簽也傳入容器中,方便問(wèn)題的追蹤。

注冊(cè)和部署。使用GitHub的提交掛鉤觸發(fā)一個(gè)容器生成每一個(gè)主推,并提交狀態(tài),表明構(gòu)建是否成功。使用Git的提交SHA來(lái)Docker_tag容器,如此可以一目了然容器中的代碼是什么版本。還把SHA放入(/app/REVISION)文件夾,容器內(nèi)的文件夾更容易進(jìn)行debug和腳本使用。一旦構(gòu)建成功,希望把容器推到一個(gè)中央注冊(cè)處。開(kāi)發(fā)者選擇運(yùn)行自己數(shù)據(jù)中心的注冊(cè)表以加速部署和盡量減少外部依賴。運(yùn)行Nginx的反向代理,可以緩存GET請(qǐng)求背后的標(biāo)準(zhǔn)Python注冊(cè)表的多個(gè)副本。大型網(wǎng)絡(luò)接口(10Gbps)和反向代理能有效處理“驚群效應(yīng)”。代理方式也使我們能夠運(yùn)行多個(gè)注冊(cè),并在注冊(cè)中斷時(shí)提供自動(dòng)故障切換。

本文出自:http://mp.weixin.qq.com/s?__biz=MzAwNTA1NTY1MA==&mid=201520087&idx=1&sn=e4b8395c2889c198d1ec4fbca2a29935#rd

責(zé)任編輯:Ophira 來(lái)源: docker時(shí)代
相關(guān)推薦

2015-06-03 14:14:17

dockeropenstackIaaS

2011-04-01 17:07:24

Zabbix

2009-09-10 17:38:04

LINQ技術(shù)

2011-04-01 17:01:11

Zabbix

2009-07-03 17:29:36

思科證書(shū)

2018-09-17 08:31:08

容器Docker雪球

2010-03-26 12:29:27

第二層路由技術(shù)

2010-04-21 14:53:46

Oracle游標(biāo)

2009-06-24 17:34:58

使用JSF的經(jīng)驗(yàn)

2009-08-19 16:36:29

C#管道技術(shù)

2015-05-08 10:39:10

InfoQ

2015-05-08 12:47:58

Docker

2018-11-12 10:21:42

2010-01-06 15:03:34

JSON格式封裝

2009-07-15 09:42:56

MyEclipse使用

2015-01-15 10:32:23

Docker社區(qū)社區(qū)運(yùn)營(yíng)

2017-01-10 19:06:39

Android日常開(kāi)發(fā)技術(shù)經(jīng)驗(yàn)

2010-01-04 16:58:49

光交換技術(shù)

2010-05-28 19:32:24

MySQL使用方法

2022-06-06 11:55:12

Flink字節(jié)跳動(dòng)State
點(diǎn)贊
收藏

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