• 猿创征文|我的十二年的运维之路


    前言:

    兴趣是做事的一个动力,例如,linux的创始人Linus Benedict Torvalds出于对游戏的兴趣,编写了第一个linux的内核。而我的兴趣其实一开始也是在于游戏,比如,单机cs1.5。但由于硬件方面比较低级,因此,游戏的时候常常会出现蓝屏等等故障。面对此种情况,毫无疑问,桌面运维技术是比较好的一个解决方案,因此,各种各样的操作系统安装,重装,修复成为了我的常态。

    我想,零几年的时候电脑报应该是很多人没有听过的一个东西,桌面运维里的很多技巧都从这些报刊或者杂志上获取,刚好,公司内部提出了无纸化办公,要上线一个用现在的眼光来看非常简单的OA系统,那个时期对于IT有非常大的兴趣,由此,我踏上了漫漫的运维之路第一站---桌面运维。

    在后来就是网络游戏了,常常游戏的时候断开连接等等各种各样的问题,以及各种各样需要面对的木马,病毒,铺天盖地的弹出式广告等等,国内的互联网进入了高速发展时期,依托互联网,各种各样的电商网站,个人网站,电子商务,erp管理软件等等井喷式增长,因此,对于运维的挑战也更多了,由此,有了实施运维,运维开发,系统服务器运维,网络运维,数据库运维等等岗位。

    平凡之路

    运维工作其实是一个平凡的工作,在每一次的系统升级,服务升级,安全漏洞修复后,都会有一种满足感:瞧,这个平台是我运维的,它很健康,它能稳定的有一定的自我修复能力。在开发的后面默默提供支持。

    运维也不是一个平凡的工作,因为需要的知识面非常的广泛,从计算机的底层硬件开始一直到软件层面的代码层次可能都需要懂一些,那么,我认为一个合格的运维应该具有如下的技术栈:

    1,

    硬件方面的理解

    比如,CPU的构型(arm,amd,inter等等),硬盘的性能特征(红盘,蓝盘,黑盘,紫盘,绿盘,黄盘等等),内存的型号(ddr1,ddr2,ddr3,ddr4等等),主板(技嘉,华硕,微星,硕泰克等等),网络配件(比如,华3交换机,思科,华为等等),服务器类型(比如,常见的浪潮服务器,华为服务器,新华3,Dell,惠普,超微,思科,联想等等)像这些都是机房运维需要关注并了解的东西。

    2,

    软件方面的理解

    (1)

    操作系统

    运维可能会和各种各样的操作系统打交道,比如,Windows系列操作系统(winxp,winserver2000,win8,win12,win2008等等),linux操作系统(比如,centos,Redhat7,Redhat8,Oraclelinux,Ubuntu,openSUSE,fedora,debian,veket,中信等等),需要清楚的知道,这些操作系统能干什么,例如,我现在有一个需求就是想快速搭建一个个人网站,预计流量很小的那种,那么,无疑Windows里安装一个nginx是最快的方式了。

    (2)

    常用的各类环境

    比如, go语言环境,perl语言环境,c语言开发环境,Python语言环境,lnmp套件,Java环境,ruby语言环境,虚拟化环境(kvm,vm,hyper-v,xen等等)

    各类环境的合理搭建,比如,某个项目需要Java环境,而项目代码需要的是jdk8的某个特定版本,需要与开发提前沟通。

    (3)

    常见的各类软件

    比如,大数据平台Hadoop,kubernetes平台,openstack云平台,中间件(MongoDB,redis,rabbitmq,haproxy,keepalived,etcd,zookeeper,kafka,nginx等等),数据库软件(SQLserver,postgresql,MySQL,Oracle,mariadb,tidb等等),web容器(weblogic,tomcat,nginx,apache,caddy,OpenResty等等)

    应该掌握以上软件的安装部署以及适配调优工作,并对接到开发,使用这些软件。

    (4)

    安全漏洞发现和修复

    及时发现各种各样的漏洞,比如,tomcat的版本过低,造成的文件读取权限扩大漏洞,es的弱口令漏洞。

    (5)

    自动化运维工作,编写各类shell脚本或者Python脚本结合实际工作,使得整个系统有一定的自愈能力,使用自动化运维工具比如ansible,saltstack,以及各类堡垒机。

    例如,开机自启脚本可保护各类服务在断电等意外情况下,能够自动恢复一些关键服务,保证业务的不中断。一些定时任务脚本保证某项工作不会中断,例如,磁盘清理工作。或者是自动告警,例如服务器的某项运行指标超出预定阈值,通过邮件的形式提醒关注。

    (6)

    各类监控服务器的软件,比如,Prometheus,zabbix,Nagios,Icinga,SeaLion等等资源监控类软件。

    部署以上软件能够准确实时的显示服务器和各个服务的现状,做到一目了然。

    (7)

    日志收集服务,比如,elk,efk结合Hadoop大数据平台,实时生成各类监控图表,分析日志,告知结果,提供预测,分析。

    例如,web容器日志收集后,经过大数据平台清洗数据,得出经常访问的IP归属地,做出用户兴趣分析。提前告警恶意爬虫访问并做出相应的处理措施,等等功能。

    附:

    路漫漫其修远兮,吾将上下而求索。

  • 相关阅读:
    JavaScript 63 JavaScript 对象 63.6 JavaScript 对象构造器
    Maven配置环境变量
    设计模式之创建型模式:单例模式
    使用cannon.js创建3D物理仿真场景
    深度学习中的函数(一)
    深入浅出PyTorch——模型定义
    树上形态改变统计贡献:1025T4
    003 topic
    Java新手小白入门篇 API -Socket网络编程
    启动tomcat的控制台乱码
  • 原文地址:https://blog.csdn.net/alwaysbefine/article/details/126814291