阿里云托管网格服务入门与应用部署实践(上)

简介: 作为开发者来说,重点关注于自身的业务本身,希望底层服务网格技术基础简单、易用、安全、稳定。为了实现这些目标,托管的服务网格模式可能是一个较为合理的方案。阿里云服务网格 ASM 就是这样的一个全托管式的服务网格平台,并且完全兼容社区开源的 Istio。本次直播中,阿里云智能技术专家萧元为大家分享了阿里云服务网格(ASM)的基本功能与优点,并用一个Demo来介绍ASM的基本使用方法。

【MVP时间】线上峰会,一键收藏

《阿里云托管网格服务入门与应用部署实践》精彩直播

查看下篇文章,点击这里。

一、服务网格简介

在云原生应用的早起,我们大多使用的是单体应用,将所有业务相关的应用部署、打包,然后进行发布,这种架构下,随着业务越来越复杂,应用之间越来越不可拆分,不同模块的可扩展性、伸缩性非常差。为了解决以上问题,我们提出了微服务架构,它是依据功能将服务划分成不同的应用单元和业务组件,组件之间通过API的方式相互调用,同时相互独立的组件可以做水平和垂直的扩容,提升了架构的可伸缩性

然而,微服务架构带来了良好的伸缩性的同时也提升了运维的复杂性,进而诞生了容器与编排架构,容器技术可以自定义软件运行的基础环境,方便进行资源的隔离,而容器的编排技术可以将应用编排到不同的机器上,提供用于基于容器应用可扩展性的基本机制。在基于容器部署的软件环境基础上,我们需要一个基于容器的、用于服务治理的框架,于是诞生了服务网格。不同的服务有着各自的特点,各自的优劣对比如下图所示。

image.png

如果不使用网格服务而使用微服务架构,那么在容器环境下的微服务治理有多难呢?难点主要包括

  • 通信链路复杂,难以定位微服务问题;
  • 一些服务功能难以实现,比如服务发现、负载均衡、故障容忍、端到端监测、动态路由等;
  • 服务功能以代码库的方式紧耦合在应用程序本身中,容易引发版本冲突问题;
  • 不同编程语言的解决方案差异大、缺少共性。

在服务网格中,通过Sidecar代理处理以上问题,堪称容器微服务流量管控“神器”,同时将这些功能标准化,应用程序开发人员可以专注于业务逻辑的实现。形象的来讲,Sidecar就像下图所示的摩托车的边车一样,服务去哪,Sidecar就去哪,比如在目前非常出名的服务网格Istio中,它的Sidecar就是一个C++编写的Envoy组件,服务网格通过这种方式,很好的实现了包括服务发现、可观测性、限流等各种服务功能。

image.png

通过第三方去做服务治理的传统方式与服务网格的区别如下图所示。在传统方式中我们通过Library或者其他方式将服务治理能力集成到应用中,但是如果Library的版本不同或者语言框架不同的时候服务治理能力就会出现参差不同的差异,给版本升级带来巨大的不便;而在服务网格中,我们用Sidecar代理的方式来解决这个问题,使得服务能力的提升或升级独立于应用本身。

image.png

此外,由于我们使用了Sidecar代理方式,方便了我们进行统一的管理。比如Istio中的Pilot组件不断地去读取用户提交到数据库中的规则配置,然后再和每个服务的Sidecar代理进行信息交互,实现整个平台的统一管理。通过服务网格,我们将这种服务治理的能力统一化、标准化,主要功能服务以及特性如下图所示。

image.png

二、阿里云服务网格(ASM)

(一)ASM简介

服务网格提供了强大的功能同时,也带来了如下图所示的更多复杂性,首要的是部署复杂性,而其复杂性也成为了一部分用户望而却步的原因。

image.png

为了解决其部署复杂性的问题,阿里云发布了相关产品:阿里云服务网格(Alibaba Cloud Service Mesh,简称 ASM)。阿里云服务网格提供了一个全托管式的服务网格平台,兼容于社区 Istio 开源服务网格,用于简化服务的治理,包括服务调用之间的流量路由与拆分管理、服务间通信的认证安全以及网格可观测性能力,从而极大地减轻开发与运维的工作负担。从下图可以看到阿里云的容器团队之前已经提供了ACK、ASK和ACR等服务,ASM是这些服务之上的一个流量治理的平台。

image.png

ASM的架构如下图所示,它其实是一个托管式的、统一的流量管理和服务治理的平台,百分百兼容社区的Istio,接入了阿里云的一些能力,比如安全能力、日志能力、分布式追踪能力等,并且接入了云企业网,做到了不同网络之间的相互打通。

image.png

(二)ASM适用场景及优势

ASM有着强大、便捷的功能,那么ASM适用于哪些场景呢?当前,ASM适用的场景主要有:

  • 多集群应用统一流量管理:对于部署在多地域、混合云多云、不同类型的K8s集群,提供一致的可见性和流量管理。
  • 端到端可观测性:提供跟踪、监控和日志记录功能的优化整合,帮助用户深入分析网络及应用服务的性能表现和运行状况。
  • 服务安全加固与灵活授权:通过mTLS以渐进方式逐步实现服务之间通信的安全,提供简单易用、基于角色的访问权限控制与自定义授权能力,支持所有变更操作可审计追踪。
  • 应用容器化平滑上云:将线下环境存量应用迁移上云,通过部署和配置服务网格,将流量动态路由到线下旧版环境或线上新版环境,处理无状态服务迁移。

