程序员的运维知识体系

image.png

作为程序员的你,能胜任运维的工作吗?

背景

那么运维主要解决那些问题呢?

答: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

小结

程序员了解运维的知识体系非常重要,无论是对定位问题还是架构设计都有一定帮助。

运维知识体系.png

补充

现在运维流行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.会点构架
一般中小公司没有构架师,所以当业务增大出现瓶颈,运维得给出解决方案
和开发讨论如何扩展

原创不易,关注诚可贵,转发价更高!转载请注明出处,让我们互通有无,共同进步,欢迎沟通交流。

posted @ 2020-09-01 20:46  李福春  阅读(707)  评论(0编辑  收藏  举报