开发者社区> 阿里云MVP> 正文

中小型企业运维之路

简介: 上了云,我们是否还需要运维,运维在什么阶段介入是最好的,在云上,我们又该怎么做好运维工作,运维涉及的知识面那么多,组建团队成本高。

以下内容根据演讲视频以及PPT整理而成。

直播回顾,请点击这里。

缪鹏,江苏立维互联科技有限公司CEO,阿里云MVP,南京阿里云ACE会长,2015年出来自主创业至今,专注于中小企业的运维服务工作,客户有云上、有IDC、有混合方式等。缪鹏将这些年遇到的、看到的关于中小企业的运维中遇到的一些问题、以及一些方法论拿出来跟大家分享。

在谈运维之前,有一些创业的小插曲。2015年出来创业的时候,还没有一个客户积累,完全是凭借自己的一腔热血,能坚持至今也算自己的庆幸。那时候阿里云已经开始发力,我也刚接触公有云,其实相对行业内的大拿,已经算比较晚的了。在了解了公有云后,我就觉得公有云会改变整个运维行业,当时想的还相对简单,就是觉得随着云计算的起来,中小企业就慢慢的不会再购买物理服务器、去建数据中心、搞机房托管,而是慢慢的都要上云,那企业上了云,对传统的运维人员,比如主机运维、存储运维、网络运维等等岗位的需求就会越来越低,企业更多的需要应用运维和业务运维人员。都在云上了,那运维是不是在任何时间,任何地点,只要有网络,我们就可以处理工作了。于是就这么出来创业了。
image.png
那云计算到底有哪些便利,我相信大家都应该比较了解了,这里是一份关于阿里云服务器和传统服务器的对比表格,从这个表格我们可以看出,不管是建设方面、维护方面、还是操作的便捷性、数据的安全性、IDC的稳定性,以及成本的控制,都说明了公有云给企业所带来的便利,相对于传统服务器有着很大的优势。

业务上云,我相信很多企业都已经有这样的共识,但是上了云之后,关于“运维”,我们又听到了不少不一样的声音。
image.png
(1)比如说“我们买了阿里云,就不需要运维”,感觉上了云,就万事大吉,只要用云,企业业务的稳定、数据的安全就一切都OK了。其实不然,拿阿里云来举例,云平台提供给我们的是基础环境,当然现在也有PaaS和SaaS,如果我们使用的IaaS,那阿里就是一个大商场的建设者和管理者,我们做为商家,租赁了阿里的的商铺,每个商铺卖什么、提供什么服务,环境怎么布置,还是由卖家自己来决定的。阿里云保障的是底层基础设施的安全和稳定,但业务的安全和稳定还是要靠企业自己。所以,当我们买了云主机,不是万事大吉,而是刚刚开始,业务的环境如何规划,环境怎么布置,业务性能如何优化,数据安全怎么保证,都得靠我们自己。

(2)那我们是不是资源配置越大越好,我们知道,一个云主机的组成有主机部分、磁盘部分还有带宽部分。正常情况下,比如2C4G的主机我们支撑100人在线的访问,16C64G的主机支持10000人在线的访问(这个数据只是虚拟数据,不做实际用,因为一个业务的并发到底有多少,有多方面因素),那是不是我们所有的业务环境用越高级的配置越好,有没有必要所有的服务器都是SSD,带宽都按照高的来。我们在选择高配置的同时,虽然业务看起来相对稳定,但带来的成本的浪费,却是我们没有评估的,比如带宽的费用,5M以上BGP的费用是80元/M/月,这个价格大部分公有云平台都一样。在我们服务的客户中,很多开启的是50M-100M的固定带宽,磁盘选择的是T级以上的SSD,那我们可以算出来每台资源对应的额外支出是多少。我们在选择云资源的时候,千万不能忽略了云资源配置可弹性变更这个原则,没有必要用传统的IT资源申请一样一下子做3年5年的规划。

