热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Salt选择了Linkerd实现gRPC负载平衡,同时获得多重效益

gRPC请求使用HTTP2,而Kubernetes的原生TPC负载平衡(Salt的微服务是在Kubernetes上构建)不能有效地平衡。Salt的微服务被复制以实现负载平衡和高可用

Salt Security[1]正在解决当今依赖于 API 的应用程序的安全挑战。API 请求可以表示每秒数以万计的攻击或 PII 暴露机会。为了应对这些风险,Salt 对客户的 API 元数据运行 AI 和 ML 来阻止威胁。随着流量的不断增加,平台效率的高低取决于工程师能否将停机时间最小化。

快速增长会引发向后兼容性问题

当 Salt Security 开始迅速发展时,服务之间的消息性质开始改变,从而引发向后兼容性问题。为了确保对 API 调用的更改不会导致系统问题,Salt 平台团队采用了gRPC[2],一个 CNCF 托管的 RPC 框架。然而,存在一个问题:gRPC 请求使用 HTTP/2,而 Kubernetes 的原生 TPC 负载平衡——Salt 的微服务是在 Kubernetes 上构建的——不能有效地平衡。Salt 的微服务被复制以实现负载平衡和高可用性;在副本之间分配跨服务通信是关键的。

Salt 采用 Linkerd 进行负载均衡,获得多重效益

该团队研究了解决方案,并倾向于Linkerd[3]——一个快速、轻量级的服务网,是另一个 CNCF 托管项目。他们惊叹于它的简单实现,在网上找到它的几个小时内就将它部署到他们的开发环境中。仅仅三天,它就投入生产。然后,他们开始将服务迁移到 gRPC,并将其添加到服务网格中。

至此,Salt 在实现 gRPC 负载平衡的同时,也实现了 Linkerd 的多重好处。例如,Linkerd 确保所有服务到服务的消息都是加密的,为集群提供更强的安全性。它还提供了对流量层的实时洞察,因此团队可以提前一步解决潜在的问题。此外,Linkerd 最新的 gRPC 重试功能可以确保短暂的网络错误不会看起来像硬故障,防止不必要的、耗时的调查。

事实上,该团队发现 Linkerd 不仅仅是一个生产工具。具有与日志记录、指标和跟踪平台相同的监控和可见性功能,它现在是 Salt 开发堆栈中的一个工具,以防止生产中出现的问题。

最近,当 Salt 顺畅地将流量提高了 10 倍时,Linkered 证明了自己的价值。最初采用 Linkerd 是为了解决一个单一的问题,但它提高了 Salt 的效率、可靠性、性能和安全性。

“仅仅一周的工作,我们就得到了实实在在的成果。”——Omri Zamir,Salt 高级软件工程师。

阅读案例研究[4]了解更多内容!

参考资料

[1]

Salt Security: https://salt.security/

[2]

gRPC: https://grpc.io/

[3]

Linkerd: https://linkerd.io/

[4]

案例研究: https://www.cncf.io/case-studies/salt-security/


点击【阅读原文】阅读网站原文。


    CNCF概况(幻灯片)

    扫描二维码联系我们!




    CNCF (Cloud Native Computing Foundation)成立于2015年12月,隶属于Linux  Foundation,是非营利性组织。 

    CNCF云原生计算基金会)致力于培育和维护一个厂商中立的开源生态系统,来推广云原生技术。我们通过将最前沿的模式民主化,让这些创新为大众所用。请长按以下二维码进行关注。



    推荐阅读
    • 朱晔的互联网架构实践心得S1E7:三十种架构设计模式(上)【下载本文PDF进行阅读】设计模式是前人通过大量的实践总结出来的一些经验总结和最佳实践。在经过多年的软件开发实践之后,回过头 ... [详细]
    • Istio是一个用来连接、管理和保护微服务的开放平台。Istio提供一种简单的方式来为已部署的服务建 ... [详细]
    • [翻译]微服务设计模式5. 服务发现服务端服务发现
      服务之间需要互相调用,在单体架构中,服务之间的互相调用直接通过编程语言层面的方法调用就搞定了。在传统的分布式应用的部署中,服务地 ... [详细]
    • Kubernetes(k8s)基础简介
      Kubernetes(k8s)基础简介目录一、Kubernetes概述(一)、Kubernetes是什么(二& ... [详细]
    • PartI:取经处: http:www.ramkitech.com201210tomcat-clustering ... [详细]
    • 服务注册中心到底应该选AP模型还是CP模型?
      当下,分布式系统正变得越来越重要,大型网站几乎都是分布式的。分布式系统的最大难点,就是各个节点的状态 ... [详细]
    • SpringBoot uri统一权限管理的实现方法及步骤详解
      本文详细介绍了SpringBoot中实现uri统一权限管理的方法,包括表结构定义、自动统计URI并自动删除脏数据、程序启动加载等步骤。通过该方法可以提高系统的安全性,实现对系统任意接口的权限拦截验证。 ... [详细]
    • 本文介绍了作者在开发过程中遇到的问题,即播放框架内容安全策略设置不起作用的错误。作者通过使用编译时依赖注入的方式解决了这个问题,并分享了解决方案。文章详细描述了问题的出现情况、错误输出内容以及解决方案的具体步骤。如果你也遇到了类似的问题,本文可能对你有一定的参考价值。 ... [详细]
    • 预备知识可参考我整理的博客Windows编程之线程:https:www.cnblogs.comZhuSenlinp16662075.htmlWindows编程之线程同步:https ... [详细]
    • 全面介绍Windows内存管理机制及C++内存分配实例(四):内存映射文件
      本文旨在全面介绍Windows内存管理机制及C++内存分配实例中的内存映射文件。通过对内存映射文件的使用场合和与虚拟内存的区别进行解析,帮助读者更好地理解操作系统的内存管理机制。同时,本文还提供了相关章节的链接,方便读者深入学习Windows内存管理及C++内存分配实例的其他内容。 ... [详细]
    • 什么是网关服务器初学linux服务器开发时,我们的服务器是很简单的,只需要一个程序完成与客户端的连接,接收客户端数据,数据处理,向客户端发送数据。但是在处理量很大的情况下,一 ... [详细]
    • 内网知识整理
      内网 ... [详细]
    • Nginx 中怎么实现动静分离与负载均衡
      本篇文章为大家展示了Nginx中怎么实现动静分离与负载均衡,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有 ... [详细]
    • k8s入坑之路(14)scheduler调度 kubelet管理及健康检查
      kubelet主要功能Pod管理在kubernetes的设计中,最基本的管理单位是pod,而不是container。pod是kubernetes在容器上的一层封装,由一组运行在同一 ... [详细]
    • 分布式服务框架和原理简章
      应用架构演进这里的架构演进应该是从服务化的角度来说,应该说随着业务发展,应用规模扩大,系统的一些公共服务就会抽取出来,独立开发,部署,维护,用来解决并发,扩展,维护的问题。传统垂直 ... [详细]
    author-avatar
    zpy7005434
    这个家伙很懒,什么也没留下!
    PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
    Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有