程序员的运维知识体系


程序员的运维知识体系

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




    推荐阅读