我忙于开发一个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的持续部署