31 | 程序员怎么学习运维知识?
郑晔
该思维导图由 AI 生成,仅供参考
你好,我是郑晔。
在上一讲中,我们讲到了开发过程的自动化,我们的关注点在于如何构建出一个有效的部署包,这个包最终是要上线部署的,那接下来,我们就来关心一下部署的相关工作。
零散的运维知识
在一些稍具规模的公司,为部署工作设置了一个专有职位,称之为运维。当然,这个岗位的职责远不止部署这一件事,还要维护线上系统的稳定。不过,如果你的团队规模不大,或是项目处于初始阶段,这些工作往往也要由程序员自行完成。
对于一个程序员来说,了解自己的程序怎么部署上线,是非常重要的。我们既要了解一个软件的逻辑,也要知道它的物理部署。只有这样,出了问题才知道怎么修复。
更重要的是,我们在设计时,才能尽量规避部署带来的问题。而部署,恰恰也是最适合发挥自动化本领的地方。
好,即便下定决心准备学习运维相关知识,你准备怎么学呢?我先来问你个问题,提到运维,你会想到什么?
如果你是一个刚刚步入这个行业的程序员,你或许会想到 Docker,想到 Kubernetes;如果再早一点入行,你或许还会想到 Chef、Puppet、Ansible;更早一些入行的话,你会想到 Shell 脚本。没错,这些东西都是与运维相关的。那我就这么一个一个地都学一遍吗?
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
程序员学习运维知识的关键在于建立有效的知识体系。文章首先介绍了程序员需要了解自己的程序如何部署上线,以及部署过程中可能出现的问题。作者提出了学习运维知识的方法,强调建立结构化的知识体系,类比程序设计的知识体系,以便更高效地学习和理解新知识。接着,文章以Java知识体系为例,说明了学习新知识的最佳方式是学习增量,并将新知识与已有知识体系联系起来。然后,文章介绍了运维知识体系,从运维的语言、核心库、第三方库到运维框架和运行时环境等方面进行了阐述。最后,强调了建立了一个相对完整的运维知识体系后,读者将能够在运维领域中更加自信和熟练地应对各种挑战。文章通过对比程序设计和运维知识体系,为程序员学习运维知识提供了清晰的指导和思路。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《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.会点构架 一般中小公司没有构架师,所以当业务增大出现瓶颈,运维得给出解决方案 和开发讨论如何扩展 总结: 在中小公司运维工作就是一件很杂的工作,什么都要求会一点
作者回复: 多谢补充!
2019-03-22462 - 西西弗与卡夫卡还有性能分析和调优,比如Java有JVM内存模型和运行参数调优,运维有单CPU多CPU的硬件模型和操作系统参数优化
作者回复: 这个类比很不错!
2019-03-2212 - hua168你们开发做兼职做运维了,那我们运维出路怎么办 运维又怎么学开发?😂
作者回复: DevOps,马上就来!
2019-03-227 - enjoylearning运维对网络和操作系统需要了解多一些,深一些
作者回复: 是这样的!
2019-03-236 - 陈斯佳我看完这篇文章的收获,可能和老师写这篇文章的初衷有所不同,老师写这篇文章的初衷是写给那些想学习运维知识的程序员,通过Java的框架来类比于运维的框架。而对于我来说,我本身是运维,目前正在学习Java语言,所以反而能让我从运维的视角,更好的理解和学习Java语言这门工具。
作者回复: 不管哪个角度,有收获就好。
2019-06-133 - 行与修可视化监控衍生出的网络协议、网络与安全设备、软硬件性能指标等相关方面的知识与工具也是运维工作需要关注的。
作者回复: 非常好的补充。
2019-03-253 - Y024DevOps 就是让 Eating your own dog food 来得再猛烈些,发布也得自己感受下。
作者回复: 做得越多,越全面!
2019-03-223 - Ankhetsinvagrant,webpack,npm,jcenter,mavencenter,apt,brew,cocoapod,rip,pip,composer算运维吗?
作者回复: 当然算运维知识了!
2019-03-232 - baiyutang如何系统学习呢?就是按照上面的表格类比,类比思维?
作者回复: 一层一层地了解,至少要了解基本的用法。还有一种极致的方式,联系柴锋老师去上他的课。
2019-03-222 - 小伟实际情况里,开发框架到单机部署还有很多步骤,如代码自动化编译、提交、环境版本管理、发布策略管理等。常用的工具依次是maven、github、jenkins。
作者回复: 下一讲就是持续交付、DevOps 登场了。
2019-03-222
收起评论