我们应该在线托管代码吗?


22

我们正在我的工作场所中寻找良好的源代码控制和项目管理解决方案,我建议创建一个GitHub组织和私有存储库。我之所以喜欢GitHub有很多原因,但这并不是关于GitHub的事实(事实上,我的同事们会提出支持竞争平台的观点),而是关于在线存储我们的私有代码

我试图了解这是否是一个好主意。这显然是有优势的,因为它消除了服务器成本(至少直接),并且使代码搜索(所有内容都在线)更加容易。

但是我们的团队还没有定论,这使我想到我的问题,为了做出这个决定,我们应该考虑什么?


13
请注意,您无需将代码存储在云中即可使用github。他们出售企业产品
Gort Robot

1
@StevenBurnap是的...价格是组织包价格的10倍。=)
Mathieu Guindon '16

12
另请注意,您不需要Github使用git
Harrison Paine

6
请记住,这不仅与代码有关。对于开发人员来说,意外提交密码和SSL密钥之类的事情很常见。
Nate CK

5
坦率地说,我没有人提到过GitLab社区版,它与GitHub不同,它实际上是开源的。您无需将代码存储在云中获取专有软件即可使用GitLab。(@StevenBurnap)
通配符

Answers:


24

作为职业选手,

如果您公司的办公室烧毁了,则代码仍在服务器上。

如果您公司的办公室没有烧毁,但是git存储库所在的服务器确实没问题,那么您仍然拥有本地副本。

如果将存储库托管在公司办公大楼中的服务器上(例如使用网络共享驱动器...?),则如果公司办公室烧毁,则两者都会丢失。

当然,您仍然需要照常备份...

随时用“被勒索软件感染”代替“烧钱”。

基本上,可用性提高了。

作为缺点

您必须与托管代码的第三方共享文件。如果您有非常重要的公司机密,则可能不允许这样做。例如,如果您有一个包含来自欧洲公民的个人信息的数据库,则可能不允许您将代码托管在来自美国的第三方上-因为它们会受到美国法律的约束,因此不能依赖于遵守欧盟隐私法。即使这不是法律问题,您也应该注意,第三方可能会受贿泄露您的私人文件。对于第三方来说,这可能真的很糟糕(巨大的声誉损失),但是这可能会发生。

基本上,保密性下降了。


如果您对交易的机密性可以接受,那么与第三方在线托管私人代码是个好主意。否则,请不要。您可以解释这些折衷方案,以使您的老板做出明智的决定-但您可能会听到“否”的声音。如果您给某人一个决定,那将会发生。如果老板说不,那就是那样。我认为强行说服你的老板不是一个好主意。


由于这是一个列表问题,因此要添加到列表中的另一个缺点:如果托管组织采用Google Code的方式怎么办?
David Hammen

@DavidHammen如果服务器烧毁,则您具有本地副本...但是...我想计划外维护存在问题...?我认为这一点在双方都有。如果您托管自己的服务器,则宕机时间可能会更多;如果其他人托管该服务器,则在出现不便时可能会宕机。在这种情况下,github可能会变得po琐,但是您的服务器也会如此。我认为在这种情况下,第三方消失的可能性较小。
Pimgd

9
请注意,如果您使用的是git,则每个开发人员都将拥有该存储库的副本。(减号私有分支。)
戈特机器人

3
@DavidHammen因此,就像服务的服务器被烧毁一样,您仍然拥有本地副本。然后,您可以选择切换到替代服务或将其全部纳入内部。
8bittree '16

3
@ njzk2是否因为低延迟网络?还是因为您是一家小公司?也许您的互联网简直是垃圾,您想快速访问文件...
Pimgd

11

显然,这是对提供者的信任以及您对源代码有多重视的问题。

但是,我认为很明显,至少在过去,人们高估了他们的源代码。

  • 用于“业务流程自动化”产品;内部团队会专门为业务需要创建网站和其他软件。该软件对其他人的价值通常非常低。

  • 对于可售软件;它是您所出售的二进制文件,可以在不访问源代码的情况下进行复制和修改。

其次,您还应该考虑是否将代码存储在第三方中是否实际上将您的风险暴露提高到当前水平之上。在许多情况下不会

  • 例如; 如果您的产品是没有后端代码的网站,则您的代码已经公开。
  • 如果您的编译代码是分布式的,则可以将其反编译。
  • 如果您的代码是网站或服务,并且您是由第三方托管的。然后,第三方可以反编译您的代码。
  • 如果您将备份与第三方存储,则他们可以访问您的代码。

