在云上做了一次 ops,感觉像是在烂泥里爬行

2022-09-15 05:17:13 +08:00
 levelworm

当然如果是 bare metal 上肯定也好不到哪里去。

今天尝试把一个 Docker Image 推送到 Google Cloud ,然后用 Cloud Run 跑服务,遇到了无数的问题。先是 Docker 不熟练,需要用 Nginx 服务器把 MKDocs 编译出来的静态站点显示出来,研究了半天 Dockerfile 的语法,终于用双 Docker 的方法搞定了。本地上能够用 127.0.0.1:80 来访问,第一阶段成功。

接下来是把 Docker Image 放在 Cloud Run 上跑。碰到了许多问题——首先是许可不足,搜索了一下,发现可以用 impersonate service account 的方法借服务账号的权限。第一次成功了,把 Docker Image 推送到了 Artifact Registry ,但是 Cloud Run 怎么跑也跑不出来,看 log 什么也没有。这次折腾了不少时间,后来发现,原来是自己脑残,M1 上 build 的不能在云端用,必须是 amd64 的。

重新编译了之后再次推送,老问题出了新花样,不知道什么原因总是说我没有 crendential ,折腾了老半天,只好用另外一种办法给 docker 推送的权限,这次总算搞定了。最后一步就是访问 Cloud Run 的网站,发现 Cloud Run 的 url 总是显示 403 ,原来是需要 token ,但是 Chrome 上改 header 十分麻烦,最后用 Modheader 解决了。

当然事情还没做完,之后还要研究怎么用 GitHub Action 来做 CICD ,不然如何做到动态部署呢?当然今天实在是没心思搞了,明天继续。

我的感想就是,让我们这种没做过开发的人做 Ops ,真是受罪。我从来没用过 Nginx 的人,哪里知道怎么设置?更别说还得在 Docker 里写额外的设置。我也没弄过 Cloud Run ,它是有 doc ,问题是 doc 未必能解决我的问题,最后还是 Stackoverflow 一把梭。好在本人搜索技能尚可,所有的东西都能搜到。看来搜索能力的确是我们这种挫逼的必备技能。

3074 次点击
所在节点    程序员
32 条回复
AS4694lAS4808
2022-09-15 10:26:53 +08:00
@levelworm 怎么感觉像是 DBA+运维。。?但是运维对云原生这种东西应该很熟吧。。那 ETL 涉及到清洗分析的话,算是大数据?是的话可能确实对云原生不太了解。但是

慢慢学吧,都有这种时候,除非跑路,哈哈
mysalt
2022-09-15 10:36:00 +08:00
第一次就能让你这么顺畅的跑下去,那还要专门的 Ops 团队干啥呢。而且 Google Cloud 有专门的 DevOps 证书的,要不先考个证再上岗?
GopherDaily
2022-09-15 10:54:01 +08:00
从实际体验来说, 云确实极大的降低的了运维成本,提供了更丰富的功能,更弹性的伸缩。

但是这依然是一个非常专业的领域,主要还是面向专业客户。
levelworm
2022-09-15 11:10:21 +08:00
@AS4694lAS4808 21
也不是,目前就是一个混杂的东西,现在只能做做 做底层的梦了。实在没时间在上课之外自学。
levelworm
2022-09-15 11:11:08 +08:00
@mysalt 22
哎坛贤说的也是,这玩意的确需要经验。好在我这服务是对内的。
linuxyz
2022-09-15 11:25:31 +08:00
CI/CD 显式脚本化的好处: 把手动的不确定性和隐性时间成本给消除了。

换一种方式说就是: 强迫开发人员用自动化流水线的方式来固化所有的步骤。
BeautifulSoap
2022-09-15 12:10:48 +08:00
云服务不熟的话,建议直接用自带的 code build 来构建镜像,因为官方会有相对完善的指导

https://cloud.google.com/build/docs/build-push-docker-image?hl=zh-cn
lscho
2022-09-15 12:23:27 +08:00
docker 不会,Nginx 没用过,没做过开发,竟然最后都能让你跑起来。这还不足以说明云+ops 足够简单和方便了吗?什么叫烂泥里爬行?简直是机器人指导盲人走路了。

让你传统部署你更搞不定。
anubu
2022-09-15 12:44:34 +08:00
错误的期望管理。
外科医生不会在第一次给别人做心脏手术时就期望很顺利。当然,事实上外科医生不可能去做心脏手术。
计算机从业人员往往都有一种认知,RTFM ,我什么都能干。事实上,可是差不太多,啃啃文档,大部分的确能理解,实践环境也不难找,不用像医生在大活人身上试水。但毕竟还是分了一些职能和岗位,且不说文档质量怎么样、实践前对文档的理解怎么样,至少不应该期望很简单就配置完了,如果这么简单,它早就是一个按钮了。
levelworm
2022-09-15 19:14:44 +08:00
@lscho 28
其实好希望在 bare metal 上试一下。。。估计是比较复杂。
levelworm
2022-09-15 21:51:10 +08:00
@anubu 29
问题在于外科手术有人带,这个吧,目前没人带,所以就比较懵逼。换句话说就是纯粹碰运气了,搜到了就有了,搜不到我哪里知道这么多选项指的是什么意思。。。也许给我一个月的时间从头到尾看完文档能好些,但是还是 SO 更靠谱一些。
levelworm
2022-09-16 09:02:52 +08:00
@BeautifulSoap 27
多谢,只不过经理希望用 github action ,所以我用这个试试看。今天运气好,折腾了半天搞定了 CICD ,本来以为还需要好几天的,这几天运气都蛮好的。。。

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

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

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

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

© 2021 V2EX