OSCON上最受歡迎的Docker演講

本文講的是OSCON上最受歡迎的Docker演講【編者的話】本文介紹了上個月OSCON大會有關Docker最受歡迎的一個分享:真實線上環境的Docker技巧。分享者是一名運維工程師叫Bridget,她所在的公司DramaFever在2013年10月開始在線上環境部署使用Docker。然而那個時候,Docker官網還掛著“請勿在線上環境使用”的警示條。從2013年到現在,DramaFever積累大量Docker線上使用的實際經驗。這些經驗的分享,吸引了大量的與會者,當天會場爆滿,組織者只好請Bridget第二天再講了一遍。可見這個分享還是蠻有價值,這篇博文介紹的有些過于簡單,有興趣的話,可以直接去讀她的演講稿或者當天的視頻。

上個月在波特蘭舉行的OSCON開源大會上,有關Docker和容器的分享最令人印象深刻的,一定會是Bridget Kromhout的“線上環境使用Docker,真實不炒作”。整個會場爆滿,只剩下站的地方,后來者都被擠到門外面。組織者只好請Bridget第二天再講了一遍。

毫無疑問,Docker非常非常的火,Bridget帶來她對DevOps和容器化的深度經驗:她是一名運維工程師,博主,演講者,明尼阿波利斯DevOps日的組織者,也是”被捕獲的DevOps“頻道的主持人。

Bridget的公司,DramaFever,自2013年10月開始在線上環境使用Docker,那個時候Docker官網上還寫著警示語:"不要在線上環境使用Docker"。DramaFever是一家流媒體視頻公司,起初播放韓國的肥皂劇,現在給docclub.comshudder.com提供額外的視頻服務。目前有來自70個內容提供商的15000集電視劇,將近2000萬的觀看者。高峰時刻,公司要處理來自不同的終端每秒上萬次的請求--觀看者會經常在節目中間切換終端設備。

為了能夠滿足上述需要且提供好的用戶體驗,DramaFever將原先單體的Python應用拆分成了微服務。整個團隊在AWS上面運行服務,主網站使用Python,微服務用Go語言。DramaFever依賴Docker來提供持續的開發和部署。

在線上環境改用Docker的過程中,Bridget和她的團隊學到了很多教訓。下面五個主要的經驗,是她在OSCON上分享的。

1.小心Docker Registry過度負載

DramaFever開始它的容器旅程之時,Docker還沒有私有的Registry,但是他們對這點很不滿意:Registry在Docker中成為不被控制的單點故障源。DramaFever網站當時依賴于Jenkins機器上部署的單個Registry服務器,可是,當多于20個機器需要使用時,Registry就出故障了。現在DramaFever的每臺EC2機器(甚至筆記本)上都會運行著一個私有的registry容器,并輔以AWS S3作存儲。這個解決方案不需要占用很多的資源,而且能解決機器擴充的瓶頸。

2.編制自己的基礎鏡像

為了保證Docker的鏡像是最新的,DramaFever的運維團隊每周都會嘗試更新“基礎鏡像”,包括不頻繁的依賴變化,比如Ubuntu包依賴或者Python的依賴文件等等。其他的部分都是基于這些鏡像,所以啟動會非常快。

3.避免有問題的線上推送

一定要確保沒有人知道在線上環境能夠執行?docker push?命令的賬號和密碼。我們要保證這些命令只會在Jenkins服務器觸發。這樣可以避免在沒有其他人在場的情況下,發生有問題的線上環境推送。

4.記得清理

容器和鏡像都會占用大量的硬盤空間。如果Docker源碼區空間被用光,“非常非常糟糕的情況就會發生,甚至會導致硬盤的損壞”,Bridget解釋道。她建議每天執行一個腳本來移除停掉且無標識的容器和鏡像。

5.注意你的系統時間