简而言之,大多数现代企业在日常业务中都会信任各种第三方。甚至对他们而言至关重要的事物。


3

这个决策过程的一部分可能是一些测试,反复试验。参加一个小型项目,让一些成员尝试一些不同的站点。这应该涵盖团队的可用性,但是还有其他注意事项。

  1. 当前的基础架构-一些公司已经拥有服务器,互联网连接,VPN和具有托管服务器技能的人员,因此可以更轻松地吸收一些成本和疑虑。一家初创公司可能更倾向于使用Github之类的东西,因为他们不必进行此类投资,并且可以更快地启动并运行。
  2. 预算-#1的许多方面都将落在这里,但是可能还有其他价格昂贵的解决方案。一些公司可以证明费用合理。显然,预算很低,因此消除了许多选择。
  3. 团队分配-当每个人都在同一小时在同一办公室工作时,您可能不需要github。如果您的文件服务器负担不大,只需将Git放在上面即可。
  4. 安全性-您可能会找到许多安全的站点,但是对某些客户端的安全性感知更为重要。拥有自己的铁腕网络可能是赢得自信的正确选择。安全徽章,视网膜扫描仪和武装警卫只是向某些客户大喊大叫。
  5. 培训-不仅是如何使用该应用程序,还包括公司/团队要制定的规则和程序。了解如何做事可以驱动使用哪些工具。如果他们喜欢您做事的方式,吸引其他团队成员会容易一些。

开始完成编码和交付的整个过程。参与此过程的人员越多越好。您不想采用基于某些标准的源代码控制平台,只是让管理人员改变一切。“这种分散的敏捷功能不起作用,因此我们需要所有人从星期一开始,在8-7点从办公室开始工作,好的。”


2

我并不一定要说您不应该将公司的存储库托管在云中,但是我个人经历了云托管的一些弊端和痛苦。

您的互联网连接速度和可靠性如何?

对我来说,这是最大的考虑因素。例如,我的公司位于一个美丽的乡村地区。尽管我们的内部网速度飞速发展,但我们的内部网速度充其量却是缓慢的,最坏的情况是直立的。

根据您使用的VCS,可以减轻某些痛苦。像Git 这样的分布式版本控制系统还不错,因为您仍然可以在本地工作。如果确实需要与同事共享一些代码,则甚至可以在网络驱动器上启动新的存储库。相比之下,即使使用整个Team工作区,您都无法真正使用Team Foundation进行任何这些操作。

但这仅仅是代码。云托管存储库中不仅有代码,还有很多其他功能。您的工作项(功能/错误列表)如何?您的文档(维基)呢?您的持续集成构建如何?所有这些内容也可能与代码一起托管在云中。如果您的互联网连接中断,如果没有这些东西,您将如何工作?

Gitlab提供了一个免费的内部版本,可能会提供超出团队需求的版本。我强烈建议您进行本地安装。它将大大降低风险。


1
令人惊奇的是,由于我在城市中拥有可靠的互联网连接,因此我对此的看法发生了变化。如果您的互联网可靠,则没有理由支付在专用服务器上维护它们的成本。
RubberDuck

1

为了做出这个决定,我们应该考虑什么?

您应该考虑不利因素。我(以及其他人)成功地鼓励我的现任雇主停止在私人github仓库中托管公司的王牌知识产权珠宝。不要误会我的意思。github非常适合开源软件。

对于封闭源代码软件,您是否已经让github.com(或某些替代方案)签署了保密协议(NDA),不将您的源代码发布给全世界?祝你好运!

在我看来,在其他实体与您签署保密协议之前,将其皇冠上的知识产权珠宝泄露给其他实体是完全疯狂的。您计划使用不与客户签署NDA的服务(例如github)。相反,它们以非常长的EULA(最终用户许可协议)的形式提供了模糊的承诺。

Github自己意识到这可能是一个重要的问题,因此,他们提供了Github Enterprise作为一种在自己的服务器上托管源代码(和其他私有内容)的机制。


4
那么...对于一个简单的制造商的网站,那应该没事吧?公司的“皇冠知识产权”更多地是关于我们正在制造的产品,而不是用于推广它的代码。
Mathieu Guindon '16
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.