程序员的运维知识体系
作为程序员的你,能胜任运维的工作吗?
背景
那么运维主要解决那些问题呢?
答:1.部署,但是大部分工作可自动化; 2.维护产线系统稳定;
作为程序员的你,清晰自己的程序如何部署上线非常重要,出问题了才知道如何修复。
作为程序员的你,设计的时候就要规避部署带来的问题。
作为程序员的你,如果能胜任运维,那么你就天然具备成为为当下非常热门的职位devOps工程师的知识储备;
问题 | 答案 |
---|---|
where are we?现状 | 是程序员,但是运维知识了解很少 |
where are we go?目的 | 是程序员,也能胜任运维工作 |
how can we go there?实现路径 | 梳理运维的知识体系,逐步学习 |
实现路径
按照以下条目,补全知识体系,再找一个实际项目实战即可。
shell
shell是最古老的运维语言,可直接跟操作系统打交道;
linux核心库
掌握常见的核心库,ls cd ps grep kill cut sort uniq
第三方库
rsync 和 curl
虚拟化
虚拟机和docker
容器化
docker-swarm和kubernetes
运维框架
chef , puppet, ansible ,openstack
公有云
aws, aliyun
小结
程序员了解运维的知识体系非常重要,无论是对定位问题还是架构设计都有一定帮助。
补充
现在运维流行DevOps,高级一点就是AI,
运维技能:
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.会点构架
一般中小公司没有构架师,所以当业务增大出现瓶颈,运维得给出解决方案
和开发讨论如何扩展
原创不易,关注诚可贵,转发价更高!转载请注明出处,让我们互通有无,共同进步,欢迎沟通交流。