领导想搞 devops,让我找资料。无意挖到禅道的宝藏论坛,里面好多 devops 文章,在自动化测试板块: https://www.zentao.net/redirect-index-19289.html
用禅道用了 3 年,还是在上一家公司,后来回家发展来了这家小公司,什么项目管理工具都不用,每天工作就跟两眼一抹黑一样。
现在好了,说要搞 devops,我们团队人这么少搞得起来么?还不如上个工具先解决项目管理流程问题。
大公司很多搞 devops 的都失败了,感觉这个东西看着火,落地难。 所以,真的有公司搞 devops 了吗?效果怎样? 10 人以内的团队有必要搞吗?
1
Hilong 2021-07-29 10:17:30 +08:00
大公司有大公司的搞法,小公司有小公司的搞法
|
2
chigeyaowaner OP @Hilong 小公司要怎么搞啊,好多人都说成功率低,就是担心浪费了时间人力最后拿不到结果。
|
3
ghwolf007 2021-07-29 10:27:02 +08:00
devops 其实就是尽可能用自动化替代人工操作,先用开源工具搭一套 CI/CD 环境体验一下吧
|
4
YouKnowIt 2021-07-29 10:28:31 +08:00
慢慢来吧,小公司先把 ci 自动化测试,自动发版搞好就挺不错的了。然后服务的部署也要自动化
|
5
6IbA2bj5ip3tK49j 2021-07-29 10:28:36 +08:00
有必要。
别的不说,就在测试环境搞个 cicd 就能让开发体验好不少。 |
6
zoharSoul 2021-07-29 10:32:28 +08:00 4
现在不是都搞了吗
还有公司没搞的? |
7
defunct9 2021-07-29 10:34:30 +08:00
Gitops
|
8
sirius1024 2021-07-29 10:35:08 +08:00
DevOps -> AIOps -> NoOps
DevOps 已经非常成熟了,后两个基本还在概念炒作阶段。DevOps 里最典型的就是 CI/CD 体系建设,AIOps 里有监控数据分析、预警之类的,NoOps 是 AI 成熟后的无人值守了我猜~~~ |
9
swulling 2021-07-29 10:35:41 +08:00 2
DevOps 是整个研发管理的一个步骤,按照顺序一个个做
1. 版本控制,git svn 等等 2. 需求管理,不管用 jira 还是 github issues 等等,把需求管理起来 3. 自动编译并部署到测试环境 4. 自动测试 5. 自动发布并部署到线上环境 做完这些,就及格了,剩下的就是根据项目复杂度增加东西了。 |
10
WaterWestBolus 2021-07-29 10:39:34 +08:00
字节就搞的,之前用的是 devops,现在迭代到自己的 bytecycle 上面了。devops 真的方便很多。
|
11
lightjiao 2021-07-29 10:41:47 +08:00
安利一下我老东家的产品 https://www.uwintech.cn/
|
12
HAYWAEL 2021-07-29 10:42:07 +08:00
现在应该都有 gitlab CI/CD 这一套吧
|
13
DelayNoMay 2021-07-29 10:45:06 +08:00
把 circle ci 搞起来就可以了
|
14
zhang77555 2021-07-29 10:47:16 +08:00
搞个服务器,装个 docker, 用 docker 装个 gitlab,再搞个 gitlab-ci,
再定几个常用工程的 ci 脚本模板, 从零开始花个半天时间应该就能调教好 |
15
wellsc 2021-07-29 10:48:04 +08:00
devops 的门槛有这么高?
|
16
zhwithsweet 2021-07-29 10:52:34 +08:00
gitlab ci 不就完了
|
17
ipwx 2021-07-29 11:00:14 +08:00
ansible, docker, CI
还能有啥 |
18
wandehul 2021-07-29 11:00:51 +08:00
10 个人 ? 怎么搞 ? 人手都不够
|
19
chigeyaowaner OP @swulling 谢谢
|
20
chigeyaowaner OP @wandehul 可不是,项目管理都没搞明白就想搞 devops
|
21
lululau 2021-07-29 11:10:16 +08:00
加钱可解,月薪 50K 招 10 个懂运维的开发替换掉现有的人员呗
|
22
securityCoding 2021-07-29 11:23:16 +08:00 6
小公司就别瞎折腾了,jenkins == DevOps
|
23
dolphintwo 2021-07-29 11:23:31 +08:00
CI/CD 先上,CT 慢慢来
|
24
zooeymango 2021-07-29 11:28:39 +08:00
gitlab 一把梭
|
25
murmur 2021-07-29 11:29:58 +08:00 1
devops=dev + op 不给 op 的薪水,这不是太容易,反正都是全干
|
26
Hilong 2021-07-29 11:31:21 +08:00
@chigeyaowaner 我们当时 4 个人都搞了 。先把 jenkins 那一套搭起来。持续集成,持续部署搞定,会省好多力气。后面再+sentry,把监控也搞起来。如果用的是钉钉,还可以把报错信息通过机器人实时同步到群里
|
27
evilStart 2021-07-29 11:32:05 +08:00 via Android 4
来到 V2EX 才感觉到这世界的参差。。。我一直以为现在所有团队都有 DevOps 了。
最起码 CI/CD 要有吧,如果是小项目的话这搞起来也不难。而且能显著提升效率。10 个人都是开发的话至少要有一个人全职搞 CI/CD,主要包括维护 CI pipeline,同时你们开发也要知道写 cases 。要是开发都不写的话,那最好有两个人搞这个。问你们老板愿意出人不。 |
28
zhanggg 2021-07-29 11:45:33 +08:00
大有大的搞法,小有小搞法,先起个开源环境试试看你们需要啥最重要
另外专门搞 devops 没前途,干的活很难被认可 |
29
wangritian 2021-07-29 11:51:40 +08:00
小公司至少要做到 git push 后自动更新,阿里云的流水线入门很快
|
30
akira 2021-07-29 11:53:05 +08:00
devops 啊。。部个仓库 部个 jenkins,跑起来,就算是了啊。。
|
31
40EaE5uJO3Xt1VVa 2021-07-29 12:02:12 +08:00
我们都是楼上的做法,配置好 jenkins,直接推代码上去,自动打包部署 docker 。
还有什么更复杂的玩法么 |
32
dcoder 2021-07-29 12:12:54 +08:00
主要靠领导, 领导先吹牛弄到很多资源(预算经费, 人头 for DevOps engineers)
然后开始堆人,堆出一个(至少看起来)高大上的方案, 忽悠公司内部的 Dev 们使用. Done ! |
33
nimab 2021-07-29 12:22:39 +08:00
竟然面过这家公司。
|
34
sonxzjw 2021-07-29 12:28:56 +08:00
搞 devops 的都写满单元测试代码吗?!
|
35
JJsty1e 2021-07-29 12:30:36 +08:00
我的想法是在合并代码的时候自动跑一些单元测试和接口流程测试,但是接口的流程测试这块太麻烦了,首先数据库不方便 mock,其二,一个流程(比如订单系统),涉及到商品上线、用户下单、最后发货,这些流程又会有很多分支,这一系列操作用现有的测试技术太难整了,但是如果按单元测试的思路去进行最小单元测试,比如测试用户下单功能,那又要整备很多 flexures,反而也是一种麻烦。不知道你们是怎么处理这块的,还是说你们有自己写的测试框架?
|
36
Hasal 2021-07-29 12:48:02 +08:00
看到这个问题,才知道 DevOPS 还有失败的说法。本以为效能工具只会越搞越好,怎么会有越搞越差呢?现在公司、前同事们去的公司,大部分都有 DevOPS,只有一些规模极小的公司,还停留在原始阶段。
|
37
xzysaber 2021-07-29 13:10:26 +08:00
DevOps 其实大家一直都在做吧?只是现在给做的这个事情命了名。加之容器,K8S 的出现,使这件事情"更简单",更方便了而已。
|
38
snuglove 2021-07-29 13:34:41 +08:00
@chigeyaowaner 还是钱的问题吧...
|
39
guxingke 2021-07-29 13:36:53 +08:00
把专职运维劝退就得搞 devops 了...
|
40
bthulu 2021-07-29 13:40:17 +08:00
devops 到底是个啥, 我司现在是 gitea -> drone -> docker. 生产发版只要在 git 上打个 release-x.x.x 的标签就行了, 测试发版就打个 test-x.x.x 的标签. 删除标签就会自动回滚到最近的标签.
然后领导现在也天天喊着要搞 devops, 要给开发赋能, 但是到底要搞什么, 谁也说不清 |
41
asuraa 2021-07-29 13:44:39 +08:00
我司目前 gitlab 一把梭
gitlab + gitlabci + docker + swarm |
42
asuraa 2021-07-29 13:44:55 +08:00
忘了说我们后端就俩人
|
43
doveyoung 2021-07-29 13:45:58 +08:00
我觉得 devops 不是技术问题,是管理问题。。。
|
44
iyaozhen 2021-07-29 13:55:03 +08:00
大公司很多搞 devops 的都失败了,感觉这个东西看着火,落地难。
没有吧 现在还有哪个大公司没有 devops ? |
46
kuangwinnie 2021-07-29 13:56:27 +08:00
整个 aws 和半个亚马逊就是靠 devops 撑住的。。。
|
47
xuanbg 2021-07-29 14:15:50 +08:00
小团队,搞了很多年了。核心其实就一点:自动化部署。至少要实现半自动部署,就是 Jenkins 里面点一下构建就好的这种。至于 CI/CD 搞到什么程度,视你自己的实际需求而定,并非却多越好。
|
48
no1xsyzy 2021-07-29 14:29:23 +08:00
|
49
Jooooooooo 2021-07-29 14:38:55 +08:00
这玩意大公司能搞, 需要大量基础服务的支持
小公司就算了 |
50
ghostsf 2021-07-29 14:47:37 +08:00
小公司小团队 更要搞啊 多方便
|
51
sdushn 2021-07-29 15:13:21 +08:00
一步一步来吧,先规范化项目管理,定好合适的发版周期,然后再搞一下自动集成工具,自动化测试
|
52
sdushn 2021-07-29 15:15:10 +08:00
在基建比较完善的大公司还是比较好落地的,基建都支持的情况下只是大家工作习惯的改变。如果基建不完善,就只能一步步来做了,可以借鉴思想,做一些精简
|
53
eric96 2021-07-29 15:20:21 +08:00
1.推送代码,触发 ci,ci 通过后可以合并到 master 分支,基于 master 打 tag
2.打 tag 操作触发 jenkins 构建,这一步又有问题,线上环境和测试环境不是同一份配置文件的,配置文件也不在项目代码中,这里需要自动替换配置文件,然后构建完之后,还要基于 dockerfile 构建镜像,构建镜像之后,推送到私有仓库中 3.触发 k8s 自动部署 现在我们公司第一步是自动化的,第一步到第二步的触发没有做,需要手动去触发,第三步也是手动替换 k8s 。 以下是我的疑问: 1.难道 CI,CD 就是基于一些已有的工具如 jenkins,git 等进行配置,如果不支持就自行开发脚本把流程串联起来吗 2.如果没有单元测试和自动化测试,ci 和 cd 还有用吗 |
55
konakona 2021-07-29 15:38:45 +08:00
有必要,可以规范和约束运行环境。另外 devops 就是一个实现自动化编排、自动化构建等等以服务运维为目的的功能性流程的统称,无论多小的团队又或者多大的团队,都应该考虑 CICD 带来的优势和便利性。
它可以避免团队成员水平不统一和意识问题造成的一系列问题: - 环境不同 - 运行结果不同 - 不必自己手动去做一些工程化的事,当有 CICD 时,我们可以让它自动的做诸如:某一个 branch 被 MR 之前或之前自动跑测试或触发外部 API 执行 UI 自动化测试等 - 手动更新、安装、修改长年累月的服务器,还可能导致其他站点 /程序无法运行 - 代码监控 - 代码评级 - 问题探针 等等,工具能做的事就没必要人手再重新敲一次运行命令了。 |
56
konakona 2021-07-29 15:40:12 +08:00 1
这 3 年 devops 做的很成功,非常推荐深入一下,从 k8s 1.12+->helm -> gitlab 来一遍,会感觉很爽。
|
57
no1xsyzy 2021-07-29 15:51:33 +08:00
@qping devops 的起因不是这个,主要还是开发和运维的不一致。
但不妨碍资本家把一些可利用的口号利用起来想法儿削减人员。 |
58
HHAO2019 2021-07-29 16:51:38 +08:00
之前自建 gitlab 搞流水线,维护太麻烦了。无意看到了阿里的云效 devops 的流水线 ,接入很快。适合小团队,20 人一下免费
|
59
chih758 2021-07-29 16:58:00 +08:00
gitlab 一把梭就行,项目管理也可以用 gitlab
|
60
lamesbond 2021-07-29 17:07:00 +08:00
小团队推这个很难,我想让开发建 dev,test,prod 三个分支,提测,发版时合并下分支,push 代码打 tag,根据部署环境不同参数化构建项目,根本推不动,领导觉得自动部署只是解放了运维。
楼上大佬们说的自动测试,发版什么的我都想搞,奈何现实太残酷,不过就 jenkins 搞了自动部署就很舒服了,其他的慢慢来 |
61
u21t20o15 2021-07-29 17:13:00 +08:00
或者你买本书看看先吧
推荐:DevOps 实践指南,真的赞 |
62
Lemeng 2021-07-29 17:20:16 +08:00
领导还是有点远见的
|
63
yanjieee 2021-07-29 17:42:11 +08:00
小公司做好 gitlab ci 我觉得就及格了。
|
64
wccc 2021-07-29 17:45:03 +08:00
初创一个人 gitlab + gitlabci + docker +docker-compose +sonar
自己虚拟机跑一下试试 |
65
index90 2021-07-29 17:47:34 +08:00
小公司更容易搞,大公司部门墙了,想搞都搞不了
|
66
netwjx 2021-07-29 18:00:40 +08:00
devops 的关键点不是 ops 么?
上线后的才是重点呀, 前面瞎折腾那么多 CI/CD, 只对工程师这个人有用 对业务作用不明显, 你也给别人说不明白 前面一堆说 CI/CD 的都得出去反思 10 分钟 仔细看看 ops 的职能都是干啥的? 供应计算 网络 存储 调度等资源, 以及上述资源的监控能力 业务的运维同学还要关注啥? 业务指标 业务指标 业务指标 |
67
Meano 2021-07-29 18:03:55 +08:00
整了一套环境目前主要自己用,非常舒服啊
Gitea + Drone (自己改了 Powershell Native Runner,编译+测试) + MinIO (artifacts/release) + Wiki 另外还写了脚本 CI 可以用一套代码根据不同配置生成多套代码并编译测试给不同需求的客户和同事 不管以后别人用不用,反正我再也不会面对这些问题了: * 在丢文件给别人的时候给错 * 同步更新多个库代码的时候出错 * 更新代码后发现编译不了 * 一份代码要抄 N 遍 etc. 但是协作就不知道好不好推了,我周围大部分人可能都觉得代码只要写到眼前能编译能用就行... |
68
FS1P7dJz 2021-07-29 18:18:22 +08:00
|
69
FS1P7dJz 2021-07-29 18:21:03 +08:00 1
另外什么叫真的有公司搞 devops 成功?
公司规模到一定程度你的 ops 不去 dev 怎么支撑? 这是刚需而不是可选项 |
70
Meano 2021-07-29 18:33:24 +08:00
@netwjx 哈哈 也不是所有的软件开发流程都有明确的运维环节的 比如传统的软件开发行业能从瀑布转向敏捷就已经是很大的进步了 分发之后的反馈周期非常长且渠道单一 这种情况下 对接外部的最后接口就是分发了
|
71
u21t20o15 2021-07-29 18:42:15 +08:00
对了,阿里云的云效搞起?
开箱即用,人数少免费 |
73
FS1P7dJz 2021-07-29 19:09:26 +08:00
@Meano 新浪 devops 其实很好的啊,没记错也是第一个引入了 docker 的大网站,崩溃现在也不多,而且恢复很快
|
74
Chieh 2021-07-29 20:29:55 +08:00
除非项目不支持自动化,比如每次发布版本需要手工修改一些参数东西的,不然为啥不自动化
|
76
appstore54321 2021-07-29 23:21:40 +08:00 via iPhone
aws 的 code commit build deploy pipeline,一整套都有
|
77
kaedea 2021-07-30 01:30:08 +08:00 via Android
没有。DevOps = Dev 当 Dev + Ops 一起用。
|
78
dreampuf 2021-07-30 03:08:40 +08:00 1
想到啥说啥
DevOPS 或者 SRE 之类,我统称非产品功能需求开发,做质量、敏捷响应等等。在这个定义下,哪怕你写一行重复执行的 shell 都可以算作 DevOPS (地铁_老人_手机.jpg ) DevOPS 越推崇的公司,越以员工数量少却维护海量集群为荣,鄙司收购的一个小公司的运维团队之前就两个人,对应后来我们直接拆成五六人的工作量,戏称之为 Dev & OPSize,再发展一段时间,估计这两个词会完全拆分。所以人少和是否贯彻 DevOPS 没有必然联系 使用项目管理工具是否就是 DevOPS ?工程效能是一个更大的话题,DevOPS 只是其中的开发环节一个方法论。虽然 Jira 母公司 Atlassian 一直标榜使用了自家产品的公司“很”有可能是敏捷的,自动化的和高效的,但每家使用问题追踪的公司不一定会上市。Atlassian 股价自 2015 年上市以来,兑现了几乎十倍的回报率,每家公司依旧要么在使用 Jira,或者即将使用 Jira 的路上。 Thoughtworks 的 Tech Radar 很实用的记录了哪些技术是“未被验证的”,https://www.thoughtworks.com/cn/radar/techniques/devops DevOps 2010 年很新颖,2012 年已经是成熟的被采纳的技术 |
79
0bit 2021-07-30 08:27:57 +08:00
何止大公司小公司,个人项目现在都搞起来了,Gitlab CI 或者 Github Actions 都很方便,不用自己搭 Jenkins 了
|
80
minmini 2021-07-30 09:01:29 +08:00 via Android
比较好奇楼上各位已经开始实施 devops 的朋友自动化测试这块是怎么做的。
我是做测试的。我们公司接口自动化测试有的团队弄得多,有的几乎没有,就纯手工测试,也没时间做自动化。大部分开发人员没有写单测的习惯,leader 也不会做这一块的考核。 最近在学 K8S,已经在测试环境吧我自己负责的项目用 k8s 完整的拉起来一套环境了(大部分线上环境还是 Tomcat 部署),结合我们自己的自动化测试用例现在丢给开发人员当自测环境在用 [领导要求测试环境架构要跟现上一致,所以业务测试还有单独一套环境] |
81
weer0026 2021-07-30 09:04:45 +08:00 2
我司 20 人小团队大致路线给你参考下,先全线产品 docker 化改造,然后搞个 docker 镜像私库,把 CI 弄好( gitee+drone ),接着研究 k8s + helm,这个阶段花时间比较久,期间同时弄了运维管理后台(七牛管理,数据库管理,监控什么的), 最后项目一个一个上集群。
|
82
dadachen1997 2021-07-30 09:17:12 +08:00
Azure Dveops 值得拥有
|
83
jingslunt 2021-07-30 09:17:34 +08:00
基本操作,搞了好几年了。
|
84
wtfdsy 2021-07-30 09:18:38 +08:00
所以有什么适合 C++图形软件模块的 devops 最佳实践可以参考的吗
|
85
h82258652 2021-07-30 09:25:26 +08:00
小公司最多只有 dev,没有 ops 。基本用户不反馈都不知道服务已经挂了。[狗头]
|
86
pkwenda 2021-07-30 09:34:33 +08:00 1
@lightjiao #11 https://www.uwintech.cn/devops
拉到中间,基于 F5 灰度发布,发布前 60h,发布后 45s,提升 80 倍 老东家太谦虚了,我感觉提升了 4800 倍 |
87
offswitch 2021-07-30 09:48:41 +08:00
你们说的是 DevOps,我怎么感觉大部分人把 CICD 当成了 DevOps,DevOps 里面的持续测试,持续反馈,持续监测那去了?大部分公司怕不还是瀑布模型,只是加上了 CICD 。
|
88
xx6412223 2021-07-30 10:20:55 +08:00
我理解的 devops 落地几步走,和敏捷工具无关:
1. CICD:每个 PR 都要触发,打 TAG 要触发,日常任务触发包括备份迁移后。 2. 隔离的 dev qa pre-pro pro 环境,规范的发布流程 3. 独立的监控和日志系统, 4. 大型团队的 infrastructure 管理,包括云上环境和各功能组件的维护使用, 5. infrastructure as code , pipeline as code 所以专业 devops 一般要具备 cicd,各种云,K8S 和日志监控类系统的搭建和维护经验 |
89
ltruntu 2021-07-30 10:40:05 +08:00
jenkins ========================================== DevOps
|
90
locoz 2021-07-30 10:42:49 +08:00 via Android
@evilStart #27 我曾经也是这么以为的,直到我在国企做过了才知道,原来这个世界上还有人能这么守旧,一大把服务器资源宁愿放着也不愿意布套 Gitlab 替代 Gitee,还说手动操作一下也没多麻烦…几个月搞下来我一直在推动,结果到现在都还是自动化的东西没有、日志收集的没有、异常跟踪的没有、配置管理的没有,我都快吐了。就连项目管理的东西都还是某天他们用的一个老的简陋系统崩了,我在群里说了一声可以用禅道才换的,典型的不碰到问题就压根不会想着变更。
|
92
locoz 2021-07-30 11:08:41 +08:00 via Android
@locoz #90 补充一下,除了上述的没有之外,还没有多环境的 K8S 集群、没有 Kibana 之类的监控,很多新项目仍然没有做容器化改造,生产环境的 K8S 集群都还只是给部分强行上容器化的项目在用。大部分项目仍然是人工手动部署的,生产环境部署个东西还得找运维,打包好东西、给个部署文档才能正常部署上。
而且吧,这些东西直接就是整个公司都没有,没有统一的一套这些东西,只能每个部门自己解决,一个亿级资本的、按楼层算办公室的大国企,管理层完全不考虑综合成本和效率,只想着堆产品、搞一些实际有现成完善产品的简单替代工具刷业绩… 没有对比就没有伤害,管理层都是 40 左右甚至更大,且不关心新技术、只想着靠加班来堆的公司(公司 CTO 以往战绩就是定一堆任务然后疯狂加班硬堆),真的太 tm 可怕了。 |
94
locoz 2021-07-30 12:36:33 +08:00 via Android
@evilStart #93 打错了,是 gitea…这东西就是个精简的 git 服务,基本只有代码仓库功能…和 gitlab 没法比。
其实我远程办公的还好,前面靠着自己独立搭了一套用,省了一部分事情,本来是不太需要跑路的。🙃但是现在换成了个老古董管理空降的人接手部门,直接把我这边开发新系统的项目砍掉了,那人还想着继续对个七八年前 php 写的老系统修修补补,这鸟情况也没啥好留的了… |
95
kejin114978 2022-06-10 11:41:40 +08:00 via Android
我真真的是感觉啥都经历过,我所在的公司自建过 gitlab ,折腾过 jenkins ,最后综合评估用上阿里了云效 DevOps 全家桶,是真的有点香。
尤其是像我们这些小公司,没有专职运维人员,没那么多精力去维护,所以就选择大厂阿里的 devops 工具;为什么选择云效,因为云效流水线功能,太适合阿里云用户,不用单独搭 ci ,整个流程丝般顺滑。 |