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



    推荐阅读
    • 如果程序使用Go语言编写并涉及单向或双向TLS认证,可能会遭受CPU拒绝服务攻击(DoS)。本文深入分析了CVE-2018-16875漏洞,探讨其成因、影响及防范措施,为开发者提供全面的安全指导。 ... [详细]
    • 了解_Istio是啥?一文带你彻底了解!
      篇首语:本文由编程笔记#小编为大家整理,主要介绍了Istio是啥?一文带你彻底了解!相关的知识,希望对你有一定的参考价值。 ... [详细]
    • 本文探讨了使用Python进行微服务架构设计的合理性和适用性。首先,介绍了微服务的基本概念及其在现代软件开发中的重要性。接着,通过具体的业务场景,详细分析了Python在微服务架构设计中的优势和挑战。文章还讨论了在实际应用中可能遇到的问题,并提出了相应的解决方案。希望本文能够为从事Python微服务开发的技术人员提供有价值的参考和指导。 ... [详细]
    • 在JavaWeb开发中,文件上传是一个常见的需求。无论是通过表单还是其他方式上传文件,都必须使用POST请求。前端部分通常采用HTML表单来实现文件选择和提交功能。后端则利用Apache Commons FileUpload库来处理上传的文件,该库提供了强大的文件解析和存储能力,能够高效地处理各种文件类型。此外,为了提高系统的安全性和稳定性,还需要对上传文件的大小、格式等进行严格的校验和限制。 ... [详细]
    • 在对WordPress Duplicator插件0.4.4版本的安全评估中,发现其存在跨站脚本(XSS)攻击漏洞。此漏洞可能被利用进行恶意操作,建议用户及时更新至最新版本以确保系统安全。测试方法仅限于安全研究和教学目的,使用时需自行承担风险。漏洞编号:HTB23162。 ... [详细]
    • 优化后的标题:深入探讨网关安全:将微服务升级为OAuth2资源服务器的最佳实践
      本文深入探讨了如何将微服务升级为OAuth2资源服务器,以订单服务为例,详细介绍了在POM文件中添加 `spring-cloud-starter-oauth2` 依赖,并配置Spring Security以实现对微服务的保护。通过这一过程,不仅增强了系统的安全性,还提高了资源访问的可控性和灵活性。文章还讨论了最佳实践,包括如何配置OAuth2客户端和资源服务器,以及如何处理常见的安全问题和错误。 ... [详细]
    • 数字图书馆近期展出了一批精选的Linux经典著作,这些书籍虽然部分较为陈旧,但依然具有重要的参考价值。如需转载相关内容,请务必注明来源:小文论坛(http://www.xiaowenbbs.com)。 ... [详细]
    • 本指南详细介绍了在Linux环境中高效连接MySQL数据库的方法。用户可以通过安装并使用`mysql`客户端工具来实现本地连接,具体命令为:`mysql -u 用户名 -p 密码 -h 主机`。例如,使用管理员账户连接本地MySQL服务器的命令为:`mysql -u root -p pass`。此外,还提供了多种配置优化建议,以确保连接过程更加稳定和高效。 ... [详细]
    • REST与RPC:选择哪种API架构风格?
      在探讨REST与RPC这两种API架构风格的选择时,本文首先介绍了RPC(远程过程调用)的概念。RPC允许客户端通过网络调用远程服务器上的函数或方法,从而实现分布式系统的功能调用。相比之下,REST(Representational State Transfer)则基于资源的交互模型,通过HTTP协议进行数据传输和操作。本文将详细分析两种架构风格的特点、适用场景及其优缺点,帮助开发者根据具体需求做出合适的选择。 ... [详细]
    • 基址获取与驱动开发:内核中提取ntoskrnl模块的基地址方法解析
      基址获取与驱动开发:内核中提取ntoskrnl模块的基地址方法解析 ... [详细]
    • 本文推荐了六款高效的Java Web应用开发工具,并详细介绍了它们的实用功能。其中,分布式敏捷开发系统架构“zheng”项目,基于Spring、Spring MVC和MyBatis技术栈,提供了完整的分布式敏捷开发解决方案,支持快速构建高性能的企业级应用。此外,该工具还集成了多种中间件和服务,进一步提升了开发效率和系统的可维护性。 ... [详细]
    • 2019年后蚂蚁集团与拼多多面试经验详述与深度剖析
      2019年后蚂蚁集团与拼多多面试经验详述与深度剖析 ... [详细]
    • 本文深入探讨了Spring Cloud Eureka在企业级应用中的高级使用场景及优化策略。首先,介绍了Eureka的安全配置,确保服务注册与发现过程的安全性。接着,分析了Eureka的健康检查机制,提高系统的稳定性和可靠性。随后,详细讨论了Eureka的各项参数调优技巧,以提升性能和响应速度。最后,阐述了如何实现Eureka的高可用性部署,保障服务的连续性和可用性。通过这些内容,开发者可以更好地理解和运用Eureka,提升微服务架构的整体效能。 ... [详细]
    • 本文深入探讨了 Spring Cloud 微服务架构中 Gateway 组件的应用,详细介绍了其在实现高效请求路由与过滤方面的关键作用。文章首先从基本配置入手,逐步讲解了如何通过静态路由和动态路由实现灵活的服务访问控制。此外,还特别介绍了如何配置 Gateway 以自动从 Nacos 服务注册中心拉取服务列表,进一步提升系统的可维护性和扩展性。 ... [详细]
    • [翻译]微服务设计模式5. 服务发现服务端服务发现
      服务之间需要互相调用,在单体架构中,服务之间的互相调用直接通过编程语言层面的方法调用就搞定了。在传统的分布式应用的部署中,服务地 ... [详细]
    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社区 版权所有