全托管:MSE+SAE 微服务应用全托管解决方案

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
注册配置 MSE Nacos/ZooKeeper,118元/月
云原生网关 MSE Higress,422元/月
简介: 进入新世纪互联网时代后,以腾讯和阿里为代表的社交电商巨头开始面临流量和复杂度大增的挑战。此时的研发团队相较于之前已经明显扩大,并开始实践 SOA /微服务架构,比如阿里的 HSF。


全托管:MSE+SAE 微服务应用全托管解决方案


——毕衫

阿里云 SAE 研发负责人


一、微服务架构的优点和痛点

image.png

微服务架构的诞生背景经历了几个阶段:


互联网早期主要是门户时代,大部分应用都是单体应用,主要的挑战在于单纯的技术挑战,研发团队相对较小。


进入新世纪互联网时代后,以腾讯和阿里为代表的社交电商巨头开始面临流量和复杂度大增的挑战。此时的研发团队相较于之前已经明显扩大,并开始实践 SOA /微服务架构,比如阿里的 HSF。


进入移动互联网时代后,人们的生活全面互联网化,不仅是巨头企业,越来越多的互联网公司也开始面对流量和复杂度爆发,而且研发团队进一步扩大。此时除了研发效率的要求,微服务架构也成为了比较普适性的需求,许多新的词汇被提出,比如微服务架构,比如开源的解决方案Spring Cloud、Spring Cloud Alibaba等。

今天,我们已经进入了全面数字化阶段。面对社会全面数字化的转型,流量和复杂度的挑战愈发普遍,团队规模大,效率要求高,使得微服务架构再一次发挥了它的优势。


微服务架构到底有什么样的优点和缺点?

image.png

单体架构的缺点比较明显,共享代码库比较容易冲突,边界不清、模块耦合,团队效率低。

而微服务架构正好解决了以上问题,它的核心手段就是拆分:解耦研发态,解耦部署态,最终达到释放团队效率的效果。

image.png

微服务解决了单体架构的很多问题,除此之外,它还能解决哪些问题?

上图中蓝色部分是业务系统(业务应用),灰色部分是引入了微服务技术架构以后,研发团队需要解决的各种技术复杂度问题,包括网关 CI/CD 微服务的框架、配置中心、注册中心、限流降级、压测工具、监控系统、告警系统、服务治理等,甚至还需要处理 K8s 、IaaS 本身的运维复杂度。


微服务虽然解决了研发效率问题,但随着团队的扩大以及技术复杂度的增高,它也带来很多额外开销。因此很多公司会设立 10 人以下的团队专门解决这类开销问题,包括 v5 框架、运维基础设施等。然而,这类团队的工作成果是否能得到公司的认可依然存疑。

image.png

阿里云 MSE+SAE 微服应用全托管解决方案能够完美解决以上问题。从网关到微服务套件到资源和 K8s 的托管以及监控、CI/CD ,都可以全套交给云原生解决方案。

image.png

SAE 其实是 serverless 的新形态, All on Serverless 覆盖的场景从微服务到 web 应用到前端全栈等场景。它底下的基础设施是 serverless 化的,用户无须关心;在应用层,它提供了应用管理、微服务治理和运维配套。


基于此,低门槛的微服务架构转型有了最佳实践。

image.png 

上图左侧灰色部分是原先采用微服务架构开发模式下需要处理的一些复杂度,右侧代表采用 MSE+SAE 的微服务全托管解决方案以后需要处理的复杂度。可以看到用户几乎只须专注于业务的开发,无须再关心其他问题。


MSE+SAE 的微服务全托管解决方案具有以下几个特性:


1.微服务治理增强。

image.png

MSE+SAE 的前提下 SAE 平台直接提供了 agent 注入到用户的应用中,用户无需去感知 agent 存在,jar 包可以直接部署到 ACE 平台,实现 0 升级成本。借助 agent 能够实现以下能力,包括无损发布、离群摘除、服务测试、限流降级、故障注入等。


2.前后端全链路灰度

image.png

在微服务场景下,全链路灰度是比较典型的诉求,流量从浏览器打到用户的微服务网关,再打到消费者,最后打到提供者。在提供了 agent 的背景下, SAE 可以基于用户 ID 或其他cookie 来达到指定灰度路由的效果。


3.CloudToolkit 端云调用

image.png

在微服务场景下,开发者可能有 10-20 个应用,如果需要在本地开发,将这些应用全量启动,是难以实现的工程。而 MSE+SAE 借助于阿里云 CloudToolkit 的能力,达到了本地和云上环境微服务联调的效果,本地只需启动统一的 consumer provider ,即可直接和云上环境进行互通,流量直接转到本地,达到了最大化简化微服务开发的效果。


4.强大的应用监控&诊断

image.png

包括 Metrics 、Tracing Logging 

image.png

那么,从原先的平台迁移到MSE+SAE 平台,是否需要修改整体架构?

MSE+SAE作为弹性资源池降本,流量从外部的负载均衡或用户的 Nginx 进入。用户如果原先采用了 ECS 则在常态化的流量下依旧可以继续打到 ECS 弹性流量可以打到 SAE。 适用于弹性时间极短或峰值流量和常态流量差异较小、或想从 ECS 迁移到 SAE 过渡方案的用户。

 

相关实践学习
基于MSE实现微服务的全链路灰度
通过本场景的实验操作,您将了解并实现在线业务的微服务全链路灰度能力。
相关文章
|
1月前
|
监控 Java 持续交付
深入理解微服务架构及其在现代应用开发中的应用
深入理解微服务架构及其在现代应用开发中的应用
39 1
|
1月前
|
运维 持续交付 开发工具
深入浅出:GitOps在微服务架构中的应用
【10月更文挑战第26天】本文深入探讨了GitOps在微服务架构中的应用,介绍了其核心理念、自动化部署流程和增强的可观测性。通过实例展示了GitOps如何简化服务部署、配置管理和故障恢复,并推荐了一些实用工具和开发技巧。
|
15天前
|
Java Nacos Sentinel
Spring Cloud Alibaba:一站式微服务解决方案
Spring Cloud Alibaba(简称SCA) 是一个基于 Spring Cloud 构建的开源微服务框架,专为解决分布式系统中的服务治理、配置管理、服务发现、消息总线等问题而设计。
153 13
Spring Cloud Alibaba:一站式微服务解决方案
|
1天前
|
运维 监控 Java
为何内存不够用?微服务改造启动多个Spring Boot的陷阱与解决方案
本文记录并复盘了生产环境中Spring Boot应用内存占用过高的问题及解决过程。系统上线初期运行正常,但随着业务量上升,多个Spring Boot应用共占用了64G内存中的大部分,导致应用假死。通过jps和jmap工具排查发现,原因是运维人员未设置JVM参数,导致默认配置下每个应用占用近12G内存。最终通过调整JVM参数、优化堆内存大小等措施解决了问题。建议在生产环境中合理设置JVM参数,避免资源浪费和性能问题。
9 3
|
24天前
|
Cloud Native 安全 持续交付
深入理解微服务架构及其在现代软件开发中的应用
深入理解微服务架构及其在现代软件开发中的应用
41 3
|
24天前
|
运维 Kubernetes Docker
深入理解容器化技术及其在微服务架构中的应用
深入理解容器化技术及其在微服务架构中的应用
51 1
|
27天前
|
监控 持续交付 API
深入理解微服务架构及其在现代软件开发中的应用
深入理解微服务架构及其在现代软件开发中的应用
44 3
|
28天前
|
监控 持续交付 API
深入理解微服务架构:从设计原则到实践应用
深入理解微服务架构:从设计原则到实践应用
|
1月前
|
监控 Go API
Go语言在微服务架构中的应用实践
在微服务架构的浪潮中,Go语言以其简洁、高效和并发处理能力脱颖而出,成为构建微服务的理想选择。本文将探讨Go语言在微服务架构中的应用实践,包括Go语言的特性如何适应微服务架构的需求,以及在实际开发中如何利用Go语言的特性来提高服务的性能和可维护性。我们将通过一个具体的案例分析,展示Go语言在微服务开发中的优势,并讨论在实际应用中可能遇到的挑战和解决方案。
|
1月前
|
Go 数据处理 API
Go语言在微服务架构中的应用与优势
本文摘要采用问答形式,以期提供更直接的信息获取方式。 Q1: 为什么选择Go语言进行微服务开发? A1: Go语言的并发模型、简洁的语法和高效的编译速度使其成为微服务架构的理想选择。 Q2: Go语言在微服务架构中有哪些优势? A2: 主要优势包括高性能、高并发处理能力、简洁的代码和强大的标准库。 Q3: 文章将如何展示Go语言在微服务中的应用? A3: 通过对比其他语言和展示Go语言在实际项目中的应用案例,来说明其在微服务架构中的优势。

相关产品

  • 微服务引擎