[关闭]
@gaoxiaoyunwei2017 2019-12-19T18:16:55.000000Z 字数 7192 阅读 663

混合云时代的运维挑战与最佳实践

白凡


我叫胥峰,目前在新钛云服首席架构师,我2006年毕业之后就一直从事运维和安全一线的工作,有13年的经验。长期在盛大游戏做运维相关的架构师,我出了三本关于Linux和DevOps的书,黄色这本是最近刚出的,阐述了我对安全的理解,我认为保障安全或者在构建安全体系的情况下,要重点保障三个阶段或者是三个方面。纵深防御、安全扫描和入侵检测。在演讲里面很多的观点、技术和工具,也是参考了这本书里面的一些内容。

第二本关于《Linux运维最佳实践》,我总结了在长期运维过程中,所总结和提炼出来的,在实际的运维工作中怎么更好地实现对业务的保障和业务的连续。

第三本关于《DevOps:软件架构师行动指南》,怎么在运维过程中实践DevOps的理念。最后这个是我的微信,大家感兴趣或者有疑问可以跟我讨论沟通。

image.png-198.7kB

这次分享的内容分为四个部分,第一混合云时代已然到来,第二混合云时代的运维挑战,第三混合云时代运维的最佳实践,第四总结。

image.png-40.1kB

1. 混合云时代已然到来

我们讲到混合云的时候,必然有一个呈现的概念,到底什么是混合云?我这里面摘录了两个比较流行的观点。第一个美国国家标准与技术研究院发布的白皮书里面讲到混合云的定义,它的定义讲得很清楚,NIST是很有名的组织,比如说公有云的属性,像水电一样快速的提供,都是NIST这个组织提出来的。这个是微软的定义。结合这两个组织和机构对混合云的定义,我们可以看出其实混合云讲的是一种计算环境,需要把公有云、私有云有机整合在一起。什么叫有机?我们的数据和应用可以在这两者之间进行一个快速的共享和流动。

image.png-124.1kB

我们来看一下当前混合云时代的现状,这个数据是来自Flexera 2019年云计算报告,我们可以看到在中小企业里面,它定义的中小企业是指少于1000名员工的企业。我们可以看到所调研的企业里面有61%的企业选用了多朵云,既使用公有云和私有云是35%,两个数据算起来是20%的企业,在中小企业里面有20%的企业是选用了混合云的战略。大型企业超过1000名员工的企业里面,有84%的企业和组织是有多朵云的实施。在84%里面,有58%其实采用了混合云。大家可以算一下,84%乘58%大于是50%的企业,是采用了混合云战略。也就是说,我们可以看到越大型的企业,业务规模更大的组织和单位,其实采用混合云战略的是越多的,这也说明公司随着发展到了一定的规模,肯定是要考虑混合云战略,这也是很多调研报告透露出来的信息。

image.png-85.2kB

我们看到混合云其实是公有云和私有云的结合,为什么会采用结合呢?必然就是各个部分有自己的特点和优势,我们可以简单地看一下公有云有哪些优势。第一个按需付费,不需要一开始投入很多钱做基础设施的购买和建设。

第二个快速弹性,这个也说了很多公有云上买机器和一定限额的机器或者计算资源、网络资源可以很快交付给我们。

第三泛在接入,这个是说公有云的网络能力,比如说我们在公有云上可以选择不同区域的,华东、华南、海外很灵活可以选择一个区域。

第四就是高防能力,我们知道公有云接入范围很多,有很强的数据清洗能力,2019年的报告里面,ddos的攻击越来越频繁。

第二方面攻击流量越来越大,几百G已经是一个常态了,这时候需要公有云的高防能力来做数据流量清洗,这个是IDC中国发布的第一季度中国公有云IaaS+PaaS的数据。

image.png-101.1kB

私有云的优势我也总结了四点,第一部分就是数据自主可控,这个很容易理解,因为我们数据是部署在自己的IDC,部署在自己的服务器上去。

第二更灵活地超分比设置,大家知道公有云厂商为了提高利用率,原来一个物理核的可能变成三四个,追求利益的,会有七八核向外卖,你很难控制公有云的超分比。

第三避免厂商锁定。

第四充分利旧,如果不是一个小型公司的话,肯定购买了很多的IT技术设施、网络设备、服务器,这些可以通过自己构建私有云充分的利用现有的资源提供服务。右边列出了三个主流私有云厂商的实现,openstack是开源的,还有国内的一些其他厂商。

image.png-86kB

我们把公有云和私有云有机结合起来就形成了我们的混合云,我们看一下混合云的优势总结了十点,像伸缩性,你的计算能力可以快速地在公有云和私有云之间进行调度的时候,就可以充分利用公有云的伸缩性提供计算性的服务。网络安全性、网络性能和降低延迟,我们可以利用公有云的泛在接入点,可以提供更好的用户体验。还有敏捷和投入市场的速度,我们可以快速申请资源,进行新业务的尝试和调试,比如说部署测试都可以快速地去尝试这样的能力。2018年调查了使用混合云的出发点是哪些,这里面可以看到,有54%强调了减少设施投资,不用的消灭掉就可以不用持续付费了。第二资源的快速扩展,还有安全性。关于这部分大家有没有疑问或者问题的,没有的话我就继续了。

image.png-80.9kB

2. 混合云时代的运维挑战

我们看一下混合云是一个趋势,或者是一个发展的方向,在混合云时代,会遇到哪些新的挑战呢?

第一个动态基础设施的挑战,随着业务云化,你的基础设施可能更快地交付给客户,这时候基础设施的提供更加便利。以前你机房里面一台机器,有很长的申请流程,构建我们的云化之后,申请流程就简化了,会导致很多动态基础设施带来的问题。第一个就是服务器的蔓延,随着业务发展或者微服务的拆分、服务器数量和种类是爆炸式的增长。以前可能在IDC里面有些管控,比如说有些领导的控制,一年只能上多少台物理机,有预算和管控,有采购的控制。但是在云时代或者混合云时代,这个管控就弱了。

另外一个配置的漂移,随着服务器的运行,可能有些人会解决特定的问题修改了配置,这样就存在了一些差异,如果差异扩大到无法复制的情况下,可能就产生了雪花服务器的效应,你没有办法快速地通过导入导出也好,文件的分发快速部署业务。

image.png-141kB

另外一个,在动态基础设施的情况下,我们很多的静态CMDB的情况下,我们没有办法实现业务的需求。因为以前在传统的时代,通过一些流程来控制这些资源的申请、资源的录入、资源的使用和销毁,你云化之后很多流程可能就没有及时地进行更新和配置,这时候你的静态CMDB和现场环境已经不一致了。

image.png-123.9kB

另外一个在混合云时代我们发现网络架构和复杂度明显提高了,比如说在私有云里面有IDS等等,在公有云也有相应的组件,这些组件没有合理的优化,没有形成统一联动的机制,可能会导致有些业务没法进行访问,或者安全措施中间存在着一些空白,被利用的一些点或面。

image.png-57.2kB

这也是我刚刚讲到的云时代也引入了很多安全挑战,我经常听到一些误解,不管是公有云、私有云还是混合云,上了云安全就明显提高了,这是一个悖论。2019年的发布了报告,其实云上可以看到,接近30%的企业在过去12个月里面,就遇到了一些云安全相关的问题。也有接近30%有一些数据泄露,还有恶意软件的感染和入侵,还有一些账户的泄露,还有一些漏洞被利用的情况。所以在云时代,要记住一个观点,其实并没有明显减少安全风险,在云时代也需要大家把安全的意识、思想和工具贯穿在架构设计、日常的运维、日常的活动中。

image.png-145.5kB

3. 混合云时代运维的最佳实践

我们看一下有这么多的运维挑战和安全挑战,我们怎么去做最好的计划和打算,怎么应对这些问题。

大家在应对动态基础设施的时候,不能用以前老的方法处理这些问题。第一个,我们要贯彻基础设施即代码,我们在配置环境的时候,包括资源的申请、资源的部署和资源的销毁,所有的流程里面应该是通过代码的方式进行管控,可以通过代码快速地向系统或平台申请这个资源,可以通过你的代码把一些应用或者一些策略部署上去。在你不需要的时候,也可以通过代码的方式销毁掉,这就是基础设施即代码的思想。

我们可以让人们了解相关的领域,规避一些风险,第二就是速度,很多时候你手动地申请资源,申请之后手动地部署,之后上线,上线之后监控,最后业务不需要的情况下销毁。这时候是非常长的周期。在这个过程中可能会存在遗漏的操作,导致上线的基础设施和想要的存在一些差距,甚至说一批环境里面有一些机器存在一些差异,就会导致难以排查的问题和风险。另外变更环境通过基础设施即代码的方式形成快速的实现。

image.png-144.9kB

我们在实践里面基础设施即代码的工具,我也讲到几个,一个是AWS,另外叫ARM,下面两种是我们运维行业经常见到的两款基础设施即代码的工具,CHEF和ANSIBLE,可以进行配置和应用。

这个是AWS基础设施即代码的模板,可以看到这里面详细定义了EC2云主机的实力,它使用了哪一个镜像,使用的类型是什么样的,比如说是什么型号的,T1、T2、T3的。都是可以通过这个来进行定义的,像以前通过一些界面,也可以生成这样的一些资源,通过这样的格式化配置定义,如果你在平台里面去点,特别是批量生产的时候,不同的人点出来是不一样的,比如说选错了,或者自己发生了一些错误的理解都有可能产生不一样的结果。通过基础设施即代码就可以有效地规避这样的问题,所以生成出来的资源,都是可以追溯的。

image.png-95.6kB

第二个多云管理平台,有公有云和私有云,甚至公有云不止一家,可能因为业务的需要,包括公司战略的一些需求。这时候就需要一些平台来进行多云的管理。如果你没有这样的平台,你会比较麻烦。

这是我们研发一款多云的管理平台,可以把公有云的主机还有阿里、腾讯导进来,可以导入私有云的主机,都可以通过这些平台进行导入,导入之后就可以进行一些部署和管控。

image.png-69.4kB

我们混合云时代希望有一些实践的指导进行混合运维的实践,我们看一个例子,这个是我们给一个客户做的混合云运维架构的设计,最开始是没有右边的这套体系,全部是左边。包括防火墙,接入的设备都是存在着故障,通过混合云我们可以实现更高的高可用,更高的网络安全性。大家可以看到,在架构设计里面,也是充分体现了,后面也会讲到纵深防御的概念。这里面没有画出来像DevOps的防护,通过公有云DevOps防护之后,我们引入了比较常见的WAF组件,进行一些应用层面安全的过滤。很多时候各方面都做了,应用如果没有写好,可能会存在一些注入、跨站的漏洞,也会造成极大的安全风险。通过使用公有云的WAF组件,可以做一些有效的隔离。很多应用的漏洞,可以被WAF拦截掉很大一部分。当然哪一个百分之百防御掉应用层攻击是很扯的一件事情。

还有ELB负载均衡,我们可以有效地减少云主机里面的公有云IP的使用,一方面公有云IP是付费的,另一方面增加了安全的攻击面,当越来越多的机器减少了公有云IP之后,像黑客暴露的面越来越少,像盔甲一样,防护得越多,只留下很小的一部分,别人也很难攻击你,安全最重要的目的就是减少我们的攻击面。如果这些机器需要上网,我们通过NT的网关,对官网进行访问,可以极大地减少在公有云上的机器对公网的使用,极大地减少攻击面。在做数据同步的过程中,有两个选择的方法,如果考虑成本的因素,可以通过简单的防火墙和云上VPN的网关进行对接,可以有一个模拟的专有私有网络。实现的数据可能有一些联动,比如说做数据备份、大数据分析,都可以在这个地方进行实现。

