2017-07-27 119 views
0

我是Docker的完全新手,在推進進一步調查之前,我想斷言它是適合我需求的正確工具。使用Docker創建Django應用程序的脫機版本

這裏的情況: 我必須開發將主要在網上使用的Django應用程序。但有些用戶有時需要離線使用這個應用程序。然後,回到在線狀態,他們需要將工作推到主應用程序。

可泊塢窗幫我給這些用戶的在線應用程序的完全脫機工作版本很少的工作(從他們身上,我不是很明顯......)?

感謝您的答案。

回答

2

泊塢窗將幫助您與堆棧脫機運行,所有的環境部分,從而幫助,以完全相同的方式運行數據庫,應用程序,代理,因爲它們是在線 - 不管哪個OS實際的用戶不使用。

這將減少你的努力有確切的在線離線運行方式相同的應用程序,無論是在Windows,Mac和Linux操作系統。

碼頭工人雖然不會以任何方式幫助您管理數據庫合併,文件系統合併或類似的東西。如果2個用戶離線更改相同的事情,然後嘗試同步它,則無論您是使用Docker還是不這樣做,都會遇到麻煩。

對於數據庫的合併和文件合併,你需要不同的技術,可與碼頭工人使用 - 不會。

+0

提及數據庫合併的+1。如你所說,這是獨立於使用Docker的問題。公平地說,Django內置了模式管理,但在數據庫中合併數據當然沒有什麼靈丹妙藥。需要將其構建到用於創建應用程序的獨立副本的自動化中。 –

+0

我不會說數據庫同步不是問題,但它是我可以處理的。我的主要問題是在線下部分,您的回答證實了我對Docker的幫助有多大的感覺。我處於項目的早期構想階段,所以我認爲我不會在一段時間之前處理Docker,但它可以讓我預見未來的工作。 –

0

簡短的回答是,是的,Docker會有所幫助。

較長的答案是非常主觀的,對於如何達到預期的結果,意見會有所不同。例如,使用虛擬化工具(如VirtualboxVagrant)創建脫機開發副本已經有一段時間了。

所以我會問自己以下幾個問題第一:

  1. 我在哪裏可以正常展開我在生產中的應用?
  2. 此部署是否自動且可重複?
  3. 是否捕獲到我的應用程序的所有平臺(和數據)相關性?

對於所有問題,一個很好的答案可以讓你成爲採用像Docker這樣的新技術的好地方。你只需要瞭解你現在正在做什麼和你需要做什麼之間的差異。不幸的是,公司擁有我稱之爲「神奇構建服務器」的情況並不少見,我們稱之爲「神奇構建服務器」,由通過嚮導創建,負責所有軟件版本:-(

假設最糟糕的建議是從使用虛擬機重複部署應用程序使用CAPS工具之一(Chef,Ansible,Puppet,Salt)來捕獲設置服務器所需的所有步驟,換句話說,通過捕獲您的infrastructure as code開始練習DevOps。 test kitchen將所有這些聯繫在一起在本地開發人員環境中。

假設(在另一方面),你是在一個很好的位置,採用新的技術,如碼頭工人,然後,我再問問自己一些非常類似的問題:

  1. 我在哪裏打算運行我的搬運工生產中的應用?
  2. 什麼編排技術將用於部署和管理Docker容器?
  3. 我將如何構建和存儲每個應用程序發行版的Docker鏡像?

跳轉到答覆我建議現在最大最容易的容器管理解決方案:Kubernetes。它正在越來越多地被谷歌和Azure等雲端提供爲本地服務。歷史上Kubernetes很難在本地運行,但現在隨着minikubeminishift等工具的出現而改變。我會在那裏停下來。

總之,我希望我的長時間咆哮對你的決策有一點好處。

相關問題