您会像这样托管源代码控制服务器吗?

您会像这样托管源代码控制服务器吗?

我想托管一个 SVN 服务器(或 git 或 mercurial 或其他)。我有两个选择:

  1. 将其安装在办公室壁橱里的一个小盒子上,仅连接到局域网。

  2. 将其安装在另一个州的数据中心的服务器上,该服务器具有可公开访问的 IP 地址并且当前托管面向公众的网站。

我对 #1 的担心是人们从办公室外连接的唯一方式是 VPN,但这是我办公室目前唯一的 VPN 点...因此它似乎很重。此外,如果办公室着火或有人决定从壁橱里偷走盒子,那么...服务器就没了。这意味着我无论如何都必须在某处保留备份...

我对 #2 的担心是,将源代码放在面向公众的服务器上意味着理论上有人可以访问服务器并窃取代码。事实上,该服务器上已经有一个面向公众的服务正在运行,这让我更加担心,因为可能会发现该软件的漏洞。

大多数公司如何安全地管理其源代码控制服务器和备份?

答案1

一般来说,你有 3 个安全选项。首先我要声明,我为项目锁,因此我一般偏向于为大多数公司提供托管解决方案。

内部自行托管

优点:

  • 代码只能在公司网络上访问,从而限制风险源
  • 你可以利用公司现有的安全基础设施,而不必自己研究安全问题

缺点:

  • 您需要管理服务器软件,因此您或您团队中的某个人需要成为 Subversion 管理员,执行用户添加、服务器弹回等操作。
  • 如果需要访问存储库的人位于禁止 VPN 访问的客户端站点,他们将无法获取所需的代码。在我以前担任软件顾问的职业生涯中,我经常看到这种情况。

使用托管服务提供商

优点:

  • 大多数托管提供商都有管理用户、项目创建和访问控制的界面,以及其他使项目管理更容易的附加功能。这意味着您不必了解 Subversion 管理的细节,您可以将管理职责移交给团队领导或其他可信赖的人员。
  • 托管服务提供商提供从任何地方的安全访问,并能穿透大多数防火墙。
  • 托管服务提供商无需做任何事情,只需确保服务器保持正常运行和受到保护,因此他们可以更轻松、更便宜地实现全天候访问和支持。

缺点:

  • 确实,面向公众的服务器从定义上来说面临更多风险。我认为破坏的风险大于盗窃;如果你不涉及金钱或政府机密,那么更有可能的是有人试图接管服务器来发送恶意邮件或代码并破坏你的代码作为附带损害,而不是窃取你的代码并试图在市场上与你竞争或入侵你的系统。话虽如此,一个被破坏的项目就是一个被破坏的项目,这是一个合理的担忧。

在托管公司设置服务器

优点:

  • 您可以完全控制系统、监控和安全
  • 您的团队可以从任何地方访问代码

缺点:

  • 您负责管理和安全,但无法利用公司的安全基础设施。

基于此,我建议要么内部托管,要么找托管提供商(您可以通过谷歌搜索“subversion hosting”来查看托管提供商列表)。似乎找外部提供商托管自己是两全其美的选择 - 您必须处理安全和管理问题,而无法享受公司基础设施的便利。托管提供商致力于确保客户数据的安全,有些托管提供商会签署保密协议以提供额外的保证,因此信任他们并让他们托管您的代码是合理的。

答案2

为此,我通常会在数据中心保留第二台服务器(一个非常小的盒子),但是如果这不是一个选择,那么还有许多托管服务可供选择。

答案3

如果您问的是“大多数公司”,我可能会回答 VPN 内联网。除此之外,他们可能还构建了某种冗余(Raid、某种磁带机器人)。

如果你不知道自己该怎么做,那就设置一个备份服务器,买一些 NAS 就行。如果你害怕被盗,那就把服务器放在其他柜子里。如果你害怕火灾,那就不要在办公室附近吸烟……在小公司用小预算工作时,你必须做出一些妥协(如果你的情况是这样的话)。

答案4

我会在本地运行 SVN 服务器并使用异地备份(磁带、rsync、在线、云等)。如果担心异地备份服务上数据的机密性,我会加密数据,并将加密密钥的副本保存在第三个位置(例如家里)或办公室的防火数据保险箱中。

了解大多数公司的做法可能没什么用,因为他们可能采用无数种方式来做这件事,而最常见的方式可能并不适合您的具体情况。

相关内容