大家是如何解决公司内的容器化部署的?
用开源的部署系统么?还是自己开发一个?
1
raaaaaar 2020-10-20 15:59:18 +08:00 via Android 3
这本来就是运维的任务啊,如果在公司你个开发来搞这些,那肯定有问题。不说该不该学的问题。
|
2
prof 2020-10-20 16:02:56 +08:00 1
想写个测试商城部署到云上还需要学 command,发现会的还是太少。加油
|
3
GM 2020-10-20 16:03:56 +08:00 1
docker swarm + portainer,这是我发现的最简单好用的容器化部署方案了。对大部分小公司来说,k8s 过于复杂了。
|
4
simon1991 2020-10-20 16:05:17 +08:00 1
大公司找运维
小公司上宝塔() |
5
chogath 2020-10-20 16:06:25 +08:00
阿里 ACK
|
7
lbp0200 2020-10-20 16:12:09 +08:00
你说的是全栈工程师
|
8
channg 2020-10-20 16:45:51 +08:00
公司有公司的 不用管 自己想要部署需要自己研究
|
9
RockShake 2020-10-20 16:53:03 +08:00
小公司能接触到,大公司职能分配太清楚了
|
10
easonHHH 2020-10-20 16:55:08 +08:00
你说的是全干工程师
|
11
hereIsChen 2020-10-20 16:56:34 +08:00
宝塔+1
|
12
matrix67 2020-10-20 16:57:04 +08:00
![applicationer_writer.png]( https://i.loli.net/2020/10/20/nu76WjYTGMJI1Lk.png)
|
13
gengzi 2020-10-20 16:59:59 +08:00 1
jenkins + docker
|
14
zunceng 2020-10-20 17:02:17 +08:00
k8s 很复杂吗?只是使用的话挺简单的呀
|
15
tandaly 2020-10-20 17:04:33 +08:00
rancher
|
16
opengps 2020-10-20 17:07:05 +08:00
我相反,一直做得小公司入门性质的工作,大公司里待着写模板化的代码,真没意思
|
17
optional 2020-10-20 17:10:50 +08:00 via iPhone
有了 docker 运维不是个事,干净的系统加容器就好。
|
19
fangcan 2020-10-20 17:20:16 +08:00
这个你不会也正常,因为你不负责这块 想解决这个问题,就是自己弄个产品就可以了
|
20
clf 2020-10-20 17:25:57 +08:00
公司里自己部署东西容易被运维打和甩锅。
|
21
jaylee4869 2020-10-20 17:26:53 +08:00
现在后端都在学 K8s,写写 yaml 就能上线咯。
|
22
weer0026 2020-10-20 17:29:14 +08:00
小项目我自己 docker 部署,大项目公司 k8s 集群。
|
23
blessyou 2020-10-20 17:31:23 +08:00
不存在的。
k8s + 白嫖 github aciton + 白嫖阿里云容器服务镜像仓库 完全可以自己弄一套 ci/cd 流程。我自己的网站就是这个方案部署的, 改代码开开心心的 commit, 等着 IM 的 deploy 通知 。 |
24
whileFalse 2020-10-20 17:32:41 +08:00 1
emmmmm……这个问题我可能有点发言权……
我是运维,我司有 100 个左右的微服务,大部分在 k8s 里,少部分直接部署在虚拟机上的 Tomcat 环境。 我司有 7 个测试环境。各个测试环境会共享数据库,并且每个环境不是完整的,很多环境只能用于部分业务的测试。 我最近一段时间的工作: 1. 写一个单机部署脚本,一键创建单机 k8s 环境和无状态中间件 2. 写一个数据导入脚本,一键部署空的数据库,并从 s3 下载备份文件,导入到数据库中 3. 一个很简单的构建部署一体化程序,简单的几步操作就可以部署全部 k8s 服务 4. 正在做 Tomcat 服务转 k8s 服务的工作。 以上工作的主要目的就是能很简单的启动一个几乎完整的环境。当然还有一些不会包含的组件,比如镜像仓库、配置中心等等。这是不是 LZ 想要的? |
25
chenshun00 2020-10-20 17:37:20 +08:00
阿里云 ACK 贵不到哪里去,消耗量大能大到哪里去,8C64G 几台 3 年才这么点钱,人力可比这点钱贵多力.
|
27
cszchen 2020-10-20 18:00:11 +08:00
docker-compose,或者希望更爽用 rancher
|
28
xuanbg 2020-10-20 18:00:44 +08:00
jenkins 用起来很简单,docker 简单做个镜像也很简单,ECS 也几乎不需要设置什么,就这点,学会了就能部署项目了呀
|
29
wangyzj 2020-10-20 18:17:27 +08:00
让你忘记怎么部署是趋势
|
31
pierreorz 2020-10-20 18:36:26 +08:00
rancher 啊。跟公司大小无关。还是要接触接触的,可以自己搞事
|
32
ghjacky 2020-10-20 18:42:49 +08:00
中小型企业,包括外包项目,容器化部署平台,rancher 最适合,也是用的最普遍的
|
33
locoz 2020-10-20 18:44:05 +08:00 via Android
没发现…反而一般公司运维还没我懂…
|
34
blessyou 2020-10-20 18:49:35 +08:00 via Android
@2won4u123 我这个没办法那么快讲完。 你可以采用 docker swarm + portainer + github action +阿里云容器仓库 的方案 也能达到差不多的效果
|
36
ryd994 2020-10-20 19:13:12 +08:00 via Android
一个容器就觉得难,那我这些写内核的怎么办?离了公司连源代码都没有
|
37
jerryrib 2020-10-20 19:17:58 +08:00 5
写这段代码的时候,只有上帝和我知道它是干嘛的。现在,只有上帝知道。
|
39
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 过一会就会收到邮件通知. 这东西就第一次麻烦 后面都简单 |
40
gochat 2020-10-20 21:32:17 +08:00
@buffzty 停掉 api 容器,用 docker-compose 启动新容器,你怎么保证停掉的容器中所有请求都处理完成了,也许是 ing 状态呢。
按理应该先上新容器,再向老的容器发送退出信号,容器接收到退出信号,先发给应用程序,应用程序接收退出信号处理完请求队列里的请求,应用程序退出,负载均衡上摘除对应容器,在容器接收到退出信号的同时,按理说上层 lb 就不能在把请求转发到要下线的容器了,你仔细想想你这个是不是真正意义上的做到了无缝升级。 |
41
buffzty 2020-10-20 21:57:19 +08:00
@gochat 我 api 是用 go 写的,接收到停止信号会等待所有 api 处理完成.有 5 秒超时. 并不是立即停止. 跟 nginx -s stop 一样的处理逻辑. 1 停,3 启动,2 停,4 启动,永远保证有一个容器在运行 还有问题吗 杠精
|
42
CoderGeek 2020-10-20 22:16:33 +08:00
我现在一直保持自己本地的 docker 镜像 我自己的环境搞一份 哈哈哈
|
43
Yoock 2020-10-20 22:30:11 +08:00
不敢用宝塔
|
44
gochat 2020-10-20 23:00:35 +08:00 1
@buffzty hh 你别激动,我可不是杠,我是发现很多人的没完全考虑清楚,你说的这个我当然知道,在问一句,流量到你的 go 应用上一层是啥
|
45
threeEggs123 2020-10-20 23:06:45 +08:00 via Android
git merge master -> webhook -> Jenkins -> docker file -> image repo -> ECS (ELB,DNS …) -> Canary deploy ->Replace old -> IM tool(release email)。大概就这些,顺序好像有点乱😂
|
47
sampeng 2020-10-21 00:01:47 +08:00 via iPhone
不会部署自己代码?连怎么运行的逻辑都不知道。这跟运维有什么关系?研发最低限度要知道怎么在 docker 里面工作的。docker 运行在哪可以不用关心。这是最低底线了。连运行环境都不知道,如果是 java 系,严重怀疑你可能对虚拟机的理解也是很薄弱
|
48
imycc 2020-10-21 03:28:01 +08:00
不会不知道,因为我是运维 hhhh
但是换了公司确实需要熟悉一下环境。不同的公司有不同的发布流程和发布系统,操作上肯定是要改变的。 朴素一点想,运行代码需要考虑代码+合适的 OS+软件依赖+代码库依赖+数据库等配套,很多东西其实云厂商都提供了,直接用起来就是。再之后再考虑如何利用 CI/CD 优化发布流程。 |
49
594duck 2020-10-21 04:52:01 +08:00 via iPhone
|
50
594duck 2020-10-21 04:54:00 +08:00 via iPhone 3
看了一些很厉害的 docker 爱好者。
原来都是 2,3 个包,1,2 个 ecs 环境呀。 太好了,我已经看到在生产环境吃瘪的一脸扭曲的样子了 |
51
way2explore2 2020-10-21 05:18:49 +08:00
难道不是 15minutes to 2 hours 就学会了吗?即使之前不 pipeling ci/cd
|
52
ericgui 2020-10-21 06:27:34 +08:00 via iPhone
You are just a tiny part of the whole system.
|
53
buffzty 2020-10-21 06:48:43 +08:00
项目不基本都是 数据库 缓存 web 服务器 这 3 个主要的包吗? 大多数项目一两个服务器还不够. qps 上去了 就用云数据库 云缓层. 部署一个应用难道还要把 运维的那一套全给你列出来 你在那装什么呢 yyr
|
54
CallMeReznov 2020-10-21 07:02:07 +08:00
羡慕楼上,我现在快要接手运维的项目全是开发自己布置的,我现在光看就不想接手,看到 7-8 种系统的时候杀了他们🐎的心都有
|
55
qiumaoyuan 2020-10-21 07:03:10 +08:00
没有啊
|
56
yuananf 2020-10-21 07:17:26 +08:00 via Android
aws 上用 cdk,写好代码之后一个命令能把架构都搭好,其它云用 pulumi
|
57
lqw3030 2020-10-21 07:35:27 +08:00 via iPhone
多捣腾自己的东西,整个流程就都会了
|
58
Cbdy 2020-10-21 08:32:32 +08:00 via Android
简单应用 systemd 加一堆 shell 脚本,复杂应用 k8s
|
59
dayeye2006199 2020-10-21 08:33:08 +08:00
可以用 paas,heroku. Digitalocean 的 app
|
60
alexzhu592 2020-10-21 08:44:04 +08:00
@viator42 php 的项目,宝塔爽到飞起
|
61
aino 2020-10-21 09:10:59 +08:00
我和 33 楼一致的想法....不会大家真不会吧...
|
62
cheng6563 2020-10-21 09:17:21 +08:00
docker swarm 功能还是太缺失了。上 k3s 吧
|
63
fenglangjuxu 2020-10-21 11:00:51 +08:00
不管是 php 还是 golang 还是 lua 我基本都能部署的起来
但是项目的别的附属的生态链 就费劲(虽然本地折腾过,但是和线上的还是有区别的)了 比如 elk grafada 的画图 |
64
kiddingU 2020-10-21 11:03:13 +08:00
jenkins + k8s 完成部署,同时用 rancher
|
65
jzphx 2020-10-21 11:13:28 +08:00
阿里云 flow 打包+执行脚本,机器上把可执行 jar 包配置成 service
|
66
lululau 2020-10-21 11:15:45 +08:00
学那么多技术有个鸟用,技术再好 35 岁一样被淘汰,不如学点吹牛逼拍马屁的真本事
|
67
KuroNekoFan 2020-10-21 11:16:33 +08:00
之前我碰到过有同事尝试用 tar 命令来解压 zip 文件的
|
68
zypy333 2020-10-21 11:43:30 +08:00
@Illusionary 公司新招的前端同事不知道怎么配置 IP,这正不正常
|
69
tairan2006 2020-10-21 13:30:06 +08:00
小公司自己部署不用 docker 不就是写几个脚本么
|
70
yaphets666 2020-10-21 13:36:23 +08:00
@zypy333 配置什么 IP? webpack-dev-server 的 IP?
|
71
xiaoDevil 2020-10-21 13:45:50 +08:00
@yaphets666 我猜测是配电脑的 IP 吧
|
72
arloor 2020-10-21 13:49:15 +08:00 via iPad
那是你菜
|
73
wangbudong 2020-10-21 13:54:48 +08:00
完了,我会,看来是我菜了
|
75
woodensail 2020-10-21 14:39:51 +08:00
有没有发现写了好几年代码,如果离开公司连如何建设机房都不会?
|
76
defunct9 2020-10-21 14:48:13 +08:00
@woodensail 一年换个机房 ,年年搬家
|
77
ReinerShir 2020-10-21 14:58:58 +08:00
@blessyou 这一套和 k8s 有啥区别?哪个简单点?
|
78
zypy333 2020-10-22 10:35:17 +08:00
@yaphets666 就他自己 win10 本上的 ip...说以前都是直接连上 wifi 就自动有网了
|
79
yaphets666 2020-10-22 11:03:39 +08:00
@zypy333 可能培训班出来的 不过问题不大 能干活就行
|