原标题:青云QingCloud沈鸥:企业应用如何往云端迁移?
钛媒体旗下的钛坦白微信课第26期,请来了8位对“企业上云”有深刻理解的钛客进行分享。本文根据青云QingCloud解决方案与架构总监沈鸥的分享整理。
沈鸥曾在IBM软件部工作18年,先后负责IT运维、云和智慧架构等产品线,是云和智慧架构的大中国区技术经理,致力于为企业用户设计和提供IT运维和云平台解决方案。
以下是沈鸥的分享,由钛媒体整理:
钛坦白的各位好,今天我想讲讲企业的应用怎么往云平台迁移。
先介绍一下我自己,我在IBM工作了18年,现在青云QingCloud负责解决方案和架构。青云既是一个公有云的运营商,从2013年就开始提供公有云服务,同时又提供专业的私有云服务,帮助企业走向云端。
云计算的价值是什么?
云计算的价值是什么?很多人都有自己的想法,从我们的观点来看,我们就是想帮助企业客户利用云来提升服务能力,更好地支撑企业的业务应用。
谈到云计算的好处,总结下来不外乎这样几点: 第一,当然是为了降低IT的开销,因为云计算使得系统平均的利用率上升,能够用到更少物理的资源;第二,使IT更加简单,加快资源的交付;第三,实现整个业务的增值,就像前面的几位钛客介绍的,利用云来提供更好的服务。
对于上云,企业CIO最关心什么?
云平台具有这么多好处,怎么搭建一个云平台,怎么样让一个云平台能够更好的运行,这个不是我们今天的主题,我暂且略过,我们今天就谈当云平台搭建以后,作为一家企业,必然会考虑在云平台上运行怎么样的一些业务,运行什么样的一些应用系统。
对企业而言,最主要的就是将应用迁移到云端去运行,目标就是让应用运行时能够借助于云平台的特性来最大程度的提升整个业务系统对外的服务能力。但企业的IT往往不是一个简单的环境,我们来看一看作为企业的CIO,他会关心什么:
他首先一定会关心整个 服务的可用性,业务系统从传统的架构往云端进行迁移的时候,整个服务的可用性只能提升不能下降;
其次,应用的性能需要 满足业务的需求,特别是当我们今天很多的应用开始往互联网迁移,提供手机端的应用访问时,我们往往需要应对突发的访问请求和访问量的急剧上升;
第三点,对于CIO来讲他一定会考虑 建设成本,整个应用的迁移难度和相关成本都是他所关心的。他会去思考到底对于企业而言,公有云、企业的私有云还是混合云哪个是性价比最好的选择,他是继续保留应用在传统的架构上面还是往云端迁移,哪个能够给他带来更大的业务的价值和业务的提升,这些都是归纳在建设成本这样的一个范畴之内;
第四点,就是 运维的改变,因为传统的系统已经有相对比较成熟的管理方式了,对于云平台而言,他的监控方法和管理流程都会发生一些改变,所以需要在这个方面去思考,做出一些相应的调整。
CIO关心的几个性能如何实现?
应用往云端迁移,并不是一个简单的应用做P2V或者是V2V这样一个动作,而是需要应用充分地发挥云平台的特性和能力,使得应用能够提供更好服务的过程,我们针对前面所谈到的CIO所关心的几个问题,逐步来看一下它的具体实现:
可靠性
传统的系统里通常采用HA架构来实现系统故障时的切换,到了云平台以后,通常采用数据的多副本保护机机制来确保数据的可靠性,当服务器出现问题时,可以通过副本之间的切换来实现应用运行的连续性。像青云平台上就是通过建立数据的实时副本来确保客户业务能够在物理服务器出现问题时的连续性,另外就是通过应用层的多节点部署来提供可靠性。
传统的应用架构,已经做了这方面的尝试,比如说通过F5来实现应用的多路负荷,到了云平台,这个能力有更好的发挥,通过增加更多物理节点的部署,我们能够让应用在多个数据中心部署和同时服务以完成同一个业务目标,我们看到一些公有云的运营商都通过这样的机制来提升整个应用的可靠性。
组件化
在传统的应用架构里,系统通常都是烟囱式的,彼此之间没有共用应用组件,而在云平台上,通过相关的PaaS服务,能够共享这些PaaS 服务组件,如数据库、缓存,这样应用的搭建和应用的供应就变得更加的灵活,效率也会更高。
效率的提升
在云平台上面,我们得到了最大的好处是我们能够更快地处理请求和响应,比如说在青云平台上创建一个云主机只要10秒钟,创建十个云主机也只要一分半钟的时间,这个在一个传统的物理世界是不可想象的,准备相关的机器,安装操作系统,可能就需要半天或者是数天的时间。其次,则是通过弹性伸缩实现效率提升,所谓的弹性伸缩或者叫自动伸缩则是在云平台上,通过性能监控数据来动态调节资源配置,或者集群规模。
自动伸缩可以及时应对突增的业务压力,充分利用云计算弹性伸缩的特点,调节系统的处理能力,从而可以有效地降低系统的使用成本。 自动伸缩是云平台必须具备的五大特征之一,其他的一些特征包括自服务,软件定义,资源池和服务可计量。对于自动伸缩而言,当一个应用所受到的负载超出了当前的处理能力时,支撑业务系统的资源得到增加。在云平台上,常用的实现方式是水平扩展,这种扩展不是给物理机增加资源,而是通过增加处理节点来增加服务能力。
在负载上升时,增加节点,在负载下降时通过减少处理节点来节约资源,这种伸缩既可以以虚拟主机为单位,也可以以容器为单位。在青云平台上,我们很多的客户都通过这种自动伸缩的能力来确保应用在突发响应需求时能够有一致性的服务水平。
效率提升的第三点是存储架构改变带来的,传统的IT系统往往集中式的存储架构,管理配置相对复杂,向上的延展空间也有限。现在云平台通常采用分布式的存储,带来存储空间更大的扩展能力和灵活性。当资源不够时,只要增加存储节点就能够获取到相应的存储资源,对于整个应用系统而言,可以很快地去满足存储空间的扩展。
意识的改变
当企业把应用从传统架构往云平台进行迁移的时候,通常涉及到新旧平台之间的交互,一定会带来管理上和集成上的相应工作,这就是为什么这两年DevOps,就是从开发到运维一体化,越来越被企业所接受的一个原因。DevOps使得运维和开发人员越来越多地共同协作和发布服务,无论是传统服务还是新兴的微服务,可以让企业获得更加敏捷应用发布的能力,这在传统的应用架构里面很难去做到的,这是云平台带给应用的非常重要的一个机制。
成本
企业在选择云平台的时候,他会去评估公有云或者是自建一个私有云,哪个对他来讲成本是最低的,性价比是最高的,通常非常敏感的数据会被放到企业内部,那些受监管要求的应用系统会运行在私有云里。更多企业则会把他的应用放到公有云上,使企业跟他的上下游之间能够更好连接,从而在数据交换,应用集成上都可以有更高的质量保证。
当然企业也可以去构建一个混合云的环境,如可以把一部分跟互联网相关的应用放在公有云的环境里边,而把关键的、敏感的数据和应用放在企业的私有云里边,两个环境之间通过安全的隧道方式进行连接。从而既可以获得系统搭建的便利性,又确保了系统能够受到相关合规监管的要求。在最近的一年当中,混合云被越来越多的企业所接受。
企业应用往云端迁移的具体步骤
我们简单地做了一个总结,对一个企业而言,他的应用往云端的迁移流程通常会包括七个步骤:
第一步,他需要收集系统相关的信息,制定一个 总体的策略框架。
第二步,他会来做一个 对应用整体的评估,对应用的情况有一个摸底,了解每个应用使用到哪些物理的资源,应用对存储、网络要求是什么,对于安全的要求是什么,对于应用的性能要求是什么,从而确定迁移的批次和迁移的优先级。
第三步就会做 系统环境的评估,来了解具有有哪些存储,安全域的划分,物理的设备如何进行集成的工作,数据的灾备又如何实现的,整个环境跟应用的运行息息相关,需要评估在传统的环境和在云平台的环境之间的差异性,从而能够确保应用在新环境里下获得顺滑的运行过程。
到了第四个环节,就是要对单个确定要去进行迁移的应用进行一个 更详细的调研,需要了解到应用的业务模型,相关的应用架构、接口的情况,对于应用的性能和容量的规划,特别是对于数据库,因为很多人都知道说数据库对于IO,对于存储的性能要求会比较高,迁移到云端比较困难,所以我们需要对数据库做一个专门的迁移可行性评估。其它诸如各个系统版本组件之间的差异性也需要做一个相应的调研。
当这个应用调研完成以后,我们就需要 制定整个迁移的方案,在整个迁移方案里边,他可能需要了解应用相互的关联性,一个应用迁移到云端,它跟其它应用之间的相关性需要有一个连续性。整个迁移的风险也需要做一个相应的分析,制定相应应对的流程,特别是需要做一个应急的预案,甚至是回退预案,当出现问题的时候能够很快地加以解决,确保业务不会受到中断。
迁移方案设计完以后,就会做一些 模拟的演练。在模拟演练成功以后,就进行 正式的迁移。在正式迁移完成以后,一定会需要做一些相关的可用性的验证, 运行监控的实现,保证整个应用的运行是符合之前设计的标准。这样我们能说整个个应用往云端迁移是顺利完成的。
案例:一个金融企业的互联网化转型
我们来看一个相关的案例,这是一个金融企业的客户,他今天要往互联网金融方向做一些突破和尝试。他一开始并没有意识到一个传统的应用直接面向互联网使用时会遇到什么样的问题,所以他在一开始采用了传统的集中式的物理架构来布局相关的应用,在整个试运行初期,在一个小时之内,整个应用系统就因为访问量巨大而直接下线。
这时候对于这个企业而言,他就面临了一些选择,是直接增加服务器的配置规格,比如把服务器的CPU、内存进行加大,还是去新增一些服务器来直接扩充处理节点,或者直接采用一个云平台来重新构建整个应用系统,把应用系统从原来的集中式的物理架构,迁移到这样的一个云平台架构,其他的传统做法都需要较长的实现时间,而采用云平台对他来讲是一个最为可靠,而且是最为可行的一个做法。
那么在最初的架构,即传统的物理架构的时,整个系统存在大量的单点,网络也存在瓶颈,整个系统的扩容非常困难,他的前端的服务网络,各种的应用服务器有一百多个,而数据库用到了Oracle或者是MySQL,整个体系架构很难按照用户所按照的时间点来进行相应的扩展。
为此整个技术团队很快的做了一个决定,也就是说把应用从传统部署架构往云平台上分布式、弹性伸缩的部署架构进行迁移。比如说举个例子,它原来的处理都在一个48C、192G内存的物理服务器上,现在可以把它拆分到多个虚拟服务器上,使多个虚拟服务器同时承担整个应用的请求和相应的处理的工作,通过使用PaaS服务组件、网络功能虚拟化以及相应代码的改变,这一个工作在数天之内就得以实现。
客户通过使用云平台所提供的负载均衡集群和弹性伸缩的能力来提升应用的处理效率,通过把相关的功能按耦合度分拆到不同的模块,按数据的访问量和对模块内部的数据库进行相应的分库分表的处理,以功能应用模块为一个单位,每个模块都可以独立部署,并且来支持水平的扩展。通过这样的一个架构,使用到了云平台上的共用组件服务,相关的处理和请求都是能够进行一个分布式的处理。
如何让往云端的迁移更简单?
在这个应用的迁移和云化过程当中,网络是最复杂的一个部分。对传统企业而言,大家都有这样的一个概念,网络往往需要专业人员来配置。但是在云平台上面,由于应用需要快速地进行调整,所以必然需要有技术方法来灵活调整这些网络功能,以适应应用的变化。
这就是软件定义网络的好处,通过青云上的一个所见即所得的视图来定义虚拟网络,以容纳各种应用组件。青云从2013年就开始在公有云上提供软件定义网络的实现,到2016年我们已经开始提供2.0版本,其性能和处理能力都有很大的提升。通过这样的一个软件定义网络,在引入相关的负载均衡集群,绑定公网IP进行流量的分发,对不可用的服务进行相关的隔离的时候,都可以通过自定义策略,在管理界面上通过鼠标键点击就可以完成,而不再需要跑到物理的设备旁,通过Terminal进行设置。所有这些相关性都是联动的。整个的变更操作都是可以在秒级之内发生。应用被迁移到云端时,通过动态调整带宽和后段资源,耗时请求的分流,所有的策略都是可以在管理界面里面进行通过软件定义来实现的。
当然我们很关心云主机到底如何才能均衡到相关的物理节点。在传统系统里,所有的这种系统负载的调整都是手工的,人为的去做,你如果想增加都需要手工进行一个更改。那么在云平台里边,相关的应用节点对于负载的均衡都是依赖于底层的服务来自动执行的。
简单而言,你可以根据当前的服务器的性能来进行一个分配。实际情况下,这是不够的,因为当前性能并不能后续决定服务能力。青云在底层会有一整套的信任度的打分级制,通过在每个物理服务器上安装部署的机器人程序代码来收集相关的信息,通过一个二级的全体消息交互体系,来确保相关的管理信息能够快速的传递和同步。通过这样一种机制,当需要申请云主机时,云平台本身就能够进行一些调整的工作而不需要人为的介入。系统就能够获得一个更高的一个平均的利用率。在传统IT的环境里,服务器平均的资源开销可能只有20%,或者是30%,而在云平台里,正是由于这样的一种负载自动均衡的能力,整个系统的资源利用率可以达到60%、70%,从而确保了企业投资有一个更好的回报。
在企业的应用从传统架构往云端迁移的时候,刚才我们曾经说过,数据库是最为复杂和最为关键的,很多企业在进行这样一个迁移的时候,情愿继续保留他的数据库在物理的服务器上,当然这是一种相对稳妥的做法。在青云平台,我们通过引入PaaS组件中的数据库服务来为应用提供数据库服务和缓存服务,搭建数据库集群,如MySQL、 PostgreSQL。我们通过读写分离和自动的负载均衡来提升数据库的可用性,使得企业可以直接使用云端数据库去快速进行应用的开发和交付。在我刚才谈到的这个案例当中,一部分的核心数据还继续留在传统的Oracle数据库里面,其余数据库现在都已经迁移到青云平台上的MySQL的集群里边。
后续青云会提供应用商店,如同大家都熟知的AppStore一样,能够一键交付相关应用,无论是在公有云还是企业云,无论是单机的应用还是集群的应用都可以在云平台上去进行快速迁移、部署。青云会帮助企业在迁移应用的同时更好地利用到云平台所提供的这些特性,从而确保应用的服务质量。
钛坦白群友互动:
佳音:对于公有云、私有云、混合云的选择,有很多学问。目前就有很多人会担心公有云的安全问题。您怎么看?
沈鸥: 的确很多的企业客户不愿意把系统放到公有云,就是担心公有云上的安全问题,担心数据隐私会被破坏。在公有云上,青云打造的是一个立体的安全体系,首先是外部用户的访问,青云提供防火墙和防DDOS这样的网络层的安全保护。
在青云的平台上,客户的应用系统不是直接运行在一个二层网络上的,通常都是放在虚拟的私有网络里(VPC)。对于外部环境而言,它是无法直接访问到虚拟私有云中的主机的,通常通过绑定EIP或者端口映射来实现。所以曾经有人想试图通过扫描器来扫描以了解青云平台上面有多少主机,其实这是做不到的。青云的虚拟私有网络里,每个用户之间都在二层上进行隔离,也就是说相关的数据包只会在当前用户的网络里边进行流转,不会流到另外一个客户的VPC网络里,也就无法通过网络抓包的方式在网络层去获取到其他客户的相关信息,从而首先在网络层上面就进行这样的一个隔离。更进一步,用户的所有的操作行为,所有的访问行为都会有相应的日志,可以后续进行查询。青云也支持用户访问的二次认证来提升访问的安全性。这些诸多方面结合在一起,就能够使客户的数据更加安全,如果客户要在云端存放一些数据,比如说很大批量的数据在云端,就可以放在青云的对象存储里面,对其上的数据提供安全加密的实现。
安全是一个很大的话题,今天只是描述其中的一部分,我们也会跟一些合作伙伴在这个领域进行合作,毕竟还有很多专业的安全领域需要依赖于专业厂商的产品来进行保护的,我们的公有云上的应用商店会提供这些合作伙伴的安全防护能力,我们的客户就可以根据他自身的要求来进行相应的选择。
(本文首发钛媒体,根据青云QingCloud解决方案与架构总监沈鸥在钛坦白上的分享整理)
………………
钛坦白第26期八个小时的分享已经全部结束,干货会陆续发布在钛媒体上:http://www.tmtpost.com/tag/1508094
报名入群听课:在微信公号“钛媒体”(taimeiti),发送“钛坦白”
与钛坦白合作,推荐钛客:请与钛坦白负责人佳音联系,邮箱jiayinge@tmtpost.com返回搜狐,查看更多
责任编辑: