简体   繁体   English

具有多个服务器的远程站点中的开发和版本控制工作流

[英]Development and version control workflow in a remote site with several servers

I have a website in AWS which consists of four severs: web (front-end), files, database and apps (back-end). 我在AWS中有一个网站,该网站由四个服务器组成:Web(前端),文件,数据库和应用程序(后端)。 This structure is duplicated for production and testing/development. 复制此结构用于生产和测试/开发。 Additionally, I have a local copy of web and apps. 此外,我还有Web和应用程序的本地副本。 I have been working alone developing on the local files and testing changes on the testing servers. 我一直在独自开发本地文件,并在测试服务器上测试更改。 I used Bazaar as version control locally. 我将Bazaar用作本地版本控制。

Now, new developers are coming to the web (front end) part of the project and I have doubts about the correct version control workflow. 现在,新的开发人员正在进入项目的Web(前端)部分,我对正确的版本控制工作流程有疑问。 I know that we will use Git and that local testing is very limited. 我知道我们将使用Git,并且本地测试非常有限。 Also, I would want to restrict the folders they we will be able to read and modify. 另外,我想限制我们可以读取和修改的文件夹。

What are the best practices with this architecture? 这种架构的最佳做法是什么? What is the best workflow? 最好的工作流程是什么?

It depends on many things. 这取决于很多事情。 First of all, usually a best practice solution is an overkill for a project ( or at least a team) size like yours. 首先,通常最佳实践解决方案是像您这样的项目(或至少一个团队)规模过大。

If you have a long project with a big team, proper automated tests, I would suggest you to have a Jenkis server ( or any other CI tool), where you can run automated tests on every checked in code. 如果您有一个庞大的团队,很长的项目,适当的自动化测试,建议您使用Jenkis服务器(或任何其他CI工具),在其中可以对每个签入的代码运行自动化测试。 You can get detailed reports on test failures, code coverage, etc. You will be able to do automated deployment even to a live environment. 您可以获取有关测试失败,代码覆盖率等的详细报告。甚至可以在实时环境中进行自动部署。

To set up all of this is quite an overhead for the project. 设置所有这些对于项目来说是相当大的开销。 What I'm doing now in a project with a few developers, that we are using VisualStudio Online. 我现在在一个有几个开发人员的项目中正在使用VisualStudio Online。 This gives us a TFS version controlling. 这为我们提供了TFS版本控制。 (If you using Git, that's fine too.) (如果您使用Git,也可以。)

We are having 3 Beanstalk environments (dev,test,prod). 我们有3个Beanstalk环境(开发,测试,生产)。 (We may have multiple dev environments for different dev teams.) Each deployment is manual, but Elastic Beanstalk has support of one click deployment for several programming languages. (我们可能有不同的开发团队使用多个开发环境。)每个部署都是手动的,但是Elastic Beanstalk支持针对多种编程语言的一键式部署。

You mentioned, you have a 3( 4) tier web application, that's fine, you are able to set this up in Beanstalk. 您提到过,您有一个3(4)层的Web应用程序,很好,您可以在Beanstalk中进行设置。 (Frontend-Worker-RDS + you can set up the file-system manually, depending on your needs.) (Frontend-Worker-RDS +您可以根据需要手动设置文件系统。)

So what I suggest is try to use Beanstalk, because it's really easy to use/deploy, especially if you don't have a too unique setup. 因此,我建议您尝试使用Beanstalk,因为它非常易于使用/部署,尤其是在您没有太独特的设置的情况下。

Decide if you want to invest to CI/CD tools. 确定是否要投资CI / CD工具。 (If yes, Jenkins, VisualStudioOnline are great tools.) (如果是,Jenkins,VisualStudioOnline是很好的工具。)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM