我有一个WAMP服务器,它使用Windows服务器承载Django应用程序。
目前,我正在手动部署所有的东西。现在,我希望将连续集成概念应用于现有的应用程序。
我应该遵循什么样的方法,我应该为此使用什么技术?
哪个服务器可以更好地通过CD托管Django应用程序
is it Puppet,
Chef,
Jenkins etc目前,我正在使用Git作为源代码管理。
发布于 2017-09-19 21:34:50
我和你一样穿着一双类似的鞋--在经历了多年的传统发展(以及与常规操作的紧密联系)之后,我正在慢慢地进入DevOps的话题。
你似乎读过几篇文章,或听过一些东西。这很好。让我就如何继续下去提出一项切实可行的办法:
docker,读一下Dockerfile和整个构建过程,然后继续为该应用程序创建一个或多个Dockerfile。您已经知道如何手动部署它;现在让它在容器中运行。FROM父容器,它是您选择的一个完整的发行版。我喜欢debian:jessie,但你可以选择你熟悉的。FROM启动您的Dockerfile,然后根据需要运行应用程序所需的apt-get update; apt-get install ...数量。自由地添加ADD和COPY的内容。EXPOSE如何工作;如何与DB和Apache一起使用--link应用程序(万一您为此制作了一个单独的容器--如果您的应用程序能够提供所有内容,包括静态页面本身,您可以跳过这一点)。了解如何挂载/绑定volumes,如何通过打开容器内的外壳来调试容器,等等。如果您有多个docker-compose,并且使用起来非常简单,那么它是很好的。git钩子。如果您是一位经验丰富的开发人员,并且已经“干”了这些事情,这应该需要您的时间,时间不会超过几天。码头本身是一个相当简单的事情,没有更多。另一个让人费解的部分是Ansible,它使得远程管理另一台机器变得非常容易(例如,用于安装软件包、部署东西、启动服务等等)。
如果您有Docker和Ansible,只需让您的CI/CD管道工作。谷歌虽然进步了,但也有一些必要的东西,比如安全等等。在此之后,您应该有足够的经验来决定下一步的方向(例如,Openshift/Kubernetes之类的更大的东西,或者任何AWS/Azure或必须提供的东西等等)。有很多不同的选择,很多选择似乎都是基于意见的。如果你进入高可用性,成群结队等等,它很快就会变得更重要。但是从Docker开始应该很有趣,而且相对简单。
发布于 2017-09-18 14:38:20
由于您已经在使用Bitbucket,所以Bitbucket管道可能很有用。
支持哪些语言?节点、Ruby、Python、PHP等等。支持在Docker容器中运行的任何内容。
为什么不选詹金斯?
詹金斯也可能是个选择。如果Bitbucket可以触发Jenkins或Jenkins,则可以检查是否有代码更改。
发布于 2017-09-21 03:12:18
您选择了一个相当困难的堆栈来支持。WAMP主要在dev环境中使用,mysql、php和apache的windows构建通常比Linux环境落后很多。您可以在Linux上重用您的代码,除非有任何硬编码或绝对路径。一旦您转到Linux,就会有很多很好的部署选项,其中最明显的可能就是docker。由于您的堆栈包含一个完整的关系数据库解决方案和一个web服务器,因此您将面临许多潜在的复杂性。这使得您几乎不可能给出一个好的答案,而不是通过powershell编写脚本,然后滚动您自己的堆栈,如果您想要保持这个堆栈在windows上的话。您可以保留窗口、交换堆栈和切换语言(可能是一个糟糕的主意,取决于您在这方面的投入程度),或者您可以切换操作系统并保留代码,但可能会与整个新操作系统的挫折作斗争。我推荐这条路,但这里没有子弹。
所以你有两个很大的障碍: 1.让这个应用程序在LAMP上运行。2.学习LAMP的部署工具。
或者,您可以找到一个专门的WAMP主机,该主机将允许您对它们执行类似FTP代码的操作,您可以对其进行脚本化。如果你打算扩展这个应用程序的话,这实际上并不是一个有生产价值的计划,但有时采取小规模的行动是明智的。
https://devops.stackexchange.com/questions/2066
复制相似问题