应用运维技术栈

运维工程师,其实严格意义来说是除了业务应用程序开发之外的工作,全部由运维工程师来承担。从机房的里面的服务器安装、网络部署,到主机操作系统的安装,基本服务的安装以及数据库产品的安装,网络的配置,再到应用程序部署的规划、应用程序部署,日常维护,缺陷核查,提供运维工具与各种统计等等,运维其实是有很多很多事情要做的,这是大范围的运维工程师,但在实际中,不可能一人具备这么宽阔的知识体系,所以在业内其实运维工程师是会进行细分的,分为平台类的运维工程师,负责机房管理、主机数据库管理、网络管理三大子类的平台运维工程师,需要精通各种服务器知识(操作系统、存储、硬件等),和应用运维工程师,负责具体业务类的运维,这个职位需要对所运行的应用系统的业务逻辑非常清楚,实际需要比开发更懂业务,更懂这个系统是如何运作的,做的日常工作就是版本上线、处理系统告警、缺陷定位和给出优化方案、输出运维优化工具。业务运维,我理解的是需要对操作系统很熟,无论是unix还是各种linux,需要对操作系统熟悉,熟悉命令的使用,熟悉操作系统的工作原理,存储知识、网络知识等,需要对数据库很熟,会熟练使用sql语句进行增删改查,会编写存储过程,同时对nosql数据库也需要非常熟悉,比如redis等,同时需要具备对各种中间件的使用维护:nginx/tomcat/mq/zookeeper等,最后业务运维工程师需要对自己维护系统的业务逻辑非常清楚,这就需要走读代码了,因此需要具备走读自己应用系统代码的能力,java、c++/c等、同时可以开发一些高效的运维工具,比如shell脚本等。

    因此,我对应用运维工程师的技术栈,分为四大块:操作系统、数据库、编程语言、中间件、运维开发。

  操作系统:需要具备rhel7的能力

  数据库:重点在存储过程、非关系型数据库redis

  编程语言:java ee

  中间件:nginx、mq、tomcat

  运维开发:shell开发

你可能感兴趣的:(心得体会)