微服务架构与实践
摘要:微服务出现的时间不短了,但是为什么现在才这么重视它?互联网转型要转型什么?微服务出现的时间不短了,但是为什么现在才这么重视它?互联网转型要转型什么?第一,以职能为中心转向以用户为中心。我们过去的信息化更多的是依照部门职能,有什么样的工作内容,有什么样的流程,然后去做系统。下一步的信息化更多的是以用户为中心。为什么是以用户为中心?我们要看用户到底需要什么,在什么样的场景下需
微服务出现的时间不短了,但是为什么现在才这么重视它?互联网转型要转型什么?
第一,以职能为中心转向以用户为中心。我们过去的信息化更多的是依照部门职能,有什么样的工作内容,有什么样的流程,然后去做系统。下一步的信息化更多的是以用户为中心。为什么是以用户为中心?我们要看用户到底需要什么,在什么样的场景下需要什么样的信息支持。过去我们只在内部做很多系统,其实用户体验也非常的不好,用户需要的东西也没有。
第二,从流程驱动转向数据驱动。过去都是看业务流程是什么样的,流程中间需要什么样的数据来支持。随着移动互联网、物联网这些数据的产生,根据数据的分析判断或者驱动新的流程,所以新的应用场景是由数据来驱动的。
第三,从事后录单转向现场数据自动采集。过去的信息化都是靠人工输入,发生的业务就输入一些信息进去。今后由于移动互联网和物联网实时数据的采集,我们做好实时的在现场的采集,反而不需要人工做采集、手工录入。
第四,从封闭系统转向开放系统。过去的系统都是封闭式的,开发它的时候没有考虑到开放、没有考虑到互联或者被谁调用。今后的系统开发出来,应该是微服务的方式,它是暴露API,某个系统不需要知道被谁调用、被调用多少次,该系统在开发时就做到是一个开放的系统,暴露API。
第五,从单机架构转向分布式架构。总体来讲,过去的信息化都是基于单机的架构,俗称叫IOE架构,在单机上做的整个基础设施,包括上面的应用、数据库都是基于IOE结构写的,下一步要转向分布式。分布式是从基础设施一直到应用都要做到分布式。为什么要转向分布式?是因为要做到弹性可扩展,满足大量的并发、交互和大的用户量和数据量。
第六,从中心化治理转向去中心化自治。过去的信息化走到今天,到SOA这样一个阶段大家知道仍是中心化治理的阶段,依靠总线来做交互、路由;下一步在微服务的模式下是事件的驱动,服务之间他们如何去被调用、如何去走流程是通过事件驱动的,而不是中心化的思路做治理,更多的是去中心化的自治。
举例:美国GE说,GE未来是一个软件企业,为什么?因为所有一切是被软件所定义,背后是云平台、大数据平台的支撑。GE打造的工业互联网平台:前端通过连接所有的设备、资产,端到端所有跨业务流程的,包括合作伙伴、客户所有这些东西都通过云平台的连接,设备产生的数据、产品的数据都基于云方式存储。在云上,有了数据,数据驱动各种创新的应用,通过融合分析可以得出很多的洞察,包括设备的可预测性维护等等。这个工业互联网平台底层就是PaaS和IaaS,上面就是微服务的架构。整个应用架构是朝微服务的方式转型,不管是对资产的,就是设备、装备还有各种分析的服务、数据存储服务、安全服务、运营服务都是基于这样一个平台在打造下一代微服务的架构、微服务的应用。数据架构方面从融合的大数据架构转型。通过物联感知,各种各样的数据在产生,这些数据通过数据的管道结构化,这些结构化的数据怎么存储、非结构的数据怎么存储,对于需要实时处理的数据怎么存储计算,对于一些不需要实时处理的数据怎么存储,这里面会进入到一个融合的大数据的架构基础上去做数据的存储和计算。有了数据的基础上我们再做一些分析和利用,支持或是引导业务变革和创新。
从以上互联网转型我们就可以看到为什么需要微服务的架构:
第一,快速的创新。在互联网时代我们需要快速的创新。不像过去,我们做一个系统花了很长时间,半年甚至一年实施出来,为时晚矣。信息时代,我们需要快速的响应和交付。
第二,随时随地的服务需要随时的连接。
第三,网络的规模。也就是说我们的服务,我们可能随时要被大量的人访问、数据随时大量的产生,这样一种大量数据的产生、大量用户访问的规模也需要有一种新的弹性架构支撑它。
第四,以移动为中心的用户体验。所有这些导致我们要基于微服务架构构建一种原生的云应用。所谓原生的云应用,就是在互联网的基础平台上基于微服务架构开发的应用,它是弹性可扩展的,可以支持大并发大交互。
总之,未来业务的敏捷一定要依赖于IT的敏捷,我们一直追求敏捷的IT:一个弹性可扩展的云计算与大数据基础平台(IaaS + PaaS),加上基于微服务架构的原生云应用(SaaS)开发,这已成为企业级IT的必然选择!
好雨云的微服务架构实践
微服务从去年以来一直受到众多开发者的热捧,目前国外使用微服务架构的知名厂商中不乏Amazon、Twitter、Netflix等这样的科技巨头,但是国内在微服务领域实践这块,真正成功的案例屈指可数,好雨云平台强调应用一键部署,整个平台的核心正是基于微服务的架构去搭建,可以说,好雨云在微服务领域有着成功的经验和技术。 那么好雨云究竟是一个怎样的平台呢,据该平台创始人刘凡介绍,好雨云平台是提供一站式,开发、部署、运行和伸缩任何类型应用的云平台,强调应用的一键部署,同时,好雨云平台还提供数据服务、开发工具和企业信息服务,为产品和企业发展提供全方位支持。 目前和好雨云平台类似的国外有Heroku和IBM BlueMix。 对于有着超过12年互联网产品开发和管理经验刘凡来说,选择PaaS领域创业并非偶然,在澳客网的时候,他发现企业在产品开发的过程中,浪费了大量的时间在申请服务器、安装各种依赖服务、配置开发环境、写构建脚本等上面,当时就思考如果能把每个团队重复做的事情和有难度的技术问题,做成一个可重用的轮子,产品团队只要专注于产品本身,那产品的开发效率将大大提升,试错成本也将更低,于是,他和几位有类似想法的小伙伴离开了澳客网,创办了好雨云。 本文来自于对好雨云创始人刘凡的专访,他给我们详细介绍了微服务在好雨云的实践。 微服务架构成功的因素 微服务的众多优势让其成为当前受到众多厂商和开发者的热捧, 据刘凡介绍,好雨云平台在打造之初并没有为了实施微服务而实施微服务,其实,微服务本质上是好雨云平台的一个非常核心的功能,简而言之,用户只要在他们平台上部署服务,它本身就是个微服务,实际上好雨云整个平台的核心就是基于微服务的架构去搭建的,所以用户不管部署的是程序还是部署传统服务,或者一个其他的第三方应用程序,在这中间都可以按照微服务的方式进行。 另外,刘凡表示当前对于微服务来说,最大的一个挑战就是当服务特别多的时候,对于大量服务的管理仍然是一个不小的挑战,而好雨云从整个服务的部署、伸缩、高可用、容错、监控以及服务之间一个依赖关系都给出了自己的解决方案。 值得一提的是,目前国外很多的互联网巨头包括Google、Netflix、Facebook、Twiter等在微服务实施领域都取得了成功,给国内想要进行微服务实施的企业提供了有益的借鉴。在刘凡看来,微服务要实施成功关键在于以下几个方面: 第一,这些巨头根据自己的业务特性,研发适合自己的微服务框架。 第二,在经过长期的实践,对业务重新建模,合理的将业务拆解成微服务。 第三,当微服务的数量增多,为保证服务可用性,需要有可靠的容错机制。 第四,依赖公有云或自建云服务,满足互联网模式下的快速业务伸缩。 微服务的本质是管理 谈及国内的微服务情况,刘凡认为当前国内的微服务实践大多数都还是个概念,实际上很多企业的业务还是一体化架构,在从一体化架构向微服务转变过程中,国内企业首先需要做的事情就是对业务进行拆解,合理的模块化业务;其次,需要优化整个服务管理。针对上述两个问题,他指出,对于希望实施微服务架构的企业来说,首先还是要从梳理自己的业务架构开始,逐步的把一体化架构拆解成微服务化架构;不能为了实施微服务架构而实施微服务架构,需要清晰的认识SOA架构跟微服务架构的差异,真正的有效的去实施微服务架构;最后,要擅于利用工具为实施微服务提供支持,如果可以有效的利用工具,对于提升整个公司微服务的实施效率有很大帮助。 虽然微服务具备很多的优势,但是由于微服务本身的特性,实施起来的的难度非常大,那么对于国内企业来说真正愿意实施微服务的意愿有多大,刘凡表示,在当前企业架构里面,服务的部署、伸缩、高可用、容错、监控等,本质上,是对现有服务的管理。如果不谈微服务架构,如果只是有微服务架构管理工具支持,照样能极大提升运维和开发效率,这属于低层次的价值;而对于高层次来说,微服务架构能解决CTO的管理问题,合理的微服务抽象和拆分对应合理的组织结构划分, 每个服务就变成一个独立的小产品,运营这个产品就是组织主要目标,产品的价值决定组织的价值,产品用户的多少决定组织价值的高低,这种市场化的管理方法是最简单有效的管理方法。 另外,微服务架构能帮助技术团队快速开发和迭代产品,对创造一个成功产品有很大帮助。 微服务在好雨云的解决方案
好雨云平台的底层是通过Docker实现的,只是用户感受不到Docker。通过这种内部封装,用户不用管理计算资源和网络资源,把复杂技术包装在内部。通过服务整体对外。
只要提供代码就能一键部署在各种环境。 开发语言支持Java、Python、PHP、Ruby、Golang,Node.JS等,代码仓库支持Github,好雨托管仓库。
垂直伸缩只需要设置资源的大小,水平伸缩只需要设置节点的个数。
通过高可用调度器,所有服务都具备了高可用特性。
类似Spring的依赖注入,要调整服务的依赖关系只需要界面点击久能轻松完成。
类似保险丝,当服务B变慢,达到断路器的阀值,服务B将自动下线,不至于影响其他服务,当延迟变小,服务逐步恢复。
业务指标:平均响应时间,吞吐率 ,在线人数。在实际场景中,使用业务监控可以替代技术监控,而且更加简单容易理解。 Docker的出现将简化微服务的管理 对于当前Docker的火热,刘凡表示,Docker的出现第一让部署更加快捷,第二,统一打包方式之后,对于整个微服务的管理更加简化。 |
开发人眼中的微服务架构云端应用
更多推荐
所有评论(0)