开发转做运维开发,有什么需要注意的?需要额外学习和掌握什么?

2024-02-06 14:33:01 +08:00
 fliter

如题,大家有没有类似经历,有没有什么需要注意

13243 次点击
所在节点    DevOps
63 条回复
yongp
2024-02-06 16:08:40 +08:00
别转了,不如撸业务代码,更有价值
kemo
2024-02-06 16:10:39 +08:00
上面的人都说开发比运维更高人一等,可公司真正遇到事情,先裁的是开发而不是运维
guanzhangzhang
2024-02-06 16:14:46 +08:00
不说具体技术栈,主要注意就是思想,我同事
- 例如 py 删除文件是 os.system("rm -f xxx")
- 另一个运维开发同事是 go 项目里,ping 检测对端主机存活也是调用系统命令,在我换漏洞更少的基础镜像后,他业务就炸了
- 另一个同事 dockerfile 不存档,覆盖远端仓库上镜像不提前备份远端镜像
- 其他好几个同事排查客户现场问题,查问题不总结已经排查的过程和环境信息,全部零散的发在群里,没有总结,查完就找拉别人
- 工具来源,压缩包啥的都不写注释,下载或者编译完后就用
263
2024-02-06 16:14:58 +08:00
@kemo 因为运维人少,工资低
mightybruce
2024-02-06 16:18:47 +08:00
运维是一个非常吃经验的行业, 这一行的确有些人是越老越吃香。不过现在运维也都需要懂开发, 不会开发的运维的效率是不高的。
mzfbwu
2024-02-06 16:51:12 +08:00
自动化:ansible 、ci/cd 、cmdb 、流程工单系统、salt
云平台:各大公有云平台的产品、openstack
网络:cdn 、dns 、域名管理、nginx
容器化:k8s 、docker
监控:zabbix 、prometheus 、elk
还有一些配置管理,数据库相关的可能也涉及到,但是我并不太熟悉,欢迎其他朋友补充。
tokoy
2024-02-06 16:51:55 +08:00
咱是运维开发,应该有资格说一些:
你得学会
1. k8s,会网络,会各种数据库,会 CICD 工具,熟悉各大云厂商云服务,会 Prometheus 且最好熟练掌握一套完整的监控架构。---这些属于运维层面。
2. 熟悉业务架构,会部署业务服务,出问题你能第一时间知道或者通知到相关业务的负责人。--这些属于业务层面。
3.会 python 、go 语言,简单的你要能独立开发自动化工具或者脚本,高级一点的你需要配合前端开发运维平台,如果你会前端那更好了。

以上都会的话,恭喜你,运维开发入门啦~
salmon5
2024-02-06 17:01:01 +08:00
横向广,纵向浅。性价比肯定没开发高。
拼代码肯定不如开发,你想想,运维平台能有多少用户?(几百几十?并发几个?)能有什么复杂的逻辑?能有多大的数据量?
dezou
2024-02-06 17:15:08 +08:00
@guanzhangzhang 这个删字为什么有点绿
uncat
2024-02-06 19:55:19 +08:00
@mzfbwu 备份系统:borg restic
uncat
2024-02-06 19:58:21 +08:00
对于关键服务的服务器,有效的备份系统是保证长期(几年到几十年)运行很重要的一环,这里面会有备份策略,成本,有效性的考量。
coolworker
2024-02-06 20:12:42 +08:00
coolworker
2024-02-06 20:12:50 +08:00
fliter
2024-02-06 20:34:06 +08:00
@mzfbwu 学到了
fliter
2024-02-06 20:34:17 +08:00
@tokoy get !
YaakovZiv
2024-02-06 21:09:46 +08:00
要看你去啥样的公司,如果是华为这种,需要小心的就是流程规范了,和我一个项目组的一个老哥,就因为改配置的时候直接修改,没备份,没走任何操作流程,也没做任何邮件通告,直接被开除了,属实让我震撼了很久。我还以为要把我连带开除,我当时才刚入职。那个老哥走前和我们吐槽,他说,”配置改错了再恢复就行了。“。 实际上不能,恢复期间会被按照业务故障计时。
我感觉技术上没有太大的难度。
FlytoSirius
2024-02-06 21:20:10 +08:00
前面说了不同规模的公司, 运维所具体的工作内容和具体的技术栈差别很大.
我尝试理下 DevOps 所需要的: 基础的大方向, 这些应该和公司规模及技术栈没太多关系.

硬的:
1. 一个操作系统方向[Linux/Windows]
2. 一门脚本语言 [Shell/PowerShell]
3. 一个业务开发语言[Java/Python...]
4. 一个配置管理工具[Ansible/Chef/Salt ...]
5. 一个基础设施即代码工具[Terraform, Cloudformation, CDK 等]
6. 一个公有云平台/一个私有云平台/一个容器化平台
7. 一个 CI/CD 平台
8. 一个监控系统的应用
9. 一个日志系统的应用
10. 一个备份管理系统的应用

软的:
11. 一些网络知识
12. 一些安全知识
13. 一些业务连续性知识
14. 一些业务系统运作的架构知识
15. 一些各层面所需的测试工具和知识
16. 现代应用和基础设施 部署和管理的一些思路和思想[基础设施即代码 IaC, 容器化, 应用发布模式 ... ] [对这些的理解会直接影响如何应用具体技术进行工作].

我就先想到这些.其他朋友再补充.
而且, 这其中每一条应该都可以展开为一个知识/技能体系.
FlytoSirius
2024-02-06 21:27:20 +08:00
@YaakovZiv

这是那个 Team 就没有太按照 DevOps 的方式来运作吧, 他还有很重的之前 Ops 的思路.

否则以代码驱动的配置, 是一定会走 git 的, 再有个一般性的 review, 被同意再进行 修改配置代码的部署.

直接上去改配置绝对是 DevOps 的大忌讳, 因为会导致实际环境和代码部署的环境不一致.
uncat
2024-02-06 22:35:46 +08:00
@FlytoSirius 挺认同的,特别是上到一定的规模,且业务本身对质量有很迫切的需求。哈哈哈,有这样的团队介绍一下吗,我要去应聘
hongyexiaoqing
2024-02-06 23:16:33 +08:00
@salmon5 内部系统并发是不高,但是业务复杂度每个公司不一样,不一定比业务研发系统复杂度低。

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

https://ex.noerr.eu.org/t/1014654

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

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

© 2021 V2EX