作为程序员的你,能胜任运维的工作吗?
那么运维主要解决那些问题呢?
答:1.部署,但是大部分工作可自动化; 2.维护产线系统稳定;
作为程序员的你,清晰自己的程序如何部署上线非常重要,出问题了才知道如何修复。作为程序员的你,设计的时候就要规避部署带来的问题。
作为程序员的你,如果能胜任运维,那么你就天然具备成为为当下非常热门的职位devOps工程师的知识储备;
问题 | 答案 |
---|---|
where are we?现状 | 是程序员,但是运维知识了解很少 |
where are we go?目的 | 是程序员,也能胜任运维工作 |
how can we go there?实现路径 | 梳理运维的知识体系,逐步学习 |
按照以下条目,补全知识体系,再找一个实际项目实战即可。
shell是最古老的运维语言,可直接跟操作系统打交道;
掌握常见的核心库,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/Gopython 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.会点构架一般中小公司没有构架师,所以当业务增大出现瓶颈,运维得给出解决方案和开发讨论如何扩展
我会持续分享Java软件编程知识和程序员发展职业之路!原创不易,关注诚可贵,转发价更高!转载请注明出处,让我们互通有无,共同进步,欢迎沟通交流。