目前处于云年代,云计算运维工程师的工作前景还是十分广泛的。像是阿里云计算,滴滴,抖音等等互联网大厂目前都在使用云计算。
云计算运维工程师的薪资水平也十分可观。
运维工程师(Operations),首要担任维护并确保整个服务的高可用性,同时不断优化体系架构、提升布置功率、优化资源利用率提高整体的ROI,后续还能往devops 运维开发工程师、架构师来发展。
企业的使用90%是跑在Linux渠道的,再高大上的云计算、大数据、物联网都需要好的运维做支撑。就连我们用的安卓手机,底层也是Linux架构。通信、金融、互联网、教育、电子商务、机械制造、军工航天等等,都离不开Linux。
在运维领域,一般的发展方向仍然是运维工作,期望着在大型企业或云厂商发展,少数人能够转型成架构师或管理层。运维领域存在着广泛且庞大的技术栈。但问题在于,这些技术栈过于庞杂,如果没有三五年的经验积累,你是不可能真正进入运维领域的高层次。因此,如果希望在运维领域获得成功,建议你好好规划自己的学习路径。
想要成为一个优秀的运维工程师,需要掌握的技能很多,其中三大核心技能如下:
1)IT架构组建。担任参与并审阅架构规划的合理性和可运维性,以确保体系上线后,安全、高效、稳定运行。
2)日常运营保障。担任运用运维技能,运维渠道,确保入网设备的全面纳管和全生命周期办理,确保设备、业务及安全等状况可监可控。
3)体系优化。Linux服务器本身架构的局限,体系运行毛病不可避免,但经过合理的规划,有用的运维,可以大幅下降毛病发生的频率,提高业务康复的功率。
云计算运维工程师知识技能图
云计算运维工程师学习路径:
1、掌握一门编程语言
我觉得,目前学习python、go,都是不错的选择注意两点:一是基础,二是实践能力。
学语言,先要看书,再要动手。那些认为仅仅通过读书就能学会一门语言的人是天真的。而只关注编程不读书的人,将来肯定动手能力强,水平低。
新手不要急于求成。他们应该投入多一点的时间,先把基础知识学好。基础越扎实,以后编程水平可能越高。读一本书至少需要三个月。
看书主要包括计算机原理,和你学过的语言相关的书(如果想进入门,不要刻意选哪一本好,对初学者有好处)。
看书的时候,一定会遇到各种不理解的概念,各种概念之间的关系也不容易理解和掌握。很多新手望而生畏,看不懂。这时候就要学会坚持,坚持阅读,反复阅读。要注意收集自己确实不懂的概念,记在心里。这个时候最好不要找人回答。最好是把所有的书反复看三遍再找人回答,这样可以加深你对这个问题的理解,回答的人也愿意回答。有问题就问吧。一方面是回答者失去耐心,另一方面是没有印象,容易产生依赖。
在你有了一些基础知识之后,你应该试着自己安装编程环境。
2、操作系统基础与命令行Linux,运维必点技能
Linux操作系统及其命令行可以说是每个程序员都应该掌握的基础知识,包含主流 Linux 操作系统的安装,软件安装与配置,Linux 基础命令,权限管理,用户管理,网络管理,系统监控,Shell 脚本,Ansible 自动化等相关的知识。由于大多数企业都在使用 Linux,所以它是运维人必备的技能。
这部分的知识实践性是非常强的,建议在电脑本地或通过虚拟机安装一个 Ubuntu ,或在阿里云上购买一个云服务器CVM,不能只看书或视频。
比较推荐的是《 Linux 命令行大全》、《鸟哥的 Linux 私房菜》、《Linux/UNIX 系统编程手册》
3、网络知识,包含网络设备配置,TCP/IP 协议 协议,VLAN,路由配置,子网划分,网络安全,网络监控等等。
一个大的IP地址空间分成多个较小的子网,划分虚拟局域网(VLAN)以便于管理和提高网络安全性,还需要在路由器上设置路由,以确保不同子网之间的通信。
4、数据库知识,包含常用数据库的安装与配置,关系型数据库以 MySQL、SQL Server和 Oracle 为代表,非关系型数据库 MongoDB 和 Redis 。
数据库理论知识,数据库设计,数据库连接工具使用,数据库增删查改,数据库备份和恢复,数据库用户和权限管理,数据库优化,数据库高可用等等。
5、安全知识,包含日常的安全意识,防火墙控制,ACL(访问控制列表),密码复杂度配置,安全审计等。
6、存储知识,包含存储网络,磁盘划分,LVM 逻辑卷管理,磁盘阵列,iscsi 技术等。
7、容器技术,Docker 是一个开源的应用容器,它是一个将应用软件和它依赖关系,以及运行环境打包到一个镜像中,这个镜像可以在任意流行的 Linux 操作系统上运行。
这些基础知识,可以通过书,视频,博客等途径学习获得,很多知识都是考察动手能力,所以动起来很关键。
搭建和配置常用的应用环境
学习了运维的基础知识,有必要将这些知识综合运用起来,可以通过搭建和配置常用的应用环境来加强练习。
我们需要掌握常用的 web服务器软件有 Nginx,Apache 和 Tomcat 等,数据库软件有 Mysql,Oracle,Redis 和MongoDB 等,要学会这些软件的下载与安装方式,需要知道它们的主配置文件位置,目录构成,默认端口,服务启停方式,适用场景等。
另外,Nginx,Apache 和 Tomcat 都支持虚拟主机配置,也就是一台服务器可以支持多个网站或者应用,这样可以最大限度地利用服务器资源。
刚开始的时候,建议先搭建单机环境练习,然后再逐渐过渡到集群,高可用架构。
分布式架构:将系统拆分成多个独立的组件,这些组件可以在不同的服务器上运行,通过网络通信协同工作。分布式架构通常使用微服务架构模式,每个微服务负责一个特定的业务功能,通过API接口进行通信。分布式架构可以提高系统的可扩展性、可靠性和容错性,适用于大型系统和高并发场景。
LAMP(Linux+Apche+Mysql/Mariadb+Php/Python)
属于集中式架构中的一种典型架构,它是Linux操作系统、Apache Web服务器、MySQL数据库和PHP编程语言的缩写。LAMP架构中,Web服务器和应用程序服务器都运行在同一个服务器上,通过MySQL数据库进行数据交互和管理。虽然LAMP架构采用了集中式架构的模式,但它也可以应用于一些中小型网站和Web应用的开发,具有开放源代码、易用性、低成本等优点。
在 Linux 操作中,通过安装 Apache 用来接收访问请求,Mysql 用来存储数据,用 Php 或 Python 开发应用程序。关于 LAMP 比较典型的应用是监控 Zabbix。
集中式架构:将系统所有的组件都运行在同一个服务器上,通过单一的数据库进行数据交互和管理。集中式架构通常使用单体应用架构模式,将所有功能模块打包在一起,形成一个单独的程序。集中式架构可以简化开发和部署,适用于中小型系统和低并发场景。
Nginx + Tomcat 架构可以属于分布式架构,这是因为 Nginx 和 Tomcat 是两个独立的组件,可以运行在不同的服务器上,通过网络通信协同工作。
通常情况下,Nginx 作为反向代理服务器,接收客户端请求并将请求转发给 Tomcat 应用服务器处理,Tomcat 应用服务器负责处理业务逻辑和数据存储。Nginx 和 Tomcat 之间的通信可以通过 HTTP 或者 AJP 协议进行。两者相结合,对外提供服务。这样的好处是,后端的应用服务器可以扩展,通过 Nginx 作为唯一出口,对外服务不受影响。此外,Nginx 和 Tomcat 都支持集群模式,可以通过负载均衡实现高可用性和可扩展性。
运维岗位分类
在运维领域,一般的发展方向仍然是运维工作,期望着在大型企业或云厂商发展,少数人能够转型成架构师或管理层。运维领域存在着广泛且庞大的技术栈。但问题在于,这些技术栈过于庞杂,如果没有三五年的经验积累,你是不可能真正进入运维领域的高层次。因此,如果希望在运维领域获得成功,建议你好好规划自己的发展路径。
运维的分类不算很明确,常见的运维可以分成以下几种。
1、桌面运维
桌面运维,负责用户终端,客户端,服务器等设备的配置、管理和维护工作,确保这些设备可以正常、稳定地运行。
比如打印机管理,办公软件故障维护,会议室管理投影仪设备,网络设备管理等等。
一般小公司没有专门的桌面运维,都是由网络管理员兼任桌面运维这个角色。
如果你曾经做过一段时间桌面运维,你肯定会明白这些场景 给用户安装软件、企业网络搭建,离谱的时候有去修过电脑、打印机。
2、系统运维
主要对服务器,操作系统,应用程序进行维护和管理,提高服务器性能,保证服务器,操作系统能够安全稳定地运行。需要掌握 Linux 和 Windows 相关的技能,网络技术,磁盘管理技术,安全技术等。
主要工作内容有
1)服务器和系统监控
服务器设置监控,主要目的是保证服务器能高效、稳定地运行。监控平台可以实时监控到服务器运行状态,资源占用情况等,出现问题时,可以快速定位到问题所在,加快了问题解决的速度。
监控的内容包含服务器,操作系统运行状态,服务器磁盘容量,可用内存,CPU使用率,网卡流量,系统服务状态,自定义项监控等。
2)服务器和系统定期加固
服务器和系统及时加固,不留后门,是减少被攻击的有效手段,同时可以提高系统整体性能,最终目的是提升系统的安全性。
前期系统内核更新,关闭不必要的服务,删除多余的用户,关闭高危端口,设置服务器登出超时时间,设置系统日志保存时间,设置服务密码口令复杂度,设置密码口令有效期,启用服务器行为日志和审计日志,设置 history 历史记录保存条数等等。
后续定期修复服务器漏洞,包括 Bash 版本升级,Sudo 版本升级,Openssh 版本升级等等。
3)服务器和系统安全管理
服务器防火墙配置,服务器黑白名单配置,访问控制,重要数据备份和恢复等。隐藏中间件版本号信息,比如隐藏 Nginx 版和 Tomcat 版本号,还需要定期升级中间件的版本。
3、网络运维
网络运维,主要负责网络设备的管理与维护,比如交换机和路由器配置,服务器网络配置,系统网络层面的管理,IP 地址管理等。
在日常工作中,离不开网络,网络运维在其中扮演着网络稳定与安全的关键角色。
各个系统间的通信,同样离不开网络,这需要网络运维提供网络支持,开通相应的网络策略。
要熟悉最常用的网络操作系统,如 Windows 2000、Windows 、UNIX 和 Linux。架构一个局域网可能会用到多种操作系统,多掌握一些毕竟可以更好地、有更多选择地处理问题。
再次,要掌握路由交换设备的配置方法。可以说,Internet 就是由路由器和交换机搭建而成的,合格的网络工程师必须能够单独完成局域网的架构工作,如果没有相关的知识是不敢想象的。
最后,还要掌握综合布线和网络集成的相关知识。在做项目计划时,要充分考虑到设备的选型和拓扑的设计,必须对综合布线有所了解,才可能做到网络畅通,硬件匹配,不产生网络瓶颈,性能价格比最高。
以上的知识结构只是针对网络管理和维护的工程师而言,如果在网络中还牵涉专业的数据库,那么精通 SQL 语句,熟悉某种数据库,如 ORACLE,SYBASE、SQL SEVER 等也是必需的
4、数据库运维(DBA)
数据库运维,顾名思义就是专门负责数据库相关的工作,比如数据库库表设计,数据库安装与配置,数据库安全维护,数据库监控,数据库备份与恢复,数据库高可用等,保证数据库安全、稳定地运行。
5、开发运维(DevOps)
开发运维,并不是说同时兼顾开发和运维的工作,而是开发和运维之间相互协助,加强沟通,利用自动化技术,提高团队间的工作效率。
由于 DevOps 基于 Linux ,所以需要掌握 Linux 相关技能和系统管理,另外还需要掌握的技能有以 Git 为代表的版本控制,持续集成 Jenkins ,自动化工具 Ansible 等。
掌握技术的同时,需要有较强的团结合作精神。
关于传知摩尔狮
传知摩尔狮是广州传知信息科技有限公司旗下针对阿里云认证及云网创立的数字人才培训品牌,传知摩尔狮成立于,致力于传播领先的教育理论,倡导更有效、更高效的学习范式,在IT职业教育领域,研究相关学科的教材教法和教学资源的整合,通过自主研发的学习服务平台推动IT人才的学习和发展,致力为中国云计算行业培养数字化人才。
摩尔狮在秉持传播知识、成就未来的理念下,8月与阿里云达成深度合作,成为阿里云认证的战略级培训伙伴。并且,摩尔狮已和超过200家的互联网厂家签署了就业合作协议,为企业与国家持续培养输送面向未来的应用型人才。