(3)还有人说,上了云,就一切都安全了,不需要安全产品,更不需要安全服务,还有人说,我们都已经买了阿里的安全产品,不需要安全服务。云主机的产品,阿里云使用的是安骑士,有免费版,也有企业版,不管是哪个版本,帮我们发现的安全问题和修复建议,我们是否都可以一键去修复,这些修复对我们的业务是否有影响,需要专业的人员去评估,而不是盲目的信赖产品。我一直强调,不管是安全,还是运维,有产品更要有服务,产品解决的是通用性的规则,但企业服务总是个性化的,个性的问题还是需要靠服务来解决。而且对于中小企业而言,不是所有的产品都有能力去购买,比如DDOS的产品,安全检测的产品,漏洞扫描的产品等等,如果这些产品都购买,那对应的成本也是巨大的。

(4)云是便捷,可以减轻我们很多工作量,提升我们的效率,提升业务的稳定性,那是不是所有的一切都用云产品就OK。在一家公司的早期阶段,往往对运维缺少比较全面的规划,更没有过度的能力去研究运维相关的产品或技术,当然这是可以理解的,早期阶段,企业的关注点应该就在业务功能的实现和推广,那这时候,借助云平台的PaaS或SaaS产品,可以快速交付我们的业务,比如自建的Mysql,使用RDS来代替,自建Hadoop集群,直接使用云上的大数据产品,运维要研究的分布式文件系统,直接使用阿里云的OSS产品等等,通过这些底层技术平台的产品化,让企业在早期阶段减少了很多学习、部署和维护成本。那是不是任何时候我们用产品就OK呢,我们来看一组数据,一台16C/16G/500G SSD主机的价格是¥23868,一台同等配置的SQLServer RDS一年费用是¥416,976.00,如果使用自建的方式,使用两台ECS做Mirror,成本上一年也可以比RDS产品便宜30多万,(当然RDS产品包含了版权认证的费用,中小企业大家都懂的。)这个是从某个产品的成本上举的一个例子。再比如,曾发生某区域因代码更新问题,导致该区域大面积宕机,影响包括消息队列等在内的大量产品异常,如果这时候我们把所有的都交给产品,平台的问题就会导致企业运营的业务全面宕机,而平台方也仅仅会按照产品宕机时间给我们对应的百倍时长的代金券。再比如某家企业如果将自己核心系统SaaS化,如果SaaS平台出现问题,而自己又没有替代解决方案时,就将任人宰割,所以,我们在做云上信息化架构方案的时候,需要从企业的当前状况,综合风险和成本进行考虑,给自己留个退路,不要盲目将所有系统都进行云上产品化。

刚才说了这些问题,那对于中小企业来讲该如何做。我这里把中小企业的定位是从服务器数量规模上来定义的,我们认为100台以下规模的企业,基本都属于中小型企业。

其实,中小企业有很多痛点,不标准、不规划、缺乏技术能力、比较看重成本,又追求研发效率,期望业务安全稳定,又希望花更少的钱。

从业务环境来讲,分为开发环境、测试环境、稍微规范点的公司有预发布环境或者预生产环境,然后是生产环境;使用的资源上,一般开发、测试环境放在本地、生产环境有些是IDC、有些是在公有云上,有些,更是多形态混合。用的技术栈更是五花八门,同一家企业可能会涉及多种开发语言(Java、PHP、.net、Go、Python、Ruby等),多种类型数据库(Mysql、Oracle、SQLServer、Mongodb、ElasticSearch等等),底层支撑的平台有ActicMQ、RabbitMQ、Redis等等,我们曾遇到这样一个客户,一台服务器中部署二十个服务,有Nginx、Tomcat、mq、Redis、memcache、mysql、mongodb、postgresql等等,差不多你知道的,都能给你用上,真正做到了”ALL IN ONE“,可谓麻雀虽小,五脏俱全。

是不是一家企业使用的技术栈多,就表示五脏俱全,不仅仅如此,五脏俱全,更多的是说企业要规范、要效率、要安全、要稳定、要成本控制。要做到这些,又得要求企业的有技术团队、知识全面、技术专业,能是行业专家最好,还要成本可控。可事实上,中小企业要养这样的专家技术团队,成本往往是不可控。从另一个维度来讲,麻雀虽小,要这样的五脏俱全,实现起来是有难度的。
image.png
前面我们说的都是问题,对于中小企业而言,上云是最简单的选择,因为便捷,因为成本可控。我们在上云的时候,只要做好前期规划,利用我们有限的成本,计算好,然后看下这些成本可以上什么云,购买什么配置的产品。基础的安全可以使用安全组来进行网络隔离,应用的高可用使用LB产品,先简单的将我们的业务在云上相对安全稳定的运行起来。

在没有云之前,我们可能把更多的精力放在后期的维护阶段,但有了云之后,我们应该改变下我们的思维,重前期工作,重实施。实施不是将我们的程序在线上运行起来就OK,我们需要标准化我们的部署规范,包含了操作系统、安全、监控、日志、备份等等规范,同时还要进行各类流程的规范培训和贯彻,比如SQL的规范、代码的规范要求、尤其是线上环境的配置变更的管理。

我们知道线上环境80%的故障都是由于配置变更导致的,为什么传统行业的系统稳定性相对较高,为什么一个官网故障的概率很低。变更少、用户少、数据量小,决定了这些系统的稳定性要高于我们日常变更频率较高,访问频次高,数据量大的系统。而往往我们面对的这些系统,对业务的稳定反而更高,故障对用户的影响往往都是按照分钟级别来进行定义。对于频繁的变更,我们需要更严格的管理流程,更便捷的流程管理工具,来推进我们线上环境的稳定运行。虽然我们是中小企业,但对线上的环境还是要保持敬畏的态度,线上的安全稳定大于一切。
image.png
一个线上环境的稳定,除了靠我们标准的流程,还需要有全面的监控体系,快速响应的机制、专业的技术解决能力,能做好故障的当前及后续的及时跟进,并不断优化和改善。

监控系统我们都知道有zabbix、普罗米修斯、grafana、云平台的基础监控,APM类的有skywalking、Pinpoint、美团点评开源的CAT等,商业的还有oneAPM、云智慧、各大云平台的APM产品,但是对于企业来讲,是不是我们用这些监控软件或产品就OK,软件只是工具,更重要的是配置,我们监控哪些内容,监控维度是不是全面,我们更需要的是一套全面的监控体系,而不仅仅是软件。我们监控的维度至少要包含基础监控、业务、安全、日志维度的监控,基础监控包含操作系统、中间件、数据库、还有云平台本身,有人可能会问,为啥云平台也需要监控,我们知道云平台的可用性也不是百分百的,我们要更快速的定位故障,那平台是否稳定也是我们需要关注的点。业务监控,包含了监控检查、各个对外的站点、用户覆盖范围较广的区域拨测、还有证书的监控、业务性能的监控(也就是APM)。安全层面,囊括了风险相关的操作、主机安全、业务安全方面的监控。监控是要多维度的,一个故障的发生原因,可能是多方面的,有可能来自是云平台的故障,有可能是某个区域的网络问题,有可能是应用代码的逻辑故障,也有可能是某个SQL语句的性能导致,也有可能是安全攻击导致的业务瘫痪。如果我们要更好的发现问题,并解决问题,监控的全面性是必须的,安全的告警也需要纳入监控的范畴,监控上要有方法,有实践,还要对业务理解和熟悉,要有快速的响应机制,丰富的故障经验,专业的技术能力,有效的事件推进,只有这样,才能不断优化和提升我们业务的稳定性。
image.png
麻雀虽小,五脏俱全,下面我们说安全。可能我们的概念里,安全更多的就是主机安全、业务安全,然而企业的安全不仅如此,主机和业务的安全又可以细分为多个维度。我们知道,如果要把安全体系做全面,成本投入是非常巨大的,安全和效率是成反比的。我认为中小企业的安全,更多的是应该利用有限的成本,将业务做到相对安全。这里我们就从业务数据的安全做进一步讨论。