服务网格ASM与ACK Istio addon、云上自建Istio相比,三种方式在管控平面、用户成本、安全性等方面的对比如下图所示:

image.png

(三)ASM流量管理

如下图所示,ASM首先将数据分成控制面和数据面,数据面支持不同的代理服务,在控制层面可以为用户托管API Server访问入口、ETCO、Istio Operator等,实现流量和服务的统一管理。
并且在流量管理的策略上,ASM完全兼容Istio社区API,为用户提供更加便捷的服务。

image.png

《阿里云托管网格服务入门与应用部署实践》精彩直播

查看下篇文章,点击这里。

目录
相关文章
|
2月前
|
Cloud Native 持续交付 开发者
云端之旅:探索云原生应用的构建与部署
【9月更文挑战第26天】在这篇文章中,我们将一起踏上一段激动人心的旅程,深入探讨云原生应用的构建和部署。通过实际的代码示例和详细的步骤说明,我们将揭开云原生技术的神秘面纱,展示如何利用这些技术来创建灵活、可扩展的应用。无论你是云原生领域的新手还是希望深化理解的开发者,这篇文章都将为你提供宝贵的知识和技能。
46 0
|
3月前
|
运维 Cloud Native 持续交付
云原生之旅:从容器化到服务网格的探索
在数字化浪潮中,云原生技术如同一艘扬帆起航的船,带领企业驶向灵活、高效的未来。本文将带你领略云原生的魅力,从容器化技术的基石铺就,到微服务架构的精细打磨,再到服务网格的智能导航,我们一同探索云原生如何重塑软件开发和运维的生态。你将看到,随着技术的深入,云原生不仅仅是一种技术选择,更是一场关于创新和变革的航行。
37 0
|
运维 Kubernetes Cloud Native
应用纳管和灰度发布:谐云基于 KubeVela 的企业级云原生实践
谐云通过类比事务的方式,将渲染过程分为正向和逆向,同时将首次纳管和真正的纳管动作进行了分离,完成了平台升级的同时,给应用的纳管行为留下了一定的可操作空间。
应用纳管和灰度发布:谐云基于 KubeVela 的企业级云原生实践
|
应用服务中间件
《基于阿里企业级分布式应用服务 (EDAS)的敏捷服务开发与架构实践》电子版地址
基于阿里企业级分布式应用服务 (EDAS)的敏捷服务开发与架构实践
115 0
《基于阿里企业级分布式应用服务 (EDAS)的敏捷服务开发与架构实践》电子版地址
|
弹性计算 运维 监控
从零开始Serverless云开发——运维监控
从零开始Serverless云开发——运维监控自制脑图, 当应用部署上线后,需要针对应用做运维操作,虽然它的优点是弹性伸缩以及自动化运维,但仍然需要实时监控或者做人工运维。
108 0
从零开始Serverless云开发——运维监控
|
Serverless
从零开始Serverless云开发——产品线管理(创建产品)
从零开始Serverless云开发——产品线管理(创建产品) 产品创建时选择地域不能再更改(因为下面所有应用生产部署产生的资源都在此地域下)
145 0
从零开始Serverless云开发——产品线管理(创建产品)
|
IDE Serverless 开发工具
从零开始Serverless云开发——开发部署
从零开始Serverless云开发——开发部署自制脑图, 当域名创建完毕后,下一步需要进行开发部署,开发平台通过CloudIDE实现功能,可以通过在线ide进行在线开发。CloudIDE模拟线上环境,进行在线调试,最后可以通过CloudIDE插件实现代码对应环境。
327 0
从零开始Serverless云开发——开发部署
|
弹性计算 架构师 Serverless
serverless 入门与实践 | 学习笔记5: 华为终端云从微服务到 Serverless 的架构演进实践
serverless 入门与实践 | 学习笔记5: 华为终端云从微服务到 Serverless 的架构演进实践
280 0
serverless 入门与实践 | 学习笔记5: 华为终端云从微服务到 Serverless 的架构演进实践
|
存储 运维 监控
企业级运维之云原生与Kubernetes实战课程 - 第二章第2讲 阿里云容器服务集群应用管理
本小节主要内容为集群中应用管理,包括如何在控制台进行应用的创建及创建应用过程中详细配置的介绍。
企业级运维之云原生与Kubernetes实战课程 - 第二章第2讲 阿里云容器服务集群应用管理
|
Kubernetes Cloud Native 网络协议
企业级运维之云原生与Kubernetes实战课程 - 第一章第7讲 实验一:从0开始创建云原生应用
本小节主要讲解从0开始创建云原生应用的实验部分,以及Pod的几种状态、Pod在宿主机上体现方式。
企业级运维之云原生与Kubernetes实战课程 - 第一章第7讲 实验一:从0开始创建云原生应用