业界首发丨《云原生网络数据面可观测性最佳实践》重磅来袭

Posted 阿里云云原生

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了业界首发丨《云原生网络数据面可观测性最佳实践》重磅来袭相关的知识,希望对你有一定的参考价值。

作者:阿里云云原生

近几年,企业基础设施云原生化的趋势越来越强烈,从最开始的IaaS化到现在的微服务化,企业的颗粒度精细化和可观测性的需求更加强烈。容器网络为了满足企业更高性能和更高的密度,也一直在高速的发展和演进中,这必然对企业对云原生网络的可观测性带来了极高的门槛和挑战。

为了提高云原生网络的可观测性,同时便于企业、前后线同学增加对业务链路的可读性,容器产研和GTS-AES联合共建,结合了产研和AES多年的容器疑难场景的经验,合作共筑《云原生网络数据面可观测性最佳实践》系列,以Net-Exporter为基石,帮助企业和前后线同学了解云原生网络架构体系,简化对云原生网络的可观测性的门槛,提高云原生网络的链路的稳定性。

关注公众号,后台回复
链路观测

即可免费下载电子书

ACK Net Exporter是面向Kubernetes云原生环境的网络监控工具,现在已经开源为KubeSkoop项目(https://github.com/alibaba/kubeskoop),针对云原生网络的痛点,提供以下功能:

  • 针对Pod级别的网络监控,包括流量,应用层连接信息,socket内存分配状态等
  • 针对Pod级别的网络异常状态的指标监控,例如Pod内进程对socket进行读写操作的等待时间超过100ms的次数,Pod发出TCP rst报文的次数等
  • 针对Pod级别的网络异常事件的现场,提供事件发生的详细信息的观测,例如内核网络软中断调度等待过久,UDP出现socket内存不足导致的溢出等

本书亮点

  • 容器网络内核原理硬核解析
  • 全景剖析阿里云容器网络数据面链路
  • 云原生环境下,数据链路观测的轻巧利剑——ACK Net Exporter
  • 实战演练,手把手‘一键式’部署容器网络观测平台
  • 华山论剑——典型偶发抖动场景下的路径探索

业界首发|云原生领域首本架构白皮书重磅发布

业界首发|云原生领域首本架构白皮书重磅发布
来源 | 《云原生架构白皮书》
【导读】今日,由阿里云 20+ 位云原生技术专家共同编撰的《云原生架构白皮书》正式对外发布。作为业界第一本全方位构建云原生架构规划与实践全景图的白皮书,本书在详细阐述云原生架构定义的同时,完整展示云原生架构应用所需的演进路径与设计规则,旨在帮助企业更好地理解与应用云原生架构,助力企业数字化转型升级。 (文末有惊喜)
以下为 Serverless 章节内容:
随着以 Kubernetes 为代表的云原生技术成为云计算的容器界面,Kubernetes 成为云计算的新一代操作系统。面向特定领域的后端云服务(BaaS)则是这个操作系统上的服务 API,存储、数据库、中间件、大数据、AI 等领域的大量产品与技术都开始提供全托管的云形态服务,如今越来越多用户已习惯使用云服务,而不是自己搭建存储系统、部署数据库软件。
当这些 BaaS 云服务日趋完善时,Serverless 因为屏蔽了服务器的各种运维复杂度,让开发人员可以将更多精力用于业务逻辑设计与实现,而逐渐成为云原生主流技术之一。

业界首发|云原生领域首本架构白皮书重磅发布
技术特点

Serverless 计算包含以下特征:
  • 全托管的计算服务 ,客户只需要编写代码构建应用,无需关注同质化的、负担繁重的基于服务器等基础设施的开发、运维、安全、高可用等工作;
  • 通用性 ,结合云 BaaS API 的能力,能够支撑云上所有重要类型的应用;
  • 自动的弹性伸缩 ,让用户无需为资源使用提前进行容量规划;
  • 按量计费 ,让企业使用成本得有效降低,无需为闲置资源付费。
函数计算(Function as a Service)是 Serverless 中最具代表性的产品形态。它通过把应用逻辑拆分多个函数,每个函数都通过事件驱动的方式触发执行,例如当对象存储(OSS)中产生的上传 / 删除对象等事件,能够自动、可靠地触发 FaaS 函数处理,且每个环节都是弹性和高可用的,客户能够快速实现大规模数据的实时并行处理。同样的,通过消息中间件和函数计算的集成,客户可以快速实现大规模消息的实时处理。
目前函数计算这种 Serverless 形态在普及方面仍存在一定困难,例如:
  • 函数编程以事件驱动方式执行,这在应用架构、开发习惯方面,以及研发交付流程上都会有比较大的改变;

  • 函数编程的生态仍不够成熟,应用开发者和企业内部的研发流程需要重新适配;

  • 细颗粒度的函数运行也引发了新技术挑战,比如冷启动会导致应用响应延迟,按需建立数据库连接成本高等。

针对这些情况,在 Serverless 计算中又诞生出更多其他形式的服务形态,典型的就是和容器技术进行融合创新,通过良好的可移植性,容器化的应用能够无差别地运行在开发机、自建机房以及公有云环境中;基于容器工具链能够加快解决 Serverless 的交付。云厂商如阿里云提供了弹性容器实例(ECI)以及更上层的 Serverless 应用引擎(SAE),Google 提供了 CloudRun 服务,这都帮助用户专注于容器化应用构建,而无需关心基础设施的管理成本。此外 Google 也开源了基于 Kubernetes 的 Serverless 应用框架 Knative。
相对函数计算的编程模式,这类 Serverless 应用服务支持容器镜像作为载体,无需修改即可部署在Serverless 环境中,可以享受到 Serverless 带来的全托管免运维、自动弹性伸缩、按量计费等优势。下面是传统的弹性计算服务、基于容器的 Serverless 应用服务和函数计算的对比:

业界首发|云原生领域首本架构白皮书重磅发布


业界首发|云原生领域首本架构白皮书重磅发布
常见场景

近两年来 Serverless 近年来呈加速发展趋势,用户使用 Serverless 架构在可靠性、成本和研发运维效率等方面获得显著收益。
小程序 /Web/Mobile/API 后端服务
在小程序、Web/Moible 应用、API 服务等场景中,业务逻辑复杂多变,迭代上线速度要求高,而且这类在线应用,资源利用率通常小于 30%,尤其是小程序等长尾应用,资源利用率更是低于 10%。Serverless 免运维,按需付费的特点非常适合构建小程序 /Web/Mobile/API 后端系统,通过预留计算资源 + 实时自动伸缩,开发者能够快速构建延时稳定、能承载高频访问的在线应用。在阿里内部,使用 Serverless 构建后端服务是落地最多的场景,包括前端全栈领域的 Serverless For Frontends,机器学习算法服务,小程序平台实现等等。
业界首发|云原生领域首本架构白皮书重磅发布
大规模批处理任务
在构建典型任务批处理系统时,例如大规模音视频文件转码服务,需要包含计算资源管理、任务优先级调度、任务编排、任务可靠执行、任务数据可视化等一系列功能。如果从机器或者容器层开始构建,用户通常使用消息队列进行任务信息的持久化和计算资源分配,使用 Kubernetes 等容器编排系统实现资源的伸缩和容错,自行搭建或集成监控报警系统。而通过 Serverless 计算平台,用户只需要专注于任务处理逻辑的处理,而且 Serverless 计算的极致弹性可以很好地满足突发任务下对算力的需求。
通过将对象存储和 Serverless 计算平台集成的方式,能实时响应对象创建、删除等操作,实现以对象存储为中心的大规模数据处理。用户既可以通过增量处理对象存储上的新增数据,也可以创建大量函数实例来并行处理存量数据。
业界首发|云原生领域首本架构白皮书重磅发布
基于事件驱动架构的在线应用和离线数据处理
典型 Serverless 计算服务通过事件驱动的方式,可以广泛地与云端各种类型服务集成,用户无需管理服务器等基础设施和编写集成多个服务的“胶水”代码,就能够轻松构建松耦合、基于分布式事件驱动架构的应用。
通过和事件总线的集成,无论是一方 BaaS 云服务,还是三方的 SaaS 服务,或者是用户自建的系统,所有事件都可以快速便捷地被函数计算处理。例如通过和 API 网关集成,外部请求可以转化为事件,从而触发后端函数处理。通过和消息中间件的事件集成,用户能快速实现对海量消息的处理。
业界首发|云原生领域首本架构白皮书重磅发布
开发运维自动化
通过定时触发器,用户用函数的方式就能够快速实现定时任务,而无须管理执行任务的底层服务器。通过将定时触发器和监控系统的时间触发器集成,用户可以及时接收机器重启、宕机、扩容等 IaaS 层服务的运维事件,并自动触发函数执行处理。

业界首发|云原生领域首本架构白皮书重磅发布
技术关注点


计算资源弹性调度
为了实现精准、实时的实例伸缩和放置,必须把应用负载的特征作为资源调度依据,使用“白盒”调度策略,由Serverless 平台负责管理应用所需的计算资源。平台要能够识别应用特征,在负载快速上升时,及时扩容计算资源,保证应用性能稳定;在负载下降时,及时回收计算资源,加快资源在不同租户函数间的流转,提高数据中心利用率。因此更实时、更主动、更智能的弹性伸缩能力是函数计算服务获得良好用户体验的关键。通过计算资源的弹性调度,帮助用户完成指标收集、在线决策、离线分析、决策优化的闭环。
在创建新实例时,系统需要判断如何将应用实例放置在下层计算节点上。放置算法应当满足多方面的目标:
  • 容错 :当有多个实例时,将其分布在不同的计算节点和可用区上,提高应用的可用性。
  • 资源利用率 :在不损失性能的前提下,将计算密集型、I/O 密集型等应用调度到相同计算节点上,尽可能充分利用节点的计算、存储和网络资源。动态迁移不同节点上的碎片化实例,进行“碎片整理”,提高资源利用率。
  • 性能 :例如复用启动过相同应用实例或函数的节点、利用缓存数据加速应用的启动时间。
  • 数据驱动 :除了在线调度,系统还将天、周或者更大时间范围的数据用于离线分析。离线分析的目的是利用全量数据验证在线调度算法的效果,为参数调优提供依据,通过数据驱动的方式加快资源流转速度,提高集群整体资源利用率。
负载均衡和流控
资源调度服务是 Serverless 系统的关键链路。为了支撑每秒近百万次的资源调度请求,系统需要对资源调度服务的负载进行分片,横向扩展到多台机器上,避免单点瓶颈。分片管理器通过监控整个集群的分片和服务器负载情况,执行分片的迁移、分裂、合并操作,从而实现集群处理能力的横向扩展和负载均衡。
在多租户环境下,流量隔离控制是保证服务质量的关键。由于用户是按实际使用的资源付费,因此计算资源要通过被不同用户的不同应用共享来降低系统成本。这就需要系统具备出色的隔离能力,避免应用相互干扰。
安全性
Serverless 计算平台的定位是通用计算服务,要能执行任意用户代码,因此安全是不可逾越的底线。系统应当从权限管理、网络安全、数据安全、运行时安全等各个维度全面保障应用的安全性。轻量安全容器等新的虚拟化技术实现了更小的资源隔离粒度、更快的启动速度、更小的系统开销,使数据中心的资源使用变得更加细粒度和动态化,从而更充分地利用碎片化资源。
以上内容出自阿里云出品的《云原生架构白皮书》。
本报告共分为七大章节,涵盖为什么需要云原生架构、云原生架构定义、主要云原生技术、阿里巴巴云原生架构设计、阿里云云原生产品介绍、云原生架构实践案例、云原生架构未来发展趋势几部分,详细阐述了云原生领域的整体落地应用及未来发展趋势。
还想了解更多云原生干货知识?立即扫描二维码或点击阅读原文下载阅读吧!

以上是关于业界首发丨《云原生网络数据面可观测性最佳实践》重磅来袭的主要内容,如果未能解决你的问题,请参考以下文章

阿里云ES全观测引擎TimeStream时序增强功能重磅发布,助力时序场景实现最佳实践

阿里云ES全观测引擎TimeStream时序增强功能重磅发布,助力时序场景实现最佳实践

统一观测丨使用 Prometheus 监控云原生网关,我们该关注哪些指标?

OPLG:新一代云原生可观测最佳实践

云原生全栈可编程的下一代SDN解析与实践 丨传统SDN架构演进

在微服务架构下基于 Prometheus 构建一体化监控平台的最佳实践