贵司发布一次代码需要多长时间?

2017-06-14 11:13:30 +08:00
 Lucups
搞个小调查。

标准格式: 公司规模,项目类型,技术栈,发布工具,发布时长,你认为是否可以提升?
10056 次点击
所在节点    程序员
98 条回复
l32606
2017-06-16 06:42:53 +08:00
@chiu 什么公司,还专网
chiu
2017-06-16 07:46:29 +08:00
@l32606 可能专网这个概念比较冷门吧。相对于我们平时打电话用的公网,公安,消防,政府或军队等应急通信场景用的网络是专网
FanError
2017-06-16 08:23:14 +08:00
@rannnn 前台是用类 php 之类更新不用重启的语言吗?
welling
2017-06-16 09:04:35 +08:00
56 个 docker 发布 php,耗时 1 个多小时。还不能对某个文件升级,需要重做整个镜像
Clarencep
2017-06-16 09:33:40 +08:00
@yw9381 .env 当然要加到.gitignore 中。此外生产环境上的.env 文件要配置下权限,www 帐号只有只读权限,其他帐号都没有权限访问。


@welling php 发布用 docker 太重了点吧。完全牺牲了 PHP 可以随时热部署的优点。


@lightening Angular 打包原来这么慢呀。。。还好我们用的是 React/Preact/Vue
yw9381
2017-06-16 11:41:34 +08:00
@clino django 的 uwsgi 反带过去倒没有这种问题,因为静态目录不能直接访问到 /.git/元信息

@lightening 访问到当前代码库的前提是在浏览器上能够访问到.git 文件夹,能够访问到 git 的元信息,这在 php 中很常见,py,nodejs 的我不是很清楚,写的不多。

@zonghua env 本来就记录他原本该记录的东西就好了啊,生产和测试配置不同的信息就行。

@Clarencep 老铁没毛病~

其实 git 信息泄露这种情况还是多见于自己裸写开发的东西,如果是上了框架,例如 php 的 TP 或是 laravel,因为有 URL 路由及重写规则来处理,反而很少遇到这种情况。
hantsy
2017-06-16 14:44:43 +08:00
@Clarencep 敏感信息(数据库密码等)可以考虑用一个单独的 Vault,Java 的话 Spring Cloud 已经支持。
openbsd
2017-06-16 16:02:28 +08:00
脚本手工操作的路过
lightening
2017-06-16 19:53:49 +08:00
@yw9381 Python, Ruby ,Node 一般都不会这样。我的意思是,如果能从 web 访问源代码目录的话,即使你删了 .git 目录,当前版本的源代码不是还能被发现?
rannnn
2017-06-16 20:03:20 +08:00
@FanError 前台就是静态的 javascript 嘛
rannnn
2017-06-16 20:05:03 +08:00
我们用的 Bamboo
Clarencep
2017-06-17 10:34:34 +08:00
@hantsy 哦,Vault 是神马呀?没有用过。
yw9381
2017-06-19 08:42:52 +08:00
@lightening 线上是在对应环境上正在运行的代码,你直接访问的话代码是会正常运行的,php/py/ruby/node 基本上都是,不存在会直接看到源代码的可能,代码总归还是要部署到对应环境才能跑起来的,但是.git 这个目录原本就不属于代码,所以对应代码的解释器不会管这些,在 webserver 这里如果不做处理的话,会把这些当成普通的资源文件返回给客户端,也就造成了 git 信息泄露的问题。
wantchalk
2017-06-19 12:04:03 +08:00
@precisi0nux 同, 如果加上跑测试的时间可能 10 分钟才能完成部署. 不同的是我没有做蓝绿,因为要人工参与,后期如果换成负载均衡就不需要手动蓝绿了.
lightening
2017-06-19 16:56:58 +08:00
@yw9381

Ruby、Python、Node 都不是把源代码放在 HTTP server 根目录访问的,所以没有这个问题。以 Ruby 为例,是启动一个 Ruby 进程,然后接管 HTTP 请求。

据我所知只有 php 是把源代码放在 HTTP server 根目录下,然后直接用浏览器访问 .php 文件时,Apache/Nginx 会用 php 解释器去执行那个 .php 文件。我想问,如果这个目录下还有个属于源代码一部分的非 .php 文件比如 foo.bar,是不是可以直接通过 /foo.bar 访问到?
yw9381
2017-06-21 10:35:05 +08:00
@lightening php 毕竟是为了 web 而生的语言,其他的语言基本都是因为有需求所以才支持的 web 开发。php 的解释器要么 apache-mod,要么 php-fpm,不管哪个,如果没有路由没有重写规则,几乎就和 ftp 一样了,对于你说的 foo.bar,是肯定可以访问到的,如果没有对应的处理,就完全当文本文件返回来了,
lightening
2017-06-21 16:42:35 +08:00
@yw9381 对啊,所以如果不自己配置 HTTP server 规则,即使没有 .git 目录也有其他的安全隐患。
funnuy
2017-06-23 12:58:07 +08:00
暴露.git 肯定是不行的,连.git 都暴露了,.env 还远吗?

有些 PHP 框架、应用的入口 index.php 还真是在项目的根目录,然后同一级的.git 就很容易暴露了。

现在在阿里云的容器服务,重新部署大约 1 分钟。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/368277

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX