1.2.1 计算资源云化
很多传统企业的IT系统运行几年后,运维部门可能没一个人能说清楚该系统是怎么回事,谁都不敢处理问题,尤其是有关重要的核心系统。比如我想在消息队列(Message Queue,MQ)上订阅消息进行数据传输,运维人员很可能说这个MQ已经有一年多没人动过了,如果给你配置的话担心会影响到生产系统的稳定性,建议你想想其他办法,非要使用的话,我们联系MQ厂家,等他们下次来的时候给你配置上,好吧?大家觉得这不可思议,但这样的情况确实存在。这属于中间件的使用问题。
还有一类问题有关服务器计算资源,很多企业停留在将实体服务器作为固定资产管理的阶段,有自己建机房的,有些银行的服务器还托管在运营商的机房。如果有一个新系统建设,就需要报预算、招标采购硬件资源,到货后安装基础环境,调试网络,进行应用程序(以下简称应用)的部署上线,最后将相关系统移交给运维部门。整个流程费时间、费精力,而且有可能因为一些客观原因流程被“卡住”。另一方面,信息系统运行几年后,软、硬件都需要升级、调整,而计算资源很难适配、扩展。要解决这类问题,企业的计算资源必须实现自动弹性伸缩,按需使用,计算资源的服务化和云化几乎是必然。很多人可能觉得公司的服务器已经虚拟化了,但云化和虚拟化不是一个概念。
云计算就是使大量服务器在线后提供计算能力,是企业的核心能力,但企业购买了大量服务器不一定有相应的计算能力。云计算将IT资源集中管理并开放共享,通过服务的方式对外提供计算能力,“百度一下”感觉很快,但对于后台来说有成千上万台服务器在瞬间完成在线的计算,而世界上还没有任何一台服务器能完成这样的工作。云计算就像用水、用电一样,随需而用,用户不需要知道云计算内部的实现细节,只需要在云上找到自己需要的计算服务、按自己的使用情况按量付费即可。能对在线计算能力进行运营的才是真正的云计算,就像国家电网运营电能一样。微博的服务器已经迁移到阿里云以应对热点事件所需的超大计算能力,热点过后流量降下来时计算资源也会自动释放,实现了计算资源的自动伸缩。云计算的优势非常明显,但我在工作中经常会谈到服务器资源云化,特别是公有云时,必定有个安全问题绕不过去。如把钱放在银行和放在枕头底下,哪个更安全呢?只有相信它,才能用好它。作为一名集团公司的IT架构师,需要考虑方方面面的因素,哪些服务在公有云或专属云、哪些在本地私有云,云计算的基础设施即服务(Infrastructure as a Service,IaaS)层如何规划设计,私有云是按专有云建设还是独立设计,是不是混合云架构等问题都要权衡。云计算发展过程大概如图1-5所示。
图1-5
●服务器托管:服务器若由开发人员和企业自行维护,成本较高,对运维人员技术要求较高,手工操作较困难。
●云主机:云计算接管计算服务上云和物理设备的维护,通过虚拟化将线下的IT资源整合形成计算资源池,对外提供标准计算和存储服务,称为IaaS。我们在规划机场旅客服务平台时,有厂家给的方案里几百万的预算中一半用于建设基础设施,如建机房、买服务器、部署网络和购买正版软件等,对于一个企业的应用平台,这种重资产的方式除了要考虑建设周期,还要考虑后期的运维升级保障;而公有云计算使企业用户可以通过互联网获取自己需要的计算资源、存储资源和网络环境,用户只需要关心自己的业务实现,不需要建设基础设施,也不需要专职的运维人员,只需要按使用情况结算付费。当然如果是私有云,则不存在计费。
●应用容器:云计算接管服务器和系统运行环境,称为平台即服务(Platform as a Service,PaaS),而且还提供了标准的应用软件开发平台,极大提高了应用系统的开发效率和稳定性,达到事半功倍的效果。我们在建设中台时使用了阿里云的企业级分布式应用服务(Enterprise Distributed Application Service,EDAS)互联网架构研发平台,开发人员只需关心业务逻辑的实现,至于微服务的细节都已经在云上透明化,EDAS环境在内部都封装好了。业务应用开发过程中使用了阿里云移动开发平台mPaaS,提供几百台移动真机实现移动端的各种测试,而不需要为了测试把市场上各个型号的手机各买一台。
●云函数服务:云计算接管除业务逻辑以外的其他部分,称为函数即服务(Function as a Service,FaaS),这是云计算使用的更高层次,用户不需要关心应用的运行环境。这种无服务器架构没有了服务器的概念,目前此技术在公有云上都有提供并且已经商业化,但成熟度还不太适合所有的应用场景。中台项目在建设过程中使用了小程序云的Serverless云函数实现小程序的前/后端分离,整个中台的业务中心测试环境已经使用Serverless应用引擎(Serverless App Engine,SAE)部署。
云计算的飞速发展,使服务器的概念逐步淡化,开发人员越来越只需要关注业务领域,需求方只需要提交计算资源需求给云平台,云平台会选择相应的资源配置,云计算会自动分配虚拟机、运行环境、操作系统。目前基本都是容器化部署,其轻量简单,节省了大量的时间和人力成本,并且计算资源可以按需随时调整,有并发了可弹性加配置,空闲了可减配置,最大化地优化资源的合理利用。
云上自动化运维和安全监控更加可靠、完善,相关技术人员可以从烦琐的日常服务器运维和巡检中解脱出来,把更多的精力放在业务应用的优化上。能让计算机干的,人就别干了。专业的事让专业的人来做,每个人只做自己擅长的,“聚焦主业”。这样上文所述的烟囱系统就基本不需要单独的硬件、网络和存储,集团建立统一的云管理平台,把运维、运行环境等重复工作统一管理,把数据集中存储,各子公司和成员企业基本不需要专职的运维人员。IT人员完全可以参与业务流程,站在数据的角度去引领业务的发展,成为懂技术的业务专家。
需要注意传统企业有些系统可以上云,而有些系统因为客观原因是上不了云的,有的企业还需要应用上云而数据库不上云,这就涉及企业要建什么样的云:私有云、专有云、专属云、公有云还是混合云。如生产环境承载了最核心的业务,部署在本地自己构建的私有云;企业内部如办公自动化(Office Automation,OA)、资产等系统相对固定,部署在本地机房的虚拟化环境里;而旅客服务系统放在公有云上,因为本地的私有云和虚拟化计算资源有限,无法及时满足旅客的高并发和及时响应需求,而公有云非常灵活,敏捷度更高,可以随时随地调整变更,最终的网络架构是混合云架构。我认为混合云架构或许是今后一段时间传统企业的必然选择,甚至可以做到公有云和私有云的相互异地灾备。
实现企业数字化转型只是把资源云化还远远不够,更重要的是整个企业IT架构的云化,包括DaaS和SaaS等。
●数据即服务(Data as a Service,DaaS)。在当下的数据时代,企业积累了大量的业务数据,同时也缺少和需要大量外部数据。DaaS通过数据资源池聚集内部数据进行整合加工,对外提供有价值的服务。如我们建设的数据服务平台可对外提供实时航班信息,大巴系统可以用来安排班次,航延系统可提前提供延误服务。
●软件即服务(Software as a Service,SaaS)。企业通过在线租赁的方式获取软件服务,不需要自己建设、维护和购买软件。如阿里云上的云市场提供了上万种SaaS,给旅客发短信只需要在云上开通短信服务,开发人员不需要关心电信运营商是谁,也不需要关心携号转网之类的细节,只需要调用短信服务传递手机号和发送内容。