程序员硬核测评:客观、高效、不说软话。无论是技术质量、性能水平,还是工具筛选,一测便知!
过去几年来,“微服务架构”方兴未艾,尽管这种架构风格没有确切的定义,但我们已经看到许多项目凭借此架构取得了积极的进展,因此对于许多开发者来说,微服务正成为构建企业应用程序的默认风格。可悲的是,没有太多的信息概述微服务的风格以及如何去做。而实际上,拥有一个合适的微服务开发平台将会非常有助于实现微服务架构,基于此,CSDN云计算特别策划了微服务平台盘点系列文章,欲以CSDN中立技术社区专业、客观的角度,探讨如何为开发者选择合适的微服务开发平台,以帮助其企业实现微服务架构。为此,我们采访了数家提供微服务平台的云服务厂商,这次,我们来聊聊京东云JDSF。
京解之才
——2019微服务盘点之JDSF
微服务的“硬币两面”
目前,大型互联网公司都存在比较成熟的微服务平台,所有服务都是按微服务的方式在运行。这些公司线上已经运行了大量的线上微服务,它们关注的焦点也由如何使用微服务开发模式向着超大规模系统的流量压力和可用性如何保证,如何做观测,如何做测试等方面转移。同时,很多公司开始尝试将服务网格以及无服务器架构引入自身系统,分别解决多架构复杂需求的灵活支持问题,以及资源完全按需伸缩的弹性问题。
但另外一方面,很多传统企业还处在考虑服务该怎么拆分,自己现有的RPC框架如何升级为更强大的微服务架构等方面的问题。虽然基于Kubernetes的服务架构存在很多优点,但原有业务需要一定的改动以更符合云原生的架构,才能更平稳的迁移到新的微服务架构,而这样的改动,其实对这些公司是一个挑战。同时,在微服务开发方面,如何能让业务开发人员能够更容易的理解服务治理的逻辑,让微服务的开发和运维更加简单,也让这些传统企业开发团队伤透了脑筋。
而解决这一问题的捷径,无疑是选择一款适合自身的微服务平台莫属。微服务平台能够让微服务之间的关系更加可控制、数据更易可观测、性能更加可优化,从而帮助企业开发者迅速搭上微服务开发的快车。不过,选择适合自己的微服务平台,对于这些企业来说,实际上也是一个挑战,如果仓促选择了不适合自己业务的微服务平台,将可能会导致服务之间调用关系混乱,调用安全不可控,配置变更不可控,出现的问题无法定位、无法追溯等问题,效果反而会事倍功半。
那么,应该如何选择一个适合企业自身需求的微服务平台呢?
如何选择微服务平台
京东云专家架构师王碧波表示,从微服务的基本概念着眼,微服务提倡一个服务系统中不要被迫容纳太多功能,最好是比较独立的一组,将开发、部署、扩展等定义为一个单元来进行操作,整体来看很简单。但实际上远不是想象的那样,在服务运行的过程中会产生很依赖,此外调用关系需要十分细致的梳理,关于服务状态以及生命周期管理也会一并变得极为复杂。
而一个好的微服务架构,总结来看,主要应该包括四个方面能力:
整个生命周期的过程管理;
微服务场景下功能实现的辅助;
功能之间相互调用的能力;
在整个微服务系统中做运行观测的能力。
比方说为了系统的考虑,大家都希望有些设计可以服务本地,在本地部署缓存;但是当数据发生变更的时候,本地缓存的机制更新如何被设计就是个问题,也是经常容易出现bug的地方,这种事情就是微服务框架应该着重思考的。
简单来说,微服务平台首先需要绝对稳定和高可用,其次功能要完备,再次使用要够方便用户部署、管理,同时要尽量开放。
而京东云分布式服务框架(JDCloud Distributed Service Framework,简称JDSF)在满足上述标准的基础上,同时又拥抱开源,符合用户开发、测试及部署的操作习惯,最大程度的减少用户各个阶段的研发和运维成本。
京东云JDSF微服务平台
京东云JDSF是一种托管的服务治理框架,可围绕微服务的整个生命周期,提供服务部署、注册、发现、调用、监控等全方位功能。它完全适配Spring Cloud框架,可使用原生的Spring Cloud包,可连接JDSF的注册中心、配置中心和调用链分析服务。依托京东云同城多机房网络高速互联的基础设施,JDSF产品所有组件都具备跨机房的高可用性,使用者无需再担心雷击、挖断光缆等各种异常导致的服务中断。
京东云JDSF,具有以下特点:
1、全托管模式,属于高可用产品。京东云分布式服务框架依托京东多可用区部署,服务跨可用区分布式部署。用户开通服务后,无需任何运维操作,即可享受跨机房的高可用性。
2、可调用,可观察。微服务调用图谱通过提供丰富的调用堆栈分析,使我们既能从宏观上观察业务关系及调用链整体特质,又能从微观上审视调用链上各环节的细节,结合多种分析手段,帮助用户全面掌握服务的调用情况。
3、属于一站式方案。服务框架与弹性部署、日志分析等系统深度集成,用户可以更加容易地处理服务整个生命周期中的各种运维需求。另外,京东云对所有服务都做了性能和稳定性的极致优化,同时还支持随时发起动态扩容,解决随着服务数量或请求量增加导致服务性能下降的问题。
该框架主要应用与两个场景:一个是构建微服务系统;另外一个是调用关系管理。采用分布式服务框架,企业可以很容易地将自身业务迁移到微服务框架上。服务框架提供的功能,使用户不用再关注服务框架实现和运维,可完全专注在业务的设计和拆分上。而对于大型分布式系统而言,梳理调用关系以及管理调用权限往往是非常复杂的。分布式服务框架内置的调用链分析功能和服务鉴权机制,可以有效的帮助用户管理服务调用过程。
王碧波介绍说,京东云的微服务框架的推出首先是为了解决自身问题,让语言和架构都存在很大差异的成千上万个服务都能够稳定的协同工作。云服务需要最高的稳定性,所以JDSF微服务框架也是稳定性第一,而且能够保证始终高可用,数据不遗漏不丢失,不会被非法访问,并且在异常情况下都有相应解决问题的运维工具和预案。
京东云的微服务平台是在支撑京东集团内部多年大流量线上服务的过程中积累起来的,经过了大型生产系统的长时间验证。京东云在基础资源性能,服务跨机房多活,故障自动恢复等方面都做了很多优化。京东云微服务框架的目标是在整个开发流程中为用户提供各种工具集,最大可能的减少用户的开发和维护及实施成本,使用户只需关注代码实现的正确和业务的方向上,其他的各种保障和维护交给平台来处理即可。
京东微服务的技术路线
在谈到京东在微服务方面的未来发展时,王碧波表示,京东云内部去年已经在生产系统上线了号称“下一代微服务”的Istio服务网格,经过半年的运行,已经积累了大量的优化和运维经验。京东云将于今年下半年上线针对云用户的服务网格产品,用内部沉淀下来的能力帮助云用户更好的进行服务治理。另外,京东云非常看好无服务器架构的未来,相信以后会有大量的线上服务会以无服务器的方式运行,京东云也会持续在无服务器技术方面加大投入。
技术点评
作为京东云推出的一个分布式服务框架,JDSF首先做到了开源开放,它兼容标准的主流微服务框架,不绑定用户。服务框架目前支持SpringCloud,Dubbo等应用类型,同时兼容Go、dotNet、Python等语言的各种开发框架。其次,JDSF采用组件化的模式,所有功能都可以按需启用,不会导致“全家桶”捆绑。第三,JDSF平台具有高可靠,跨可用区的高可用,对各种异常情况都有较强的适应能力。第四,JDSF具有很高的性能,可以轻松应对超大规模集群的服务治理需求。
因此,从各个方面来说,京东云JDSF都具有了成为一个优秀微服务平台的能力和潜力,再加上京东云在应用实践中的不断打磨和持续优化,实可称之为微服务平台的“京解之才”。
福利
扫描添加小编微信,备注“姓名+公司职位”,加入【云计算学习交流群】,和志同道合的朋友们共同打卡学习!
推荐阅读: