第三届云原生编程挑战赛——服务网格赛道介绍

简介: 第三届云原生编程挑战赛——服务网格赛道介绍

服务网格是什么?

在云原生技术体系下,容器化是我们部署应用的一个首选方案。而在容器化的前提下呢,我们一般又会选择Kubernetes作为容器编排调度与部署的一个解决方案。

在今天,应用的部署已经通过容器化和Kubernetes得到了极大的简化,但服务的治理仍然需要应用开发者的深度参与。比如我们的一些流量灰度、熔断等等的能力,要获得这些服务治理的能力、现在一般的做法还是由开发者使用诸如Spring Cloud、Netflix OSS等SDK来实现。

那么这种方式也就代表着这些服务治理能力还是和开发者的代码耦合在一起的,所以使用的时候呢,不同的微服务必须是用一套语言和框架、泛用性比较差;另外就是框架升级的时候开发者还要去更新他的代码,因此这整套方案也就需要开发者深度参与进来。

服务网格最初就诞生于解耦服务治理能力的这种需求。核心的概念呢就是为服务的每个工作负载旁边都注入一个Sidecar代理,然后将原先集成在开发者代码中的这些服务治理能力转移到Sidecar代理中进行实现。这样服务治理能力就与业务代码解耦了,开发者只需关注业务,而运维人员也只需要配置网格中的Sidecar就可以了。

在容器化与Kubernetes简化了应用部署后,服务网格又能够极大简化服务治理,可以说服务网格是云原生时代下服务治理的一个大势所趋。

服务网格有什么能力?

首先要说的肯定就是简化的服务治理能力了,用户可以通过自定义资源的方式很方便地在网格中设定流量灰度、蓝绿发布、熔断、限流、流量镜像、流量转发、流量超时等能力。这个是基于所有网格中的流量都被Sidecar代理劫持转发才能做到的。

第二个要说的是服务网格能够很方便地提高网格内服务的安全性、实现零信任安全。比如,通过Sidecar的劫持,服务之间的通信变成了Sidecar之间的通信,这时就可以很方便地在全局实现应用间通信的tls加密、而无需业务代码修改。另外,由于入向流量被Sidecar拦截,也可以很方便地在Sidecar上设置请求认证等功能。

第三是网格的可观测能力。由于所有的服务都有劫持流量的Sidecar代理,可以很方便地统一上报所有服务的可观测信息,如QPS、请求成功率、请求日志等。

现在,网格技术已经集成在了很多云原生解决方案中,如Kserver AI 服务、Knative Serveless框架、Argo CD交付等等(服务网格ASM也都支持了哦),网格技术还有很多未经探索的新能力、新领域。

谈谈赛题?

第三届云原生编程挑战赛的赛道一就是一道有关服务网格的赛题。

刚才我们已经讲了很多服务网格的概念和能力,这些都绕不开一个事实,那就是服务网格需要为每个工作负载去注入一个Sidecar代理。由于每个Sidecar代理都是一个单独的容器,当网格中的服务增加时,Sidecar代理本身就会占据一定的资源、同时代理转发所有请求确实会造成一定的性能损失,造成QPS下降和延时的增加。这也是当前网格技术最值得考虑的点之一。

赛题的想法实际就来源于有关于这个性能优化的一个点子。我们刚才知道服务网格能够上报很多的可观测信息,那么能不能根据这些可观测信息来动态改变网格中的一些配置、使得网格的性能以及这个资源占用得到尽可能的优化呢?

我们认为还是值得一试的。因此在本次赛题中,我们为大家准备了三个优化的入手点,包括了给Sidecar分配合适的CPU和内存上限、部署一些网格的自定义资源、以及开启一个我们和intel深度合作、优化服务间通信的这个multi-buffer特性。同时为大家准备了网格中的丰富可观测信息作为大家调优的依据。希望看到大家能够开发出高明的策略、以及深度利用网格技术的各种特性,为网格优化提供各种未知的可能性。

欢迎来参加云原生编程挑战赛,服务网格赛道!

