我忙於開發一個API,我的移動應用程序,現在我期待在後端解決方案的部署。這些組件非常簡單:nginx,.NET核心應用程序和postgresql用於持久性。如果我需要快速擴展,我想首先在一個節點上開始使用Docker Swarm。爲Postgresql提供一個單獨的數據卷看起來很順利,但我無法找到關於升級和數據庫遷移的任何建議。當我需要升級Postgresql映像(不需要pg_upgrade的次要升級)時,這必須是手動操作還是可以通過滾動升級來管理?要求將在發生這種情況時關閉所有應用程序實例。同樣,我如何管理數據庫遷移,例如靜態數據/模式更改?我將需要退出所有應用程序實例,完成遷移並重新啓動。任何想法不勝感激。與碼頭工人羣數據庫的持續部署
0
A
回答
0
所以,走了,做了這個,我想我會張貼我的解決方案最終看起來像什麼細節。首先,我使用了GoCD,這是一個夢幻般的開源連續傳送服務器,可以實現從測試到生產的全部交付。使用Docker可以很好地應用單一職責原則,所以我爲Web,應用程序,數據和監控創建了獨立的Docker堆棧。數據堆棧由Postgres的容器和一般處理數據庫備份的容器組成。 Web堆棧由Traefik容器組成 - 一個反向代理服務器,用於將流量路由到應用程序堆棧。應用程序堆棧本身由用於C#應用程序API的可伸縮容器以及使用db-up進行託管數據庫遷移的容器組成。最後,監控棧有用於logstash,logspout,kibana,grafana和portainer容器中,該應用記錄到elasticsearch和kibana/grafana提供此數據的可視化。 Portainer支持羣體的基本管理。
提交給到位桶上的主分支觸發更新庫通過GoCD我的測試環境下,用在CentOS的bash腳本相當數量的編織這一切在一起。當測試看起來不錯時,我可以將按鈕部署投入生產。其滋潤Docker容器的圖像是GoCD建立文物和版本作爲構建過程的一部分,所以很容易恢復到並在必要時重新發現它們。
我只想說,有大量複雜的克服,例如互聯網服務依賴和啓動,但通常的谷歌搜索量和堅持不懈的支付股息。現在就像一個魅力!
相關問題
- 1. 碼頭羣,詹金斯,持續集成和部署
- 2. 多克羣與碼頭工人集羣
- 3. 碼頭工人羣羣:守護進程
- 4. 對碼頭工人跑碼頭工人撰寫羣
- 5. 作爲Azure持續部署的一部分的數據庫部署
- 6. 創建與碼頭工人一羣羣的Mac
- 7. 碼頭工人CD工作流程 - 使碼頭主持人拉動新圖像並部署它們
- 8. Golang與碼頭工人的連續工作流程
- 9. 連續部署和數據庫
- 10. 在持續部署中管理密碼
- 11. TeamCity的持續部署
- 12. 自動部署與gitlab持續集成
- 13. Hadoop集羣與碼頭羣
- 14. 通過碼頭羣組模式部署火花羣集
- 15. 請與碼頭工人
- 16. 無法進入到碼頭工人的容器中,kubernetes部署
- 17. 通過碼頭工人在Tomcat中部署的.war - 404
- 18. 碎片未分配與碼頭工人elasticsearch集羣
- 19. 詹金斯聲明管道不會與碼頭工人羣
- 20. Heroku碼頭部署
- 21. Kaa碼頭部署
- 22. 碼頭羣和私人註冊碼
- 23. 跨多個節點的碼頭引擎羣模式中的持續卷數
- 24. 停在碼頭工人數據庫容器自動
- 25. 運行的node.js與碼頭工人
- 26. 連接的NodeJS並與碼頭工人
- 27. 與MySQL數據庫和部署
- 28. 使用現有數據與碼頭工人安裝gitlab
- 29. 碼頭工人:連接到服務器的羣體工作人員
- 30. 錯誤設置Azure的持續部署