31 | 程序员怎么学习运维知识?
郑晔

你好,我是郑晔。
在上一讲中,我们讲到了开发过程的自动化,我们的关注点在于如何构建出一个有效的部署包,这个包最终是要上线部署的,那接下来,我们就来关心一下部署的相关工作。
零散的运维知识
在一些稍具规模的公司,为部署工作设置了一个专有职位,称之为运维。当然,这个岗位的职责远不止部署这一件事,还要维护线上系统的稳定。不过,如果你的团队规模不大,或是项目处于初始阶段,这些工作往往也要由程序员自行完成。
对于一个程序员来说,了解自己的程序怎么部署上线,是非常重要的。我们既要了解一个软件的逻辑,也要知道它的物理部署。只有这样,出了问题才知道怎么修复。
更重要的是,我们在设计时,才能尽量规避部署带来的问题。而部署,恰恰也是最适合发挥自动化本领的地方。
好,即便下定决心准备学习运维相关知识,你准备怎么学呢?我先来问你个问题,提到运维,你会想到什么?
如果你是一个刚刚步入这个行业的程序员,你或许会想到 Docker,想到 Kubernetes;如果再早一点入行,你或许还会想到 Chef、Puppet、Ansible;更早一些入行的话,你会想到 Shell 脚本。没错,这些东西都是与运维相关的。那我就这么一个一个地都学一遍吗?
公开
同步至部落
取消
完成
0/2000
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《10x 程序员工作法》,新⼈⾸单¥68
《10x 程序员工作法》,新⼈⾸单¥68
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(20)
- 最新
- 精选
- hua168现在运维流行DevOps,高级一点就是AI, 其中一篇文章《DevOps 详解》不错,链接如下: https://infoq.cn/article/detail-analysis-of-devops 《DevOps知识体系与标准化的构建》也不错,下载地址: https://yq.aliyun.com/download/778 运维知识体系: https://www.unixhot.com/page/ops Web缓存知识体系: https://www.unixhot.com/page/cache 运维技能: 1.懂网络: 一般要求CCNA(最好CCNP)或同等水平 2.懂系统: 懂得主流的linux系统操作(Centos、ubuntu、debian等) 操作命令、维护、性能优化、故障排查 3.简单安全: 一些简单的安全知识 4.半个DBA: 一般中小公司前期没有DBA,需要运维做 最起码会SQL语句、主从 群集:redis、mysql、MongoDB等 5.会运维开发: 一般用于开发运维工具、运维系统(如CMDB、ELK日志系统等) 运维主要语言是shell、python/Go python web框架:Django、tonado等 Go web框架:Beego、Gin、Iris等 有的还会用PHP及框架(TP、YII、Laravel做web前端) 中小公司运维一般都没有专职的前端,需要运维兼职所以要学前端知识 6.懂点开发: 般都懂一点本公司开发的语言,如公司用PHP需要学习、如公司用java web也需要学习一下,目标: 1)更好的维护网站,排错 2)运维自动化、DevOps,因DevOps是基于敏捷开发,极限编程的思想,所以得懂一点软件工程 7.主职: 1)各种环境的搭建:LAMP、LNMP、负载均衡(nginx、haproxy、VLS等)、web群集、数据库群集、主流的docker[必会] 2)排错[必会] 3)批量安装系统安装:Cobbler[少] 4)部署工具:Ansible/SaltStack[重要] 5)主流的部署方案:如云、docker、k8s等[必会] 6)监控系统:zabbix、Open-Falcon[至少掌握其中一种] 7)自动化:gitlab CI/CD、jenkins结合ansible/salt、docker[必会] 8)运维流程的制定 9)减少背锅的次数:运维是出名的“背锅侠”,制定明确的责任可以减少背锅 10)等等 8.会点构架 一般中小公司没有构架师,所以当业务增大出现瓶颈,运维得给出解决方案 和开发讨论如何扩展 总结: 在中小公司运维工作就是一件很杂的工作,什么都要求会一点
作者回复: 多谢补充!
460 - 西西弗与卡夫卡还有性能分析和调优,比如Java有JVM内存模型和运行参数调优,运维有单CPU多CPU的硬件模型和操作系统参数优化
作者回复: 这个类比很不错!
11 - enjoylearning运维对网络和操作系统需要了解多一些,深一些
作者回复: 是这样的!
5 - hua168你们开发做兼职做运维了,那我们运维出路怎么办 运维又怎么学开发?😂
作者回复: DevOps,马上就来!
5 - 行与修可视化监控衍生出的网络协议、网络与安全设备、软硬件性能指标等相关方面的知识与工具也是运维工作需要关注的。
作者回复: 非常好的补充。
3 - baiyutang如何系统学习呢?就是按照上面的表格类比,类比思维?
作者回复: 一层一层地了解,至少要了解基本的用法。还有一种极致的方式,联系柴锋老师去上他的课。
2 - maks我有一个困惑:“我开发完成之后,现在提测。提测需要发送测试邮件,然后把代码上传到svn。再由编译人员拉下代码,编译部署。” 但是在这过程中发生了几个问题: 第一,部署涉及三个服务器环境,但是其中有两个环境的服务(包括数据库)挂掉了,而且我们实现并不知晓。 第二,编译人员并不知道,他所负责环境下的项目服务器的用户名和密码还有数据库的用户名和密码 第三,项目经理坦言这几个环境不归他管理,但是对应的服务必须由他开启。然后我们并没有服务开启的文档,只能从百度上一点一点的尝试。 那现在的问题是,这一些都需要我去串联。
作者回复: 你工作在二三十年前,辛苦了。如果过程不做改变,你一个人很难改变。所以,可以建议调整流程。
21 - Ankhetsinvagrant,webpack,npm,jcenter,mavencenter,apt,brew,cocoapod,rip,pip,composer算运维吗?
作者回复: 当然算运维知识了!
1 - 小伟实际情况里,开发框架到单机部署还有很多步骤,如代码自动化编译、提交、环境版本管理、发布策略管理等。常用的工具依次是maven、github、jenkins。
作者回复: 下一讲就是持续交付、DevOps 登场了。
1 - Y024DevOps 就是让 Eating your own dog food 来得再猛烈些,发布也得自己感受下。
作者回复: 做得越多,越全面!
1
收起评论