相关文章
|
2月前
|
负载均衡 Cloud Native 安全
云原生时代的开发者指南:从容器到服务网格
【9月更文挑战第32天】在云原生技术日益成为企业数字化转型的核心力量之际,了解其背后的理念与实践对于开发者而言至关重要。本文旨在通过浅显易懂的语言,为读者揭开云原生技术的神秘面纱,从容器化的基础谈起,逐步深入到服务网格的高级应用,带领开发者们在云原生的海洋中航行。
45 1
|
3月前
|
机器学习/深度学习 人工智能 Cloud Native
2024 天池云原生编程挑战赛决赛名单出炉,冠军来自中山大学、昆仑数智战队
2024 天池云原生编程挑战赛由阿里云主办,云原生应用平台、天池以及市场营销部联合承办,本届大赛成功吸引了超过 20500 支队伍积极参与,参赛者来自 10 多个国家和地区,大赛规模创下历史新高。
|
4月前
|
存储 Kubernetes Cloud Native
探索Python编程的奥秘云原生时代的容器编排:Kubernetes入门与实践
【8月更文挑战第30天】本文以浅显易懂的方式,探讨了Python编程的核心概念和技巧。从基础语法到高级特性,再到实际应用案例,逐步引导读者深入理解Python编程的精髓。通过本文的学习,读者将能够掌握Python编程的基本技能,并激发进一步探索的兴趣。
44 14
|
3月前
|
Cloud Native Java API
为何这款轻量级框架正悄然改变云原生应用开发格局?——探索Micronaut带来的新编程体验
【9月更文挑战第5天】随着云计算的发展,企业纷纷转向云原生应用开发。Micronaut是一款轻量级、高性能的Java框架,专为微服务架构设计,支持JVM和GraalVM,是构建云原生应用的理想选择。本文介绍Micronaut的基本概念并通过示例展示如何快速搭建云原生应用。使用Micronaut CLI可以轻松创建项目并添加REST接口,其注解驱动的API让开发变得简单直接。Micronaut还提供了健康检查、指标收集等高级功能,支持AOT编译,优化应用性能。对于追求高效开发的团队而言,Micronaut提供了一种全新的解决方案。
68 6
|
4月前
|
运维 Kubernetes Cloud Native
云原生之旅:Kubernetes 集群的搭建与实践Python 编程入门:从零基础到编写实用脚本
【8月更文挑战第30天】在数字化转型的大潮中,云原生技术以其弹性、可扩展性及高效运维能力成为企业IT架构升级的关键。本文将通过实际操作演示如何在本地环境搭建一个简易的Kubernetes集群,带你领略云原生的魅力所在。从集群规划到服务部署,每一步都是对云原生理念的深刻理解和应用。让我们共同探索,如何通过Kubernetes集群的搭建和运维,提升业务灵活性和创新能力。
|
3月前
|
Kubernetes Cloud Native Java
探索未来编程新纪元:Quarkus带你秒建高性能Kubernetes原生Java应用,云原生时代的技术狂欢!
Quarkus 是专为 Kubernetes 设计的全栈云原生 Java 框架,凭借其轻量级、快速启动及高效执行特性,在 Java 社区脱颖而出。通过编译时优化与原生镜像支持,Quarkus 提升了应用性能,同时保持了 Java 的熟悉度与灵活性。本文将指导你从创建项目、编写 REST 控制器到构建与部署 Kubernetes 原生镜像的全过程,让你快速上手 Quarkus,体验高效开发与部署的乐趣。
55 0
|
7月前
|
Oracle 关系型数据库
oracle asm 磁盘显示offline
oracle asm 磁盘显示offline
353 2
|
2月前
|
存储 Oracle 关系型数据库
数据库数据恢复—Oracle ASM磁盘组故障数据恢复案例
Oracle数据库数据恢复环境&故障: Oracle ASM磁盘组由4块磁盘组成。Oracle ASM磁盘组掉线 ,ASM实例不能mount。 Oracle数据库故障分析&恢复方案: 数据库数据恢复工程师对组成ASM磁盘组的磁盘进行分析。对ASM元数据进行分析发现ASM存储元数据损坏,导致磁盘组无法挂载。
|
7月前
|
存储 Oracle 关系型数据库
【数据库数据恢复】Oracle数据库ASM磁盘组掉线的数据恢复案例
oracle数据库ASM磁盘组掉线,ASM实例不能挂载。数据库管理员尝试修复数据库,但是没有成功。
【数据库数据恢复】Oracle数据库ASM磁盘组掉线的数据恢复案例
|
SQL Oracle 关系型数据库
Oracle ASM磁盘和磁盘组的常用SQL语句
Oracle ASM磁盘和磁盘组的常用SQL语句
288 0