AWS S3服務對你的系統時間非常在意。不幸的是,盡管boot2docker這款應用可以讓Docker運行在Windows和MacOS環境,但如果你的筆記本開始休眠,這個應用將不能正常工作,因為虛擬機里的系統時鐘會停滯。這時,任何AWS API請求會得到RequestTimeTooSkewed的錯誤。為了解決這個問題,所有DramaFever的工具都包含這行代碼:
`?boot2docker?ssh?sudo?date?--set?\"$(env?TZ=UTC?date?'+%F?%H:%M:%S')\"

這是一個已知的問題,boot2docker正在修正。

Bridget的觀點對于正在考慮線上使用Docker的人來說,非常有價值。你可以瀏覽一下她的演講稿,讀讀她的博客文章

其中最重要的是,雖然Docker很偉大,不過也沒那么神奇。容器提供了一些非常酷的且引人注目的優點,但是就如同任何新技術一樣,Docker需要我們盡職研究,以確保它會正常工作,并滿足特定環境的需求。

Tori Wieldt是New Relic的攻城獅激勵師,她寫博客,在New Relic的用戶組演講,并給New Relic開發者提供建議和培訓。之前她一直在科技界,是一名系統管理員,技術作家和銷售。
原文鏈接:5 Real-World Docker Tips From OSCON's Most Popular Session(翻譯:Henry Huang)

===================================
譯者介紹
Henry Huang,目前供職于趨勢科技 Trend Micro(南京),負責集群運維的工作。

原文發布時間為: 2015-08-25
本文作者:henrysher
本文來自云棲社區合作伙伴DockerOne,了解相關信息可以關注DockerOne。
原文標題:OSCON上最受歡迎的Docker演講

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/394007.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/394007.shtml
英文地址,請注明出處:http://en.pswp.cn/news/394007.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

測試驅動開發 測試前移_測試驅動開發:它是什么,什么不是。

測試驅動開發 測試前移by Andrea Koutifaris由Andrea Koutifaris Test driven development has become popular over the last few years. Many programmers have tried this technique, failed, and concluded that TDD is not worth the effort it requires.在過去的幾年中&…

【C/C++開發】C++庫大全

C特殊限定符(1)--static 當static來修飾類數據成員時,這個類的所有對象都可以訪問它。因為值在內存中持續存在,它可以被對象有效共享。這意味著當一個對象改變static數據成員的值時,就改變了所有對象的這個數據成員的值。 定義一個類: class …

java二維數組水平翻轉,C 語言 利用二維數組實現對輸入的數組進行翻轉

C 語言 利用二維數組實現對輸入的數組進行翻轉(幫助理解對圖像翻轉編輯原理)/*?輸入幾行幾列數字和翻轉方式,如:3 4 0即代表3行4列,左右翻轉;6 5 1即代表6行5列,上下翻轉。輸入示例:3 4 0________________…

lightgbm 保存模型 過大_一個例子讀懂LightGBM的模型文件

機器學習模型的可解釋性是個讓人頭痛的問題。在使用LightGBM模型的肯定對生成的GBDT的結構是好奇的,我也好奇,所以就解析一個LightGBM的模型文件看看,通過這個解析,你可以看懂GBDT的結構。另外,了解模型文件&#xff0…

Oracle Sql 胡亂記

/Oracle查詢優化改寫/ --1、coalesce 返回多個值中,第一個不為空的值 select coalesce(, , s) from dual; --2、order by -----dbms_random.value 生產隨機數,利用隨機數對查詢結果進行隨機排序 select * from emp order by dbms_random.value; --指定查詢結果中的一…

leetcode752. 打開轉盤鎖(bfs)

你有一個帶有四個圓形撥輪的轉盤鎖。每個撥輪都有10個數字: ‘0’, ‘1’, ‘2’, ‘3’, ‘4’, ‘5’, ‘6’, ‘7’, ‘8’, ‘9’ 。每個撥輪可以自由旋轉:例如把 ‘9’ 變為 ‘0’,‘0’ 變為 ‘9’ 。每次旋轉都只能旋轉一個撥輪的一位…

Object Pools 噴泉效果實現

摘錄自:http://catlikecoding.com/unity/tutorials/object-pools/ 工程 效果圖 工程里面有響應的注釋 源碼我就不單獨放出來了

從頭學習計算機網絡_我如何通過從頭開始構建網絡爬蟲來自動進行求職

從頭學習計算機網絡它是如何開始的故事 (The story of how it began) It was midnight on a Friday, my friends were out having a good time, and yet I was nailed to my computer screen typing away.星期五是午夜,我的朋友們出去玩得很開心,但我被釘…

php 動態生成文件,php動態程序生成靜態文件示例

html>{title}{content}tmp.html是模板文件/** 說明:生成靜態頁面,tmp.html是模板文件,news.html是要生成的文件,**///1,先讀取模板中內容$strfile_get_contents(tmp.html);//2,將指定的內容進行替換$title網站標題;…

網管的自我修養-網絡系統

目錄: 序章人際關系工具準備電腦維護網絡系統弱電系統外設相關信息系統服務器相關機房建設其他網管網管,會管網絡才算名副其實。管理一般中小企業的網絡,具備CCNA及以上水平就可以了。 一、規劃 首先要根據公司的人員工位數量、打印機傳真等設…

thinkphp日志泄漏漏洞_ThinkPHP框架被爆任意代碼執行漏洞

昨日ThinkPHP框架被爆出了一個php代碼任意執行漏洞,黑客只需提交一段特殊的URL就可以在網站上執行惡意代碼。ThinkPHP作為國內使用比較廣泛的老牌PHP MVC框架,有不少創業公司或者項目都用了這個框架。不過大多數開發者和使用者并沒有注意到本次漏洞的危害…

leetcode 113. 路徑總和 II(Path Sum II)

目錄 題目描述:示例:解法:題目描述: 給定一個二叉樹和一個目標和,找到所有從根節點到葉子節點路徑總和等于給定目標和的路徑。 說明: 葉子節點是指沒有子節點的節點。 示例: 給定如下二叉樹,以及目標和 sum 22&#x…

VMware下配置固定ip,于本機進行通信。

虛擬機裝好后,會生成虛擬的網絡信息。點開VMware下虛擬網絡編輯器。選擇net模式的記錄會發現設定好的網關及dns。 我們只需要在虛擬機上配好對于的ip 輸入 dns 和網關即可轉載于:https://blog.51cto.com/thlovesky/1967929

leetcode417. 太平洋大西洋水流問題(bfs)

給定一個 m x n 的非負整數矩陣來表示一片大陸上各個單元格的高度。“太平洋”處于大陸的左邊界和上邊界,而“大西洋”處于大陸的右邊界和下邊界。規定水流只能按照上、下、左、右四個方向流動,且只能從高到低或者在同等高度上流動。請找出那些水流既可以…

為什么測試喜歡ie_為什么我現在喜歡測試,以及為什么您也應該如此。

為什么測試喜歡ieby Evelyn Chan通過伊芙琳陳 為什么我現在喜歡測試,以及為什么您也應該如此。 (Why I now appreciate testing, and why you should, too.) There’s a common misconception that writing tests slows down development speed. While the benefit…

java制作五子棋的論文,基于java的五子棋的設計與實現.docx

摘要:隨著社會的不斷發展,我們的科技也不斷的進步,現在我們的計算機也與我們的生活息息相關,這個時候 Internet能夠讓我們快速的知道自己想了解的知識。根據計算機的發展過程我們發現如今計算機應用的現狀還有現在的發展趨勢&…

tomcat 控制臺亂碼 windows下

tomcat啟動時控制臺亂碼。但是看日志又是正常編碼,只是控制臺是亂碼。 找到 config/logging.properties java.util.logging.ConsoleHandler.encoding UTF-8 改成 java.util.logging.ConsoleHandler.encoding GBK! 轉載于:https://www.cnblogs.com/wangge01/p/10786101.html…

python獲取重定向url_python中檢測url重定向到的地址的例子

2016年最長的假期也過了,這周連上7天班,之前還覺得挺恐怖,沒想到這周真是要忙死的節湊,還真沒覺得多漫長,一晃明天就周五了,干運維的就是突發的事情多,冷不丁的不知道哪里就冒出個問題&#xff…

本地模式運行spark streaming程序(win7安裝nc命令通信)

2019獨角獸企業重金招聘Python工程師標準>>> 首先在win7上安裝nc命令 下載nc程序包,放在c盤目錄下,cmd打開命令行,進入nc目錄,執行:nc -l -L -p 8888開始監控。再打開一個命令行窗口進入nc目錄,…

leetcode343. 整數拆分(dp)

給定一個正整數 n,將其拆分為至少兩個正整數的和,并使這些整數的乘積最大化。 返回你可以獲得的最大乘積。 示例 1: 輸入: 2 輸出: 1 解釋: 2 1 1, 1 1 1。 class Solution {public int integerBreak(int n) {int[] dpnew int[n1];dp[1]1;for(int…