首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >采用持续集成应该遵循什么方法?

问采用持续集成应该遵循什么方法?
EN

DevOps用户
提问于 2017-09-18 14:30:58
回答 3查看 184关注 0票数 -3

我有一个WAMP服务器,它使用Windows服务器承载Django应用程序。

目前,我正在手动部署所有的东西。现在,我希望将连续集成概念应用于现有的应用程序。

我应该遵循什么样的方法,我应该为此使用什么技术?

哪个服务器可以更好地通过CD托管Django应用程序

代码语言:javascript
复制
 is it Puppet,

       Chef, 

       Jenkins etc

目前,我正在使用Git作为源代码管理。

EN

回答 3

DevOps用户

发布于 2017-09-19 21:34:50

我和你一样穿着一双类似的鞋--在经历了多年的传统发展(以及与常规操作的紧密联系)之后,我正在慢慢地进入DevOps的话题。

你似乎读过几篇文章,或听过一些东西。这很好。让我就如何继续下去提出一项切实可行的办法:

  1. 以您最喜欢的应用程序(您或您的团队自己编写的应用程序)为例;不要太大,最好使用数量有限的服务(如Apache、DB等)。和你的应用程序一起工作。
  2. 安装docker,读一下Dockerfile和整个构建过程,然后继续为该应用程序创建一个或多个Dockerfile。您已经知道如何手动部署它;现在让它在容器中运行。
    • 让你自己轻松一点。使用一个FROM父容器,它是您选择的一个完整的发行版。我喜欢debian:jessie,但你可以选择你熟悉的。
    • 在开始时,不要担心图像大小。这只是个宠物项目。使用FROM启动您的Dockerfile,然后根据需要运行应用程序所需的apt-get update; apt-get install ...数量。自由地添加ADD和COPY的内容。

  3. 了解如何实际运行这些容器;EXPOSE如何工作;如何与DB和Apache一起使用--link应用程序(万一您为此制作了一个单独的容器--如果您的应用程序能够提供所有内容,包括静态页面本身,您可以跳过这一点)。了解如何挂载/绑定volumes,如何通过打开容器内的外壳来调试容器,等等。如果您有多个docker-compose,并且使用起来非常简单,那么它是很好的。
  4. 现在你可能有了一个可行的装置。太好了!你已经学到了基础知识,你马上就能感受到将你的应用程序封装起来的强大力量。您可以立即将它部署到任何服务器上,您可以将它交给您的开发人员同事,然后在零时间内启动和运行,等等。享受一下这种感觉吧。
  5. 使图像变小。有一些显而易见的事情你可以做(谷歌.),和一些不太明显的事情(思考就像谷歌,只是更好.) )。如果你需要帮助,在这里张贴更多的问题。
  6. 让Jenkins (同样,如果您喜欢冒险的话,也可以使用docker )来构建Dockerfile中的映像,并在您构建的容器中直接运行测试套件。Jenkins可以自动检查存储库中的更新,此时您不需要费心使用git钩子。
  7. 你完蛋了!这是CI的一部分。对于CD,在Jenkins中测试为绿色之后,只需标记构建并将其发送到您的部署服务器。

如果您是一位经验丰富的开发人员,并且已经“干”了这些事情,这应该需要您的时间,时间不会超过几天。码头本身是一个相当简单的事情,没有更多。另一个让人费解的部分是Ansible,它使得远程管理另一台机器变得非常容易(例如,用于安装软件包、部署东西、启动服务等等)。

如果您有Docker和Ansible,只需让您的CI/CD管道工作。谷歌虽然进步了,但也有一些必要的东西,比如安全等等。在此之后,您应该有足够的经验来决定下一步的方向(例如,Openshift/Kubernetes之类的更大的东西,或者任何AWS/Azure或必须提供的东西等等)。有很多不同的选择,很多选择似乎都是基于意见的。如果你进入高可用性,成群结队等等,它很快就会变得更重要。但是从Docker开始应该很有趣,而且相对简单。

票数 4
EN

DevOps用户

发布于 2017-09-18 14:38:20

由于您已经在使用Bitbucket,所以Bitbucket管道可能很有用。

支持哪些语言?节点、Ruby、Python、PHP等等。支持在Docker容器中运行的任何内容。

为什么不选詹金斯?

詹金斯也可能是个选择。如果Bitbucket可以触发Jenkins或Jenkins,则可以检查是否有代码更改。

票数 3
EN

DevOps用户

发布于 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代码的操作,您可以对其进行脚本化。如果你打算扩展这个应用程序的话,这实际上并不是一个有生产价值的计划,但有时采取小规模的行动是明智的。

票数 2
EN
页面原文内容由DevOps提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://devops.stackexchange.com/questions/2066

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档