【CSDN现场报道】5月13日-15日,由全球最大中文IT社区CSDN主办的“2016中国云计算技术大会”(Cloud Computing Technology Conference 2016,简称CCTC 2016)在北京新云南皇冠假日酒店隆重举行。本次大会以“技术与应用、趋势与实践”为主题,聚焦最纯粹的技术干货分享,和最接地气的深度行业案例实践,汇聚国内外顶尖技术专家,共论最新的云计算技术实践与发展趋势。
普元信息技术股份有限公司CTO焦烈焱进行了题为《面向微服务的企业云计算架构转型》 的演讲。他主要介绍了企业内服务向互联网服务转变过程、基于微服务的企业云计算架构和实施微服务架构过程中遭遇的挑战三方面内容。他认为企业应该突破狭义互联网的限制,大胆地在企业云计算架构中启用微服务,从从 IT 精益运营入手逐步实施,实现架构、治理、协作效率的提升,成本的降低。
以下为演讲实录:
尊敬的各位来宾,大家下午好!非常高兴在这里和大家分享微服务架构里在企业里的运用,上午圆桌的时候我们已经讨论过这样的话题,今天我跟大家主要分享的内容是在企业转型,尤其传统企业向互联网、云计算服务转型过程中,我们的一些经验、体会和思考。在这里,这些思考主要包括两方面:第一,在这些企业里为什么要实现云计算、微服务的架构,云计算和微服务大家有什么样的关系?第二,在实现这样架构的时,使用的技术,遇到的技术难题以及解决的方法。
在整个传统企业进行云计算转型的过程中,我们发现未来的企业是一个数字化的企业,未来的时代是数字化的时代。以前我们感觉并不这么强烈,尤其现在有了移动互联网,有手机之后,很多大型企业客户,以前我们所说由互联网企业做的事情,现在也需要自己做。
对这些年所做的工作进行了总结,我们认为企业在互联网转型的过程中,最重要的是要和以前不一样,就是把IT服务对象从以前的向内部服务变成向外部服务、向客户服务。这个做法就要求我们企业IT是双模模式,传统刚性相对要求比较强的业务还是用传统的架构来实现;面向互联网业务应用时,用微服务、云计算的方式进行实现。
为什么要做成这样?这不是技术驱动的事情,是业务发展驱动的事情。我们遇到很多的客户,在面向互联网业务的时候,会发现以前自己是业务专家,但是到做电子商务时,业务部门不是专家了,非常需要IT部门的技术支撑。当然它的竞争对手也不再是传统的银行竞争对手,在整个效率提升过程中,有几方面问题是迫切需要解决的。
以前我们企业自己是非常清楚部门内到底应该有多少台机器、服务器、存储设备。现在不一样了,有的客户发现业务做了三个月之后,业务量爆增十倍以上,他不知道自己的业务必然会产生爆发,还是以为是投放广告的结果。以前需求很稳定,现在需要正在快速变化;以前银行里边,自己研发流程非常严格,上线部署两个月的时间,现在不可以两个月了,只给你一个星期的时间;以前功能很完备,现在业务很新兴,不知道业务什么样;以前集中管控让你做什么你做什么,现在满汉全席,把菜都上来,哪个拿掉,哪个多做一点?这是微服务上的转变。微服务其实有很多种形式,今天上午也讲到,微服务其实并不等于Docker,Docker解决了很多基础的服务,在有流程和交易的微服务,整个处理过程中有一定的变化和要求,这就需要我们自建支撑微服务的结构了。
但是实现在实现结构的过程中,我们遇到非常多的问题,这里总结分享一下。第一个问题,我们现在发现信息系统有着大量的技术,不适合微服务的结构,比如文档不全,接口不清晰;第二个问题,大量的隐性技术成本,提出一个业务你为什么不能三天做完,我们写代码改一个东西并不难,主要是里面很多隐性成本。举个例子,上线的成本,为了保证合理的运维上线,银行里大概两个月的时间无非写很多的操作手册一步一步操作,一个一个检查,一个一个验证这都是隐性的成本,导致我们业务上线效率很低;第三个问题,知识传递的失真,为什么?以前我的做法很重要的是,都是业务部门他要做什么我就做什么。现在不一样了,现在连他说不清这个东西一定是什么样的,你信息失真就会更突出,这个地方我们需要用一些小团队的组织解决这样的问题。
下面从精益运营进行讲解。精益运营这个词非常清楚,实际云计算最重要是对效率的提升,就是你把整个效率提升起来。如果做私有云,你要考虑的是企业内部IT效率的提升;如果做公有云,实际上是一个社会效率的提升。云不是简单的成本降低,而是是效率的提升,效益的提升。但如何提升效益呢?精益运营是非常好的入手方式。
首先在架构方面,我们以前使用的OpenStack,最早2009年开始做Openstack,在几千台的水平的时候,我们发现Openstack的扩展性、弹性并非想象中的那么好,并不是Openstack做不到这点,是做到这点非常麻烦,纵横伸缩可以做到,横向伸缩可以做到,但伸缩时间、恢复时间都是比较长的工作。为了解决这一问题,当时我们做的是起了很多的空的虚拟机放那里。也做了很多无状态的工作。
现在我们用Kubernetes做一个伸缩的模式,可以自动伸缩也可以手工伸缩。我们用Kubernetes的过程里边我们有一个很重要的体会,为什么选这样的东西?还有我们做云的时候,以前做很多都是Cloud的方式来做,当年我们认为它们的架构也不错,扩展性非常灵活,但是现在为什么要用新Kubernetes结构?它们最大的区别就是OpenStack和Cloud都是从管理出发看这件事情的,不是从可用性架构出发看这个事情。
第二,我们用微服务DevOps提升协作的效率,不是微服务也要做DevOps。我们做Devaps过程中,从部署和应用基础设施里边做一个分离,所以我们把应用的代码、配制信息、环境信息、安装介质等等这些资源集合起来之后再分布部署上,最后把运维做一个分离。技术分离我们是一个概念模型,基于概念模型我们把很多领域工具链做了整合,实现协作效率最大的提升。
我们通过4A的方式,把所有工具认证、帐号开通、授权服务打通,集成 DevOps 领域工具链;另一个方式是基于 Kebernetes 实现微服务新版本发布、金丝雀测试、预发和滚动更新。Kubernetes有一个很好的标签特性,发布的时候可以在正式的系统集群里打一个标签。
通过协作效率的提升你会发现我们现在的IT,即使不基于微服务的架构,整个IT管理也是非常复杂的,这是因为整个IT资产是非常多的。比如我看到一个大型的银行,对外接口十几万的数目,这么多的资源怎么管起来?这是我讲第三方面,怎么提高软件治理效率,尤其提升微服务之后,软件治理更高效了。元数据把概念和连接放在一起做管理,我们自己用元数据的模块把所有微服务和资源建立联系。一个微服务跟另一个微服务有关系;这个微服务跟数据标准有关系;再跟交易数据库表有关系;之后和汇总数表有关系,形成了一系列的关系和概念的连接,有了这个东西,你可以把企业所有涉及到的东西都关联起来。通过元数据,表述服务/资源之间关系,明确版本变化对其他服务的影响。
我们最近会把新的研发的云计算第一个版本放在阿里云上。公有云有这样的问题,公有云的安全最外边防火墙挡住,如果进到墙里边很难有安全的模式来做了,所以大家很多做自身安全模式,我可以让这个系统在这里跑一下,知晓系统之间调度关系,一个应用漂到另外一个地方可以改一下防火墙,用这样的模式就可以做到端口开放,做到防火墙的策略,所以在这里,原数据让我们整个微服务框架治理效率大大提升。
今天时间也比较有限,我总结一下:在关键的技术上做了这样的工作,最开始我们做了一些OpenStack投入这样基础架构的方面的工作。现在做的事情是把OpenStack和Kubernetes结合起来,用Kubernetes把OpenStack做厚,OpenStack利用自己的功能做薄,做到虚拟机管理的水平;另外我们Clound发现的服务机制是基于Kubernetes Master来做,通过原数据的方式把它表现出来,通过原数据增加整个治理协作能力;第三,我们通过DevOps打通整个工具链,提高协作效率。
这是我们在实际做云计算的时候,自己的想法和所做的工作,这个工作很难讲一定是在某一个层面来做的。
更多精彩内容,请关注直播专题2016中国云计算技术大会(CCTC),新浪微博@CSDN云计算,订阅CSDN云计算官方微信公众号。