image.png-82.4kB

如果有一定的预算,追求比较高的网络联动性,这边可能需要购买一些云专线,比如说公有云上拉到自己的机房里面去,这时候可以保证更大的带宽以及更小的网络丢包率和延迟。

image.png-108.6kB

我们刚刚也讲到,云化之后安全风险并没有极大的减少,我们依然面临很多的安全问题,这时候我们就需要一些最佳实践的指导。我认为安全领域,一些核心的观点,第一要建立纵深防御的理念。大家知道,这个概念应该最早来源于一些战争里面,哪一个国家纵深很大。如果这边有一些核心的资产,你肯定不是轻机枪和重机枪在这里,前面可能有雷,当敌人过来之后,敌人可能会被消灭在任何一个方面。大家想一个谍战片中的信息安全情节,实施纵深防御的目的,增加攻击者被发现的机率,降低攻击者攻击成功的机率。我们不缺工具和平台,在进行安全设计的过程中,我们经常会想到一个纵深防御的理念,这是很好的一个思考框架。

image.png-215.5kB

第二要遵循建立预防、检测、响应、恢复机制,你还要定期不断检测,检测之后发现问题,就去恢复业务。我发现在很多公司里面,强调保护机制和流程,但是缺的是检测的机制。以前在一家游戏公司做的时候,游戏上线的时候发现检测是非常重要的,比如说你上了一批机器,有一款国产的机器存在一个漏洞,配置超过一定数量之后,全员失效了,如果没有检测机制,可能还很开心地在那里睡觉,其实你很多网络防护的策略已经失效了,已经把很多敏感端口和业务的界面暴露在外面了,这个你如果没有一些检测机制,这是非常危险的,黑客可以利用这些窗口,或者利用你的交换机、防火墙进行一个探测、入侵的尝试。

image.png-176.1kB

再讲一个比较重要的理念,我们要构建一些基础的入侵检测系统,“没有消息是好消息”,在我们的运维实践里面,这句话是一个错误的论断。很多时候你被入侵了,但是你不知道,这时候就不是一个好消息。这时候就可以通过构建一些科学的入侵检测系统来有效地避免系统被入侵,而自己不知道的应用情况。

image.png-85.9kB

这也有一个生活中的案例,这家公司是全球最大的酒店连锁集团万豪,在2018年发生了一个新闻,大概有5亿的数据发生数据泄露,他们经过一个内部调查发现,入侵发生在2014年。就是说这个黑客从2014年就入侵了万豪集团下面的公司,它的数据可能在2014年就已经被发生了泄露,就已经被黑客盯上了并且成功入侵。正是缺少入侵检测系统的帮助,导致黑客长期潜伏在网络里面,长达4年之久,这个新闻是在2018年11月份的新闻,如果你没有高效的入侵检测系统,可能也没有预警,这个时候已经被入侵了。可以看到万豪集团的案例,生动地告诉我们,你需要构建一套有效的科学入侵检测系统,来告知你的系统到底有没有被入侵,而不是盲目乐观地说“没有消息是好消息”。

image.png-187.9kB

在构建入侵检测系统的时候有很多的选择,第一个可以购买商业的商品,具体地就不在这里说了,补齐短板、可视化平台。如果是黑客入侵进来了,第一个动作根据信息的漏洞尝试进行提权,进行更大的破坏。通过商业的软件,可以准确识别到恶意提权的行为。而且商业软件可以提供更高安全的态势感知能力,可以对接自己的指纹库或者IP库,发现服务器上下面主动连接了一个IP地址,如果在IP库里面属于IP信誉值低的恶意IP,就可以进行报警,这也是一个非常有效的管控手段。很多时候黑客入侵之后,现在黑客也是比较精明的,不会再上面随意写一些端口。第二个,你通过建立端口的方式,黑客的行为很容易被实现,很多时候采用反向连接的形式,主动连接到某些服务器上接触恶意旨意也好,来有效地察觉到这种行为。当然你购买商业产品肯定是有一定的费用,这是它的一个弊端。

image.png-80.6kB

如果我们钱不够,或者是公司的预算有限,你可以尝试OSSEC软件,我认为是全球使用量最大的主机入侵系统。当时入侵检测系统根据部署的位置不同,整体上可以分为两类,一种是网络入侵检测系统,通过的部署行为是部署在网络边界上面,采用一个盒子或者流向镜像的方式,对流量进行分析。另外一个叫主机入侵检测系统,所有的入侵除了故意搞破坏的,或者故意删除一些路由器的文件或者配置,其实大部分情况下黑客入侵的目标是咱们的主机,更确切地是主机上存放或者正在处理,或者访问到一些敏感数据。

第二种入侵系统是部署在主机上的,叫主机入侵检测系统,这款是比较流行的主机入侵检测系统,在每台主机上面有/etc/passwd,这块有一个/etc/shadow,root管理员会进行一些策略。第一个是文件完整性检查,很多入侵之后,黑客会尝试增加一些新的系统账号,不再使用老的账号,避免被发现。这时候所有的操作,肯定会导致关键的文件变化,但是你通过一些关键文件的变化,大概知道里面有一些入侵的行为。在一些合规的标准里面,在11.5和10.5.5节对文件完整性检查做出了明确的要求。

另外一个就是日志监控,黑客入侵不是一次性就完成的,如果一次性命中了我们的系统,很大的概率就是内部人泄露的情况。

第三Rootkit检查,还有一个可加载的内核模块,来进行内核级Rootkit注入,避免自己的恶意文件被你发现,很多时候被入侵了,之前的PS已经不是那个PS了,里面的行为已经发生了一些变化。可以通过Rootkit做一些最基础的检查,如果识别更高级别的Rootkit,要去购买一些更高级别的软件。很多没有指纹的情况下没有办法识别Rootkit,用商业软件可以做一个很好的补充。

image.png-179.8kB

这也是一个新闻,2018年的一个新闻,为了避免产生一些影响,把核心单位或者组织做一些隐藏。这家云公司也说了,因为在操作过程中有一些误操作,所以大家想象一下,在公有云上,很多的公有云强调了99.999%的可规性,但是遇上了百分之百出问题的情况。作为最后一环,你需要的就是一份切实可用的备份数据来做,对于技术人员来说,这一点是很难接受的情况,最差的情况下一定要有自己的数据备份,可能是备份在另一家公有云上,更好的情况下备份在自己的机房里面,做离线,很多时候会考虑购买磁带的传统方式来备份。不要小看磁带这个东西,有一个很好的优势就是离线的,如果一直备份在线上系统里面,其实都是可以绕过,通过离线的机制可以进行防御的调整。

image.png-99.6kB

关于备份需要关注两个最主要的指标,RTO的概念,你可以容忍系统服务中断时间,或者说系统服务中断后,用来恢复系统服务的最大时间。第二RPO,是在系统发生损毁后,希望系统能够恢复到什么状态,也就是可容忍的数据丢失程度。有的人希望RTO和RPO都等于零,如果是零,你需要采用更多的设备和资源来支撑,换句话说,你需要投入更多的钱,大家在设计备份的时候,要结合当前的需求来做一个科学合理的制定。

image.png-144.3kB

4. 总结

总结一下,这边提出三句话。第一,拥抱混合云,赋能业务。在混合云时代,我们要实践基础设施即代码去管理我们的资源,去管理我们的主机。第二构建多云管理平台,第三在实践过程中我们要秉承安全的最佳实践。我的分享结束了,大家有什么问题可以提问,也可以线下问。

image.png-43.5kB

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注