大小不一的 Web 开发人员如何在部署前测试他们的代码?
How do bigger & smaller web devs test out their code before deployment?
我一直在努力学习更多关于 PHP 和更多服务器端代码的知识,我意识到如果我想升级我的网站,我需要采取它下来并在用户在线时复制代码。
此外,由于我还没有启动我的网站,并且没有被 Google 索引,它很少有访问量,所以我可以使用 [=19= 随意上传和测试我想要的任何东西]风暴+ FTP。但我意识到,一旦我完成了我的项目并拥有了用户,我就不想在他们使用它们的同时进行更改。
人们如何在部署前编写代码并进行调试和设置以验证他们的网站是否正常运行?另外,你将如何复制代码?来自大型网站(即 apple.com、cnn.com - 需要 24/7 的网站)和较小的 blogs/websites.
你问的是 Continuous Integration
/ Continuous Deployment
('CI/CD
').
基本上,在 public 看到代码之前,您需要使用测试服务器来测试您的代码。您将代码部署到此服务器并对其进行全面测试,确认一切都已准备好投入生产。通过更多 in-depth 设置,可以使用 Selenium or TestComplete.
等工具自动执行此测试
理论上,您应该将 'release cut' of a GitFlow 工作流程部署到您的测试环境中。这确保所有计划的更改都已完成并准备好最终交付给 public,而不会在发布中混淆任何其他更改。
当您最终准备好投入生产时,您需要计划 发布,并会见任何相关方。我推荐一个正确的发布清单,确认所有附加功能都按预期工作,并且您没有意外删除任何现有功能(regression testing ).
请注意,部署到生产环境与部署到测试环境应该完全没有区别; 唯一 应该在生产环境中更改的是托管环境的服务器以及数据库配置。这可确保您不会意外测试/使用您的客户也可能与之交互的任何数据。
生产部署本身应该(本质上)只是将文件 'copy-paste' 写入磁盘,并且通常使用 [=33] 等持续集成工具来完成=]Jenkins or TeamCity。假设您只有一个小型网站,这应该是一个几乎瞬时的过程,甚至不需要您的生产环境停机。如果该过程可能需要更长的时间(例如复杂的部署),您可能需要实施维护页面。这将通知您的用户您正在网站上工作,并让他们知道什么时候可以恢复功能。
我是 e-commerce 网站的开发人员,当我们规模较小时(一次有 50-75 个用户在线),我只会使用 FTP 例如 FileZilla 来更新我的文件我最近的编辑改变了,这意味着人们会收到我的更改,并且网站根本不会关闭。对于小的编辑,如果需要快速完成,我也只是 ssh 并手动编辑文件。
现在我们已经变得更大了,并且有其他开发人员(一次 100-200 个用户),公平地说,我以前应该这样做,但我直接从 PHP storm/version 部署控制。我有工作分支,一旦我的工作准备好部署,我就会把它放到主分支中。
一旦主分支将工作推送到其中,我就有了一个脚本来检查更改并克隆回购协议。 (这是自动发生的。)
这里有很多内容要介绍,其中一些是基于意见的(我会尽量避免)。
How do people write code and debug, and setup before deployment to verify that their website would function fine
创建本地开发站点的方法有很多种,但大多数现代方法都涉及容器。 Docker 是最受欢迎的,它允许您创建 Web 服务器、数据库等的副本,并 运行 在您的机器上本地创建它们。您还可以使用虚拟机创建生产服务器的副本,或者在本地计算机上简单地安装所需的软件包(即 php、apache、mysql)。
大公司通常会有一个 QA(质量保证)部门,负责在部署之前测试所有更改。正如其他人所提到的,其中一些可以通过测试软件实现自动化。当有 QA 团队时,您将拥有一个临时服务器,首先在其中部署更改。一旦更改通过 QA 和任何自动化测试(即 PHPUnit),它们就会部署到生产环境中。
Also, how would you copy over the code?
这可能会变得非常自以为是,所以我只会给你不同的选择,而不是支持或反对其中任何一个:
使用类似 rsync 的服务来传输文件。使用这种方法,您通常有一个登台服务器,您可以在其中从版本控制 检出代码(如果您不使用版本控制,则手动复制它)、运行 任何构建composer、gulp 等脚本,然后将文件同步到生产环境。在更大的设置中,您将所有这些包装到一个脚本中以使其自动化。
如果您正在使用版本控制(让我们以Git为例),您也可以将代码拉到您的生产服务器(相对于将其推向生产),通过 运行ning git pull
在您的生产服务器上。这将获得所有最新的更改,然后你 运行 任何构建脚本,如 composer、gulp 等
还有一些用于继续集成的工具(即 Jenkins)可以促进上述许多工作。您甚至可以在 GitHub 上设置挂钩,因此当您合并到 master
.
时,您的代码会自动构建和部署
在小型或个人项目中,使用 FTP 并手动传输文件可能更简单。
我一直在努力学习更多关于 PHP 和更多服务器端代码的知识,我意识到如果我想升级我的网站,我需要采取它下来并在用户在线时复制代码。
此外,由于我还没有启动我的网站,并且没有被 Google 索引,它很少有访问量,所以我可以使用 [=19= 随意上传和测试我想要的任何东西]风暴+ FTP。但我意识到,一旦我完成了我的项目并拥有了用户,我就不想在他们使用它们的同时进行更改。
人们如何在部署前编写代码并进行调试和设置以验证他们的网站是否正常运行?另外,你将如何复制代码?来自大型网站(即 apple.com、cnn.com - 需要 24/7 的网站)和较小的 blogs/websites.
你问的是 Continuous Integration
/ Continuous Deployment
('CI/CD
').
基本上,在 public 看到代码之前,您需要使用测试服务器来测试您的代码。您将代码部署到此服务器并对其进行全面测试,确认一切都已准备好投入生产。通过更多 in-depth 设置,可以使用 Selenium or TestComplete.
等工具自动执行此测试理论上,您应该将 'release cut' of a GitFlow 工作流程部署到您的测试环境中。这确保所有计划的更改都已完成并准备好最终交付给 public,而不会在发布中混淆任何其他更改。
当您最终准备好投入生产时,您需要计划 发布,并会见任何相关方。我推荐一个正确的发布清单,确认所有附加功能都按预期工作,并且您没有意外删除任何现有功能(regression testing ).
请注意,部署到生产环境与部署到测试环境应该完全没有区别; 唯一 应该在生产环境中更改的是托管环境的服务器以及数据库配置。这可确保您不会意外测试/使用您的客户也可能与之交互的任何数据。
生产部署本身应该(本质上)只是将文件 'copy-paste' 写入磁盘,并且通常使用 [=33] 等持续集成工具来完成=]Jenkins or TeamCity。假设您只有一个小型网站,这应该是一个几乎瞬时的过程,甚至不需要您的生产环境停机。如果该过程可能需要更长的时间(例如复杂的部署),您可能需要实施维护页面。这将通知您的用户您正在网站上工作,并让他们知道什么时候可以恢复功能。
我是 e-commerce 网站的开发人员,当我们规模较小时(一次有 50-75 个用户在线),我只会使用 FTP 例如 FileZilla 来更新我的文件我最近的编辑改变了,这意味着人们会收到我的更改,并且网站根本不会关闭。对于小的编辑,如果需要快速完成,我也只是 ssh 并手动编辑文件。
现在我们已经变得更大了,并且有其他开发人员(一次 100-200 个用户),公平地说,我以前应该这样做,但我直接从 PHP storm/version 部署控制。我有工作分支,一旦我的工作准备好部署,我就会把它放到主分支中。
一旦主分支将工作推送到其中,我就有了一个脚本来检查更改并克隆回购协议。 (这是自动发生的。)
这里有很多内容要介绍,其中一些是基于意见的(我会尽量避免)。
How do people write code and debug, and setup before deployment to verify that their website would function fine
创建本地开发站点的方法有很多种,但大多数现代方法都涉及容器。 Docker 是最受欢迎的,它允许您创建 Web 服务器、数据库等的副本,并 运行 在您的机器上本地创建它们。您还可以使用虚拟机创建生产服务器的副本,或者在本地计算机上简单地安装所需的软件包(即 php、apache、mysql)。
大公司通常会有一个 QA(质量保证)部门,负责在部署之前测试所有更改。正如其他人所提到的,其中一些可以通过测试软件实现自动化。当有 QA 团队时,您将拥有一个临时服务器,首先在其中部署更改。一旦更改通过 QA 和任何自动化测试(即 PHPUnit),它们就会部署到生产环境中。
Also, how would you copy over the code?
这可能会变得非常自以为是,所以我只会给你不同的选择,而不是支持或反对其中任何一个:
使用类似 rsync 的服务来传输文件。使用这种方法,您通常有一个登台服务器,您可以在其中从版本控制 检出代码(如果您不使用版本控制,则手动复制它)、运行 任何构建composer、gulp 等脚本,然后将文件同步到生产环境。在更大的设置中,您将所有这些包装到一个脚本中以使其自动化。
如果您正在使用版本控制(让我们以Git为例),您也可以将代码拉到您的生产服务器(相对于将其推向生产),通过 运行ning
git pull
在您的生产服务器上。这将获得所有最新的更改,然后你 运行 任何构建脚本,如 composer、gulp 等还有一些用于继续集成的工具(即 Jenkins)可以促进上述许多工作。您甚至可以在 GitHub 上设置挂钩,因此当您合并到
master
. 时,您的代码会自动构建和部署
在小型或个人项目中,使用 FTP 并手动传输文件可能更简单。