走向 Docker
| 2015-04-27 10:55 評論: 3 收藏: 2
[TL;DR] 這是系列的第一篇文章,這系列講述了我的公司如何把基礎服務從PaaS遷移到Docker上。如果你願意,你可以直接跳過介紹(這篇文章)直接看技術相關的話題(連結在頁面的底部)。
上個月,我一直在折騰開發環境。這是我個人故事和經驗,關於嘗試用Docker簡化Rails應用的部署過程。
當我在2012年建立我的公司 – Touchware時,我還是一個獨立開發者。很多事情很小,不復雜,他們不需要很多維護,他們也不需要部署到很多機器上。經過過去一年的發展,我們成長了很多(我們現在是是擁有10個人的團隊)而且我們的服務端的程式和API無論在範圍和規模方面都有增長。
第1步 - Heroku
我們還是個小公司,我們需要讓事情執行地儘可能平穩。當我們尋找可行的解決方案時,我們打算堅持用那些可以幫助我們減輕對硬體依賴負擔的工具。由於我們主要開發Rails應用,而Heroku對RoR、常用的資料庫和快取(Postgres/Mongo/Redis等)有很好的支援,最明智的選擇就是用Heroku 。我們就是這樣做的。
Heroku有很好的技術支援和文件,使得部署非常輕鬆。唯一的問題是,當你處於起步階段,你需要很多開銷。這不是最好的選擇,真的。
第2步 - Dokku
為了嘗試並降低成本,我們決定試試Dokku。Dokku,引用GitHub上的一句話
Docker 驅動的 mini-Heroku,只用了一百來行的 bash 指令碼
我們啟用的DigitalOcean上的很多臺機器,都預裝了Dokku。Dokku非常像Heroku,但是當你有複雜的專案需要調整配置引數或者是需要特殊的依賴時,它就不能勝任了。我們有一個應用,它需要對圖片進行多次轉換,我們把我們Rails應用的託管到基於Dokku的Docker容器,但是無法安裝一個適合版本的imagemagick到裡面。儘管我們還有很多應用執行在Dokku上,但我們還是不得不把一些遷移回Heroku。
第3步 - Docker
幾個月前,由於開發環境和生產環境的問題重新出現,我決定試試Docker。簡單來說,Docker讓開發者容器化應用、簡化部署。由於一個Docker容器本質上已經包含專案執行所需要的所有依賴,只要它能在你的筆記本上執行地很好,你就能確保它將也能在任何一個別的遠端伺服器的生產環境上執行,包括Amazon的EC2和DigitalOcean上的VPS。
就我個人的看法來說,Docker 特別有意思的原因是:
- 它促進了模組化和關注點分離:你只需要去考慮應用的邏輯部分(負載均衡:1個容器;資料庫:1個容器;web伺服器:1個容器);
- 在部署的配置上非常靈活:容器可以被部署在各種硬體上,也可以容易地重新部署在不同的伺服器和不同的提供商;
- 它允許非常細粒度地最佳化應用的執行環境:你可以利用你的容器來建立映象,所以你有很多選擇來配置環境。
它也有一些缺點:
- 它的學習曲線非常的陡峭(這是從一個軟體開發者的角度來看,而不是經驗豐富的運維人員);
- 搭建環境不簡單,尤其是還需要自己搭建一個私有的registry/repository (後面有關於它的詳細內容)。
下面是一些提示。這個系列的最後一週,我將把他們和一些新的放在一起。
在下面的文章中,我們將看到如何建立一個半自動化的基於Docker的部署系統。
via: http://cocoahunter.com/2015/01/23/docker-1/
作者:Michelangelo Chasseur 譯者:mtunique 校對:wxy
相關文章
- java走向滅亡Java
- UOF默默走向應用
- AI如何走向精智慧之路?AI
- 走向專業工程師工程師
- Mike Cohn的“走向敏捷”三模式敏捷模式
- Linux何時走向完美(轉)Linux
- 大模型走向產業的一小步,AI走向普惠的一大步大模型產業AI
- 小白觀察:Linux 遊戲如何走向主流Linux遊戲
- 走向世界的中國智慧手機
- [news]WTL在走向shared source (轉)
- 資料中心管理走向虛擬化
- 安居客 Android APP 走向平臺化AndroidAPP
- 韓國IT業是如何走向世界的
- 助力AI騰飛,深度學習走向何方?AI深度學習
- app開發的未來市場走向APP
- ERP助企業走向智慧化管理
- 怎樣讓日本獨立遊戲走向世界?遊戲
- 從技術走向管理的注意要點
- GitHub:超越開發者、走向全民的偉大道路Github
- 人類正從IT時代改革走向DT時代!
- 58同城等同類網站將走向何方網站
- 雲端計算必將從集中走向分散
- 揭秘敏捷精髓:消除浪費 走向精益敏捷
- 敏捷的核心:消除浪費,走向精益敏捷
- 【Docker】Docker概述Docker
- 程式設計師必須走向專業化程式設計師
- 從技術走向管理的一些感悟
- 2019年中國區塊鏈走向區塊鏈
- 人工智慧如何從科幻走向現實中?人工智慧
- 淺談架構-從傳統走向分散式架構分散式
- dubbogo 3.0:牽手 gRPC 走向雲原生時代GoRPC
- “錦衣夜行”的平安智慧城市走向To B路
- 中國電子商務模式是否會走向全球?模式
- 如何從一個程式設計師走向成功?程式設計師
- TPM管理:推動人工智慧走向未來!人工智慧
- 從傳統“會員模式”走向“訂閱模式”模式
- 獨立開發者:走向全能的五大技能
- 普及、人性、極致:空間智慧走向深水區