好文档 - 专业文书写作范文服务资料分享网站

微服务及微服务平台的概念 - 图文

天下 分享 时间: 加入收藏 我要投稿 点赞

目前,微服务架构正在改变我们对传统软件架构的认知和构建方式。当讨论软件架构时,微服务无疑是最热门的趋势之一。世界上诸多知名公司,比如Amazon、Netflix、eBay、Uber等都已经意识到使用微服务带来的优势,而且越来越多的企业和开发人员开始考虑使用或已经在使用微服务。

那么,什么是微服务?

Martin Fowler大师在《Microservices Guide》中谈到:微服务架构是一种将单个应用程序开发为一组小型服务的方法。其中每个服务在自己的进程中运行,服务之间采用轻量级机制(通常是HTTP协议的API)进行通信。这些服务围绕业务功能进行构建,可以通过完全自动化的部署机制独立部署,可以使用不同的编程语言编写,可以使用不同的数据存储技术,但只需要做最低限度的集中管理。

在相当长的时间内,微服务架构已与庞大的企业解决方案相关联,同时,使用异构语言实现微服务也成为大势所趋。2020年微服务状态调查结果显示65%将JavaScript / TypeScript命名为其体系结构的主要技术之一,26%选择JS / TS作为其微服务的唯一编程语言。下图列出了不同语言在微服务架构实践上的使用占比:

众所周知,单体应用架构的种种不满催生了微服务架构的发展,以构建一组小型服务的方式来构建业务复杂的庞大应用系统。如此,这些服务除了能被独立部署和扩展之外,每个服务还能提供一个明确的边界,甚至可以根据需要由不同团队使用不同语言实现。然而,在使用微服务的过程中,我们同样面临诸多问题,比如:微服务如何设计拆分?微服务如何进

行技术选型?微服务如何进行有效的管理和治理?

现如今,市场上Java语言的微服务框架翘楚无非是Spring Cloud和Dubbo。Spring Cloud是 Pivotal 公司 2014 年对外开源的框架,基于Spring Boot实现。Spring Cloud最主要的设计核心就是基于组件开发的模式,提供了一系列的便捷的开发组件,可以帮助开发人员迅速开发分布式系统。

Dubbo 是国内最早开源的RPC框架,由阿里巴巴公司开发并于2011年末对外开源。 Dubbo 的架构主要包含四个角色,其中 Consumer 是服务消费者,Provider 是服务提供者,Registry 是注册中心,Monitor 是监控系统。具体的交互流程是 Consumer 一端通过注册中心获取到 Provider 节点后,通过 Dubbo 的客户端 SDK 与 Provider 建立连接,并发起调用。Provider 一端通过 Dubbo 的服务端 SDK 接收到 Consumer 的请求,处理后再把结果返回给 Consumer。

微服务使用过程中另一个困扰许久的问题就是异构语言和老系统改造成本高昂。经过不断的演变发展,最终出现Service Mesh来解决此类问题。根据Linkerd CEO William Morgan定义,Service Mesh是用于处理服务间通信的基础设施层,用于在云原生应用复杂的服务拓扑中实现可靠的请求传递。在实践中,Service Mesh通常是一组与应用一起部署,但对应用透明的轻量级网络代理。Service Mesh主要由处理网格内服务间的通信,并完成服务发现、负载均衡、流量管理、健康检查等功能的Data Plane和管理和配置Sidecar来执行策略并收集遥测(telemetry),独立组件来集中配置这种依赖调用关系以及进行路由流量调拨等操作的Control Plane组成。

不同语言及技术框架的选择为我们解决了技术选型的问题,然而当我们如火如荼的将原

有系统拆成越来越多的像细胞一样的微服务时,却发现要对数量如此之多的服务进行管理,并非易事。试想一下,如果你的系统由100个微服务构成,要对这100个微服务进行管理,这绝对是一个不小的挑战。鉴于此,我们一直在探索是否能提供一个具有微服务架构基础能力的PaaS平台,将企业的核心业务研发能力从基础服务建设中解耦出来。

