云计算时代运维的出路在哪?

王洪鹏
虽然没有考虑nginx的高可用、应用的负载均衡、应用的动静分离、数据库的主从读写分离、数据库定期备份、监控告警、故障演练等情况,部署期间负载运维的同学已经有很多的事情可做。

做过开发,搞过运维,又在在云计算行业折腾了几年,不说自己技术怎样、怎样……,暂且说说笔者在当前公司做云计算这几年的些许感悟,兴许可以给正在从事运维或者运维相关工作的同学一点启发,如果可以刚巧帮助到大家什么的话那自然更好。

前几年云计算刚刚出现之时,包括笔者在内很多人对云计算仅限于知道有这么个东西,至于它什么都是一脸懵逼。今天看来,不说我们就是有些大佬们当时对云计算的未来也是不甚明了。

当时极少数大佬对云计算的未来充满信心,典型代表马云。马云认为云计算是一种分享,数据的处理、存储然后跟分享的机制,马云当时甚至声称如果阿里未来不做云计算,阿里未来会死掉。

同一个会议中,另一个大佬马化腾认为,云计算可能需要过几百年、一千年后,到阿凡达中描绘的那个时代时才有可能实现,马化腾觉得当时做云计算还是显得过早,并为此举了一个例子: 比如现在研究局部的IDC,1万台或者几万台组成的超大IDC,集装箱里面插几千个主板、海量CPU、内存统一作为计算处理的一个任务,在这种局部上去做仍是一种非常的大的挑战。

当时大佬李彦宏对云计算的未来更是直接表示了自己的悲观,李彦宏表示,云计算不客气的讲,就是新瓶装旧酒,没有新东西。未来会有越来越多的基于云计算的这种互联网应用出来,但是想用云计算方式赚点钱会比较累。

云计算发展的最初几年大家认为马云眼光独到,预测的很准,由于阿里云的先发优势、重金投入等原因,阿里云坐上了国内云计算第一把交椅。但今天看来国内各个云计算大厂貌似离产生盈利还有一段距离,仔细一想这几年云计算的发展好像更符合李彦宏的预测。

这几年随着云计算的蓬勃发展,逛论坛时经常能看到类似下面的段子:“云计算淘汰运维,SDN 淘汰网工,IT行业只剩下码农和码农了……”

严格来讲这个命题是一个伪命题,实际工作中并不是所有的应用都适合上云,也不是所有的应用都必须使用SDN网络方案。如一些规模不大且自身已有服务器的企业,这种场景一般使用自己现有服务就已经可以满足需求了;或者公司的一些核心业务,如重要客户信息、资金处理相关信息等重要信息可能就不会选择放到云上;或者很多企业会将自己一部分的业务跑在云上,一部分的业务跑在自己的机器上;或者企业中用到的很多基础工具都是定制的工具,云环境提供的通用的产品不满足企业的需求。

如此一列举不需要使用云计算的场景貌似还是蛮多的。

但上面的场景只是一部分的场景,在笔者从事云计算行业这几年看来,偏互联网领域企业在选择部署环境时可能更多的还是选择云环境,因为云环境目前几乎提供了企业在开发、测试、部署时需要的一切组件。如计算环境(云服务器、容器服务等),存储环境(NAS文件存储、常规磁盘分布式存储、全SSD分布式存储、针对海量小文件的对象存储等),网络环境(如VPC网络、各种高速通道等),数据库环境(包括mysql、pg、sqlserver等关系型数据库,mongo、redis等非关系型数据库),各种缓存组件,消息中间件组件,负载均衡组件,监控服务,日志服务,访问控制服务等,可谓应有尽有。

下面我们以一个例子来看下云计算对常规运维的影响。

在此我们以一个创业公司为例,假设该创业公司为一个互联网公司,且已经完成自己应用的第一版的开发,部署架构以常见的lnmp为例,具体如下:

现在需要发布到线上,如果公司打算采用非云环境,那么从开始部署到上线大概需要经历的过程如下:

(1) 购买服务器若干台,此过程可能需要耗费几周的时间。

(2) 按照自己的需要为服务器重装系统。

(3) 虚拟化操作,虚出3台虚拟机,当然直接用物理布的话此步省略。

(4) 打通机器之间的网络。

(5) 购买外网IP。

(6) 购买域名,需要注册域名服务商账号后购买。

(7) 域名备案,此过程一般需要3周左右。

(8) 部署应用:vm1部署nginx,vm2部署php-fpm、应用,vm3部署数据库MySQL。

(9) 应用对外发布。

上面架构虽然简单,但整个部署上线过程可能需要3周以上的时间,即使备案和购买服务器同时进行,也需要花费约3周的时间。

虽然没有考虑nginx的高可用、应用的负载均衡、应用的动静分离、数据库的主从读写分离、数据库定期备份、监控告警、故障演练等情况,部署期间负载运维的同学已经有很多的事情可做。