针对安全,我们可能要部署多套安全方面的系统,主机入侵检测HIDS、主机的漏洞扫描、基线检查、应用漏洞的扫描、WAF、日志分析系统、监控系统等等。要去保留和分析包含系统、用户访问、数据库、应用、人员操作等日志内容。关注风险操作,风险操作是指主机是否被用于地址反弹(如果你的安全是后面完善的,而你的服务器被黑客提前安装了反弹软件,这个云平台的安全产品是无法帮你发现的),再比如运维或者研发人员或者居心叵测的人员,给你rm -rf,数据库上执行个drop操作。另外我们还要全面的日志系统,记录系统、应用、安全、人员操作等日志,并对日志进行过滤分析,在真发生问题时,我们有日志可以溯源分析。我们曾遇到一个黑客,将一个客户的核心服务器进行了rm -rf的操作,并将所有你想查的日志都进行了删除,包括了系统的、访问日志、还有业务、甚至连数据库都直接进行了rm -rf的操作,让你想去还原整个攻击过程就变得异常困难。所以日志的保留和分析就变得很重要。
是不是有安全防护系统就OK,那也是远远不够的,在有相对基础的防护之上,我们还要做好数据的审计和备份,线上环境哪些人可以操作,线上数据哪些人具有权限可以获取。同时重要数据是否有异地备份,备份是否有检查,我们都要将这些纳入安全的范畴。做安全不能仅仅依靠安全软件,还需要有监控,有备份的结合,有专业的安全团队,来提供安全的支撑服务。
image.png
线上的环境,不能仅仅是安全和稳定,我们还要有比较高的效率来管理和维护。我相信作为运维的童鞋肯定接触了不少运维自动化的工具,也接触了不少云管平台,但中小企业面临的实际情况往往是,我们也就十几二十台服务器,多的五六十台,每个应用也就2-3个节点,除了刚开始业务上线的时候需要批量部署基础环境、完善监控、备份等,在日常维护过程中,如果持续集成做好,自动化的需求就越来越少。日常中我们更多的是配置的变更和故障的分析和优化,这些都属于个性化需求,由于每家企业的情况都不一样,自动化还是有些难度。

那中小企业的自动化就变得相对尴尬,最需要的自动化就变成了持续集成。持续集成往往有两种方式,一种是自己利用jenkins+ansible来建立这套系统,另一种,就是一些商业的工具或云平台的产品来完成持续集成的构建。通过这样的方式来提升线上环境的效率。我们在实际使用中发现,比如阿里云的云效系统,就可以帮助中小企业实现从需求管理、代码管理、编译到应用发布的全流程管理,当然有使用人数上的限制。运维只要把精力更多的放在怎么更好的发现业务问题,怎样提升业务稳定性上,而不需要再去做基础的部署、发布方面的运维工作。
image.png
企业信息化的成本是总体来说,就是资源和团队。中小企业来讲,采购的资源主要就是云资源,我们需要评估采购的资源是不是合理,有没有存在浪费的情况,我们是否有必要所有的环境都使用产品化,是否有替代解决方案,成本上能否再控制,购买的这些资源能不能再打个折啥的,能不能帮助企业再降低下成本。

团队这块,我们是否一定要自建,研发是否要找一个技术专家,请到的技术专家又能否长期陪公司走下去,是否有必要再建一个运维团队,还是找一家专业的公司来提供咨询和解决。不管是前期的产品研发体系设计,还是业务上线后的安全、稳定、性能的保障,其实答案显而易见,不管是从成本考虑,还是从专业度考虑,大部分企业已经没有必要什么事情都亲力亲为,专业的人做专业的事,企业应该将更多的资金投入到业务发展中去。

扫描下方二维码,加入开发与运维钉钉交流群,查看更多精彩内容。
开发与运维技术群.jpg

版权声明:本文中所有内容均属于阿里云开发者社区所有,任何媒体、网站或个人未经阿里云开发者社区协议授权不得转载、链接、转贴或以其他方式复制发布/发表。申请授权请邮件developerteam@list.alibaba-inc.com,已获得阿里云开发者社区协议授权的媒体、网站,在转载使用时必须注明"稿件来源:阿里云开发者社区,原文作者姓名",违者本社区将依法追究责任。 如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至:developer2020@service.aliyun.com 进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
+ 订阅

阿里云最有价值专家,是专注于帮助他人充分了解和使用阿里云技术的意见领袖。

官方博客
官网链接