安畅网络是中国市场专业的云托管服务商(Cloud MSP),在数据中心和云计算领域有近十年的专业交付和管理经验,目前正服务于2000多家企业级客户并与全球多家超大规模公有云服务商建立了战略合作关系。我们经过数年的探索,利用在云计算领域的丰富经验,成功实现了一套兼容各业务场景,具有集成Spring Cloud、Dubbo、Service Mesh等常见微服务解决方案能力的PaaS平台,其提供一站式应用全生命周期管理能力和数据化运营支持,提供多维度应用和服务的监控数据,助力服务性能优化。

如下图所示,我们在提供服务注册发现、服务限流、服务路由、服务鉴权、服务熔断等一系列服务治理能力的同时,为企业业务应用也提供全生命周期的管理,包括容器部署、虚拟机部署等用户自定义IaaS层资源的能力;除此之外,在服务框架层面我们既兼容了Spring Cloud和Dubbo两种常见的微服务框架,也兼容Istio的Service Mesh能力,用户只需要在开发时引入相应的SDK或者Jar包,即可开发自己的业务应用。

那么,我们的微服务平台具有哪些优势呢?

首先,它能帮助企业构建大型分布式服务系统。单体应用转变为分布式系统后,实现系统间的可靠调用是关键问题之一,涉及到路由管理、序列化协议等技术细节。云端微服务平台提供了 RESTful 调用方式和自研的高性能 RPC 框架,能够构建高可用、高性能的分布式系统。平台系统地考虑了分布式服务发现、路由管理、安全、负载均衡等细节问题。同时,打通了消息队列、API Gateway 等服务,满足用户多样化的需求。

其次,平台提供可视化的服务发布和管理能力。相对于传统的应用发布需要运维人员登录到每一台服务器进行发布和部署,该平台针对分布式系统的应用发布和管理,提供了简单易用的可视化控制台。用户通过控制台可以发布应用,包括创建、部署、启动应用,也支持查看应用的部署状态。除此之外,用户可以通过控制台管理应用,包括回滚应用、扩容、缩容和删除应用。

针对运维能力的补充,平台提供了可视化的数据化运营能力。通过对日志埋点的收集和分析,可以得到一次请求在各个服务间的调用链关系,有助于梳理应用的请求入口与服务的调用来源、依赖关系。当遇到请求耗时较长的情况,可以通过调用链分析调用瓶颈,快速定位异常。下图表示平台提供的服务依赖拓扑图,可以直观地了解服务与服务之间,服务与下游组件之间的调用关系。

除此之外,平台也提供基础的服务治理能力。支持服务级别和 API 级别的服务治理能力,包括服务路由、服务限流、服务鉴权功能。服务路由功能支持将请求按权重路由到不同版本的服务上,实现灰度发布等高级功能。

PaaS平台的目标之一是将企业的业务能力从复杂的基础平台能力中剥离,正如下图所示,我们的平台围绕企业业务,提供了一整套的基础服务能力,真正做到将企业重心转移到业务上的目标,从而使得企业在更加高效的完成数字化转型的同时,利用平台优势探索新业务,挖掘新市场,为企业未来的发展打下良好的基础。

微服务及微服务平台的概念 - 图文

目前,微服务架构正在改变我们对传统软件架构的认知和构建方式。当讨论软件架构时,微服务无疑是最热门的趋势之一。世界上诸多知名公司,比如Amazon、Netflix、eBay、Uber等都已经意识到使用微服务带来的优势,而且越来越多的企业和开发人员开始考虑使用或已经在使用微服务。那么,什么是微服务?MartinFowler大师在《MicroservicesGu
推荐度:
点击下载文档文档为doc格式
3wmcp80zpx797950lpza3sk4u09qt500fia
领取福利

微信扫码领取福利

微信扫码分享