如果再加上前面没添加的高可用等配置,运维同学可谓忙的不亦乐乎,后期业务量上来后可能还需要添加入口nginx数目,增加消息队列、数据库缓存、静态文件缓存加速等组件,运维同学需要做的事情越来越多,运维角色在公司技术团队中也越来越重要。

上面是采用自购服务器搭建的方式,下面我们说下采用云平台搭建的方式,具体部署过程如下:

(1) 注册云平台账号。

(2) 云平台购买云服务器(虚拟机或者物理机),只需要填写下机器的名称,选择下操作系统类型,选择下机器的规格,购买数量,确认后几秒钟即可完成服务器准备。相比自购机器此过程耗费的时间基本可以忽略不计。

(3) 购买负载均衡,过程和购买云服务器一样,只需要填写必要的信息即可。且此过程一般会自动为我们分配一个外网IP,不需要我们自己再去联系购买外网IP。

(4) 购买数据库实例,过程和购买云服务类似,填写下实例名称,数据库类型(包括数据库类别和实例类型,数据库类别如: mysql、sqlserver等,类型如单点数据库、主从版数据库、金融版的数据库等),规格等信息后直接新建即可。云平台一般还会系统数据的自动备份功能。

(5) 网络,可以为VPC网络也可为经典网络,根据实际需要创建即可。

(6) 购买域名,大部分云厂商都提供此服务,不需要再另外注册域名服务商账号,直接在当前云厂商平台购买即可。

(7) 域名备案,直接在当前云平台备案即可,此过程一般在1周以内即可完成。

(8) 部署应用,自购服务器时我们需要自己部署负载均衡、web server、数据库服务,此处我们只需要部署自己的web server(部分云厂商会提供大部分常见应用运行的环境的镜像,web server也不需要自己部署)即可,负载均衡和数据库服务使用上文中已经新建好的即可。

(9) 应用对外发布。

以上即为采用云平台部署的大致的过程,除了备案需要约一周的时间和部署应用需要几十分钟外,其他基本不耗费时间。且云平台的各个组件一般都已经为我们做了高可用,如负载均衡、数据库等,这部分也可为我们节省一些时间、人力、物力。另外诸如各个组件的告警管理、日志管理等云平台一般也都会提供一般直接使用即可。

上面过程中负载均衡、web server、数据库的部署等操作只需要按照控制台界面的提示进行信息填写或者选择即可。基本不需要专门的运维知识即可将整个应用上线运行起来。

以上是对云环境和非云环境部署时运维操作的一个大致的对比。实际工作中很多公司运维岗位分的很细,诸如:基础设施运维、网络运维、应用运维、系统运维、数据库运维等,以上岗位的工作大部分云平台已经替我们做好了,且云厂商提供的功能会越来越完善,因此常规运维工作会被越来越弱化,比如原先需要5个应用运维,现在可能只需要1个即可,这个可以看做云计算对运维岗位影响的一个缩影。

上面说完了云计算对常规运维岗位的影响,那么常规运维同学怎样才能在公司自立呢?下面我们说下云计算背景下对从事或者有意从事常规运维工作同学的几点学习建议:

(1) 自动化运维,包括应用的自动化部署等。

(2) 编程,不会编程的运维不是好运维,至少要熟悉shell、python(最好再学习下Django、Flask框架)两种常用语言,有余力可再学习一门公司常用的开发语言,这样可帮助我们排查一些应用引起的问题。

(3) 网络,不是建议去考证。网络是基石,复杂系统理解了网络一般也就理解了一大半。建议常见的经典书籍过几遍,如《TCP/IP详解》3卷(第二卷顺便把C语言学了)等。

(4) 数据库,如mysql、pg等,不是简单的主从搭建,数据备份,简单sql操作。建议深入学习下数据库索引和各种锁,另外学习下数据库的内部的工作机制,如存储引擎InnoDB的内部原理,这样帮助我们排查一些复杂数据库问题,对于数据库优化也会有很大提升。

(5) 缓存,如redis、memcached等,可选择一个深入学习。

(6) Nosql,至少掌握MongoDB,学习下js编程。

(7) 消息队列,最常见的如RabbitMQ、Kafka等。

(8) Openstack,云时代运维必须掌握,openstack模块很多,一般熟悉常见的几个模块即可。

(9) 容器,容器已经成为云时代常见的应用载体,至少需要学习下kubernetes、Docker、Helm、Harbor。

(10) 微服务,了解常见微服务框架,工作原理,如Spring Cloud,学习Service Mesh。

(11) 迈出自己熟悉的一亩三分地,紧跟技术发展,活到老,学到老。

THEEND

最新评论(评论仅代表用户观点)

更多
暂无评论