-
Notifications
You must be signed in to change notification settings - Fork 2
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
大家都用 Docker 來幹麻? #2
Comments
印象中有個例子蠻有趣的, 假設有幾隻前幾代的 Service, 各自使用了 PHP 5.3 (Login) , PHP 5.4 (會員查詢), PHP 5.5(Html Crawler), 那正規情況,我們要維持整套系統運作, 最好是安裝三個 VM, 或者是賭很大, 把三套通通硬跑在 PHP 5.5 上面.... 如果有了 Docker.... |
我使用 docker 的經驗比較有限,過去拿來用在 jenkins 測試 infrastructure,這種 repeatability 需求也會簡單拿來當作是程式的 sandbox 使用,像是實驗皿一樣做些觀察與測量,docker 就像 vagrant 有了 git 一樣的版本控制能力,部署的思考上便能簡化到狀態推送,複雜的環境只是 dumb pipes 與 smart endpoint 的邏輯組裝,再進一步延伸運用支援平台來簡化部署。 docker 與 vagrant 常被拿來比較,vagrant 的核心價值是 workflow,而且在開發階段的細節確認通常很有價值,開發者容易忽略系統複雜度與缺乏維運狀態穩定的想像,而 vagrant 的可重複性在驗證流程、環境程式化、CM 上的溝通能力都很好,很適合拿來開發階段的輔助工具。 部署階段 vagrant 過去偏向是透過社群輔助,之前 atlas.hashicorp.com 還未推出,以 packer build 不同 provider 的 box/img,除了要考量 box 建置的困難、安全性、環境變動頻繁的複雜度與彈性,還得考慮 box 的存放,所以在跨雲端與機房部署上的能力比較不足。vagrant 在開發環境與流程驗證的這部分,在 repeatability 上一直很有價值,對於 CM 的親近、彈性很高,所以可以直接透過 vagrantfile 就能釐清問題。去年 vagrantcloud release 確認了 cross cloud/data center storage provider 的路線,而在幾個月前 atlas.hashicorp.com 的服務也進入到如提供線上 travis ci 的 build serivice、也讓 application artifacts 可以注射到 image 裡,把過去部署時在想像上比較困難的地方,進入到有導入動機的階段,像是 consul 實作 raft 容錯、gossip、監控、自動化、monitor ui,terraform plan/apply 具有 cross cloud provider 與 data center 的控管實作,在彈性上都比起 docker 還有吸引力。畢竟小本經營,在移動中維持有高度的行動力,還是很好的策略。 看到一些 docker 研究拿來實作 reproducibility data,像是在 docker 內另築一層以資料為中心的虛擬化,建立成千上萬的 container,有興趣可以看看他們的實作,可行性都很高。ex: HyperCore OS / Interview |
把所有程式的執行統一化, 去OS相依性, 去framework 相依性, 去libraries 相依性, 去語言相依性. |
我公司的 Docker 應用沒像各位那麼偉大,相對簡單:
... 附帶一句,這些同事自從第一次開始使用 Docker ,平均至少幾個月才會回來問:
|
最近用 docker 在公司架了 gitlab 和 gitlab-ci-runner ,結合 版控 跟 CI,每次跑 CI 就開個 container 很方便。 |
Server Side我們有用 docker 來架 nginx 服務使用者。因為有加上自己刻的 module 所以就不是預設安裝的 nginx 了。由 docker 切出 4 層 image (由上至下為相依關係)
開發跟修改起來挺方便的。 Dev公司有些東西是要寫 arm 或 mips 平台的東西,不同廠商給的 toolchain 需求環境不同。運用 docker 能抽象化環境的特性,來包裝 toolchain(一個 vendor 一個 image)
https://github.com/qrtt1/PyHUG20150303 PS. 除了 vendor 的 toolchain image,另外包 1 個 x86dev 的 image,沒有 device 能玩時,可以在 x86dev 上編起來玩(需適度把平台相依的 api 架空) PS. 再多包了一層的 Vagrant 在外面。一來是給 windows 開發者用(小心 |
對於需要複雜的整合測試環境的open source project(多node, 容易爛掉的perl環境), |
真心想知道大家都怎麼用 Docker,用在什麼地方,跟原有的工具比起來的優勢和缺點。
The text was updated successfully, but these errors were encountered: