有没有发现写了好几年代码,如果离开公司连生产环境如何部署都不会?

2020-10-20 15:33:38 +08:00
 sunshinev

大家是如何解决公司内的容器化部署的?

用开源的部署系统么?还是自己开发一个?

11687 次点击
所在节点    程序员
79 条回复
jaylee4869
2020-10-20 17:26:53 +08:00
现在后端都在学 K8s,写写 yaml 就能上线咯。
weer0026
2020-10-20 17:29:14 +08:00
小项目我自己 docker 部署,大项目公司 k8s 集群。
blessyou
2020-10-20 17:31:23 +08:00
不存在的。

k8s + 白嫖 github aciton + 白嫖阿里云容器服务镜像仓库 完全可以自己弄一套 ci/cd 流程。我自己的网站就是这个方案部署的, 改代码开开心心的 commit, 等着 IM 的 deploy 通知 。
whileFalse
2020-10-20 17:32:41 +08:00
emmmmm……这个问题我可能有点发言权……
我是运维,我司有 100 个左右的微服务,大部分在 k8s 里,少部分直接部署在虚拟机上的 Tomcat 环境。
我司有 7 个测试环境。各个测试环境会共享数据库,并且每个环境不是完整的,很多环境只能用于部分业务的测试。
我最近一段时间的工作:
1. 写一个单机部署脚本,一键创建单机 k8s 环境和无状态中间件
2. 写一个数据导入脚本,一键部署空的数据库,并从 s3 下载备份文件,导入到数据库中
3. 一个很简单的构建部署一体化程序,简单的几步操作就可以部署全部 k8s 服务
4. 正在做 Tomcat 服务转 k8s 服务的工作。

以上工作的主要目的就是能很简单的启动一个几乎完整的环境。当然还有一些不会包含的组件,比如镜像仓库、配置中心等等。这是不是 LZ 想要的?
chenshun00
2020-10-20 17:37:20 +08:00
阿里云 ACK 贵不到哪里去,消耗量大能大到哪里去,8C64G 几台 3 年才这么点钱,人力可比这点钱贵多力.
sunshinev
2020-10-20 17:54:26 +08:00
@simon1991 宝塔也支持 docker 容器吗
cszchen
2020-10-20 18:00:11 +08:00
docker-compose,或者希望更爽用 rancher
xuanbg
2020-10-20 18:00:44 +08:00
jenkins 用起来很简单,docker 简单做个镜像也很简单,ECS 也几乎不需要设置什么,就这点,学会了就能部署项目了呀
wangyzj
2020-10-20 18:17:27 +08:00
让你忘记怎么部署是趋势
2won4u123
2020-10-20 18:31:10 +08:00
@blessyou 大佬,怎么玩的,有没有博客指点一下?
pierreorz
2020-10-20 18:36:26 +08:00
rancher 啊。跟公司大小无关。还是要接触接触的,可以自己搞事
ghjacky
2020-10-20 18:42:49 +08:00
中小型企业,包括外包项目,容器化部署平台,rancher 最适合,也是用的最普遍的
locoz
2020-10-20 18:44:05 +08:00
没发现…反而一般公司运维还没我懂…
blessyou
2020-10-20 18:49:35 +08:00
@2won4u123 我这个没办法那么快讲完。 你可以采用 docker swarm + portainer + github action +阿里云容器仓库 的方案 也能达到差不多的效果
chiuan
2020-10-20 18:52:31 +08:00
@blessyou 跪求从零开始的教程
ryd994
2020-10-20 19:13:12 +08:00
一个容器就觉得难,那我这些写内核的怎么办?离了公司连源代码都没有
jerryrib
2020-10-20 19:17:58 +08:00
写这段代码的时候,只有上帝和我知道它是干嘛的。现在,只有上帝知道。
asanelder
2020-10-20 21:00:58 +08:00
@jerryrib #38 铁子,笑尿了
buffzty
2020-10-20 21:15:57 +08:00
我们一般都是单机应用
前端: 创建新 tag 提交到 github,webhook -> jenkins. docker 构建,将生成文件上传到 oss 并根据版本备份. 将 index.html 复制到 web 目录
后端 api: 创建新 tag 提交到 github,webhook -> jenkins. docker 构建 新镜像. 停掉 api 容器,用 docker-compose 启动新容器 删除之前版本容器和镜像. 先后启动 2 个 api 容器,接口无缝升级.
后端基础容器: nginx redis mysql phpmyadmin.
环境变量全部在 jenkins 中. 现在开发体验很好.程序员只需要创 tag 过一会就会收到邮件通知.
这东西就第一次麻烦 后面都简单
gochat
2020-10-20 21:32:17 +08:00
@buffzty 停掉 api 容器,用 docker-compose 启动新容器,你怎么保证停掉的容器中所有请求都处理完成了,也许是 ing 状态呢。

按理应该先上新容器,再向老的容器发送退出信号,容器接收到退出信号,先发给应用程序,应用程序接收退出信号处理完请求队列里的请求,应用程序退出,负载均衡上摘除对应容器,在容器接收到退出信号的同时,按理说上层 lb 就不能在把请求转发到要下线的容器了,你仔细想想你这个是不是真正意义上的做到了无缝升级。

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

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

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

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

© 2021 V2EX