企业组织中采用服务网格的挑战

ByteRover
• 阅读 1909

编者按

本文作者介绍了企业组织采用服务网格面临的哪些挑战,建议企业应该从数据平面开始逐步推进,从了解它、熟悉它、再到扩大规模使用它,并且以介绍其演讲的幻灯片为切入点介绍了架构演进的步骤。

正文

最近,我写了一篇关于在企业组织中采用服务网格的具有哪些挑战的文章,这篇文章是为DZone及其迁移到微服务的报告撰写的。在这篇文章中,我们首先要解决的问题之一是“你是否应该沿着采用服务网格的道路走下去”,我是这么说的:

首先回答“不”。如果您刚刚开始使用微服务架构和少量的服务,请确保您首先准备好了基础部分。微服务及其相关的基础设施是一种优化方式,可以让您更快的变更应用程序。在没有服务网格的情况下,您可以朝着更快的方向前进。你甚至可能想要一些服务网格带来的好处,而不是去关注它所有的复杂性。那么,请看看类似Gloo的产品,一个建立在Envoy代理上的API网关。

我认为在当前时刻,这是一个非常重要的考虑,有以下两大原因:

  1. 总的来看,服务网格的实现还没有准备好投入生产。
  2. 全部投入(all-in)到一个服务网络的复杂性仍然很高。

这并不意味着没有团队成功地使用了服务网格,或者您应该远离它。但是,我确实认为您应该建立这样的能力,当您真正准备好了并且可以从中获益的时候,最终能成功地将服务网格引入。例如,在报告中,我列出了您可能想要使用服务网格的原因:

  • 跨多个集群部署大量微服务
  • 容器/k8s和虚拟机的混合部署
  • 用于构建服务的语言的异构部署
  • 网络可观测性的不完整和不一致视图

即使有了以上这些理由,你依然会面临这些挑战:

  • 选择哪一个服务网格产品?
  • 谁来做技术支持?
  • 单集群的多租户问题
  • 缺乏多集群的管理方法
  • 已有服务如何适配(sidecar的生命周期、竞态条件等等)
  • 开发人员与运维人员的界限在哪里
  • 非容器环境/混合环境
  • 中心化 vs 去中心化

通过我在Red Hat和现在Solo.io加起来两年以上的工作,我一直在帮助人们解决那些棘手的问题(顺便说一句,如果你想交谈/需要这些方面的帮助,可以通过@christianposta联系我)。但有一件我从我们的客户/用户一直观察到,并且持续一段时间提出建议,那就是你采用服务网格的第一步,应该总是先使用在一定程度上(自行)隔离的数据平面技术,要了解它是如何工作的,如何实施,如何调试等等。

例如,在我最近做的一次演讲中,我说过要从Envoy(Envoy是许多服务网格实现的底层数据平面技术)开始。PPT如下:

企业组织中采用服务网格的挑战

从架构的角度来看,它可能是这样的:

企业组织中采用服务网格的挑战

当然,如果你要使用Envoy,我建议从Gloo开始,这基本上是一个具有edge与API网关能力的企业版Envoy,并且很好地植入了服务网格。一旦你有了它,对它熟练使用,那么你就会准备好增加它的使用,甚至可能通过代理的分层引入一些隔离:

企业组织中采用服务网格的挑战

接下来的方法是将网关推入到应用架构中。我们看到我们的用户在每个应用程序边界采用一个网关的方法,开始有了一个网格的“感觉”,但在应用程序引入了一些结构(例如,API网关模式)。我开始称之为“waypoints”架构。就像飞行员使用航路点(waypoints)来指导他们的飞行计划一样,这些网关为您的应用架构增加了结构,同时解决了诸如安全性和API解耦的南北通信问题,同时为成功采用服务网格奠定了基础。

企业组织中采用服务网格的挑战

最后,您可以开始在应用程序中引入独立于边界的服务网格代理,以解决棘手的但恰恰是服务网格技术最擅长解决的service-to-service通信挑战:

企业组织中采用服务网格的挑战

这里重要的部分是网关,并且仍然有非常有用的用途!它们向应用架构中添加结构和路径点,同时在需要的地方将某些实现细节与其他服务分离并隐藏起来。在很多方面,这都遵循了DDD有界上下文模型,网关提供了一个“反腐败”层。否则,如果你只是把所有的服务都当作“伙伴”,你就会开始坚定地迈向死星:

企业组织中采用服务网格的挑战

希望这篇文章有助于您奠定一个成功的方法,通过小范围使用服务网格,然后逐渐缓慢扩展有意义的各个地方,并且你的应用程序可以从服务网格架构中获益。否则,您将承担同时引入太多复杂性的风险,这将违背您实现应用程序和基础设施现代化的意图。

关于 ServiceMeshe 社区

ServiceMesher 社区是由一群拥有相同价值观和理念的志愿者们共同发起,于 2018 年 4 月正式成立。

社区关注领域有:容器、微服务、Service Mesh、Serverless,拥抱开源和云原生,致力于推动 Service Mesh 在中国的蓬勃发展。

企业组织中采用服务网格的挑战

社区官网:https://www.servicemesher.com

点赞
收藏
评论区
推荐文章
全栈混合云综合架构方案研究和落地
本文分享自天翼云开发者社区《》,作者:yn(一)业务背景随着云服务的便利性日益被市场接受,企业客户越来越倾向采用公有云服务补充其现有的企业内部部署的数据中心和私有云基础架构的不足。因此,混合云成为云服务市场的重要发展趋势。广义上讲,混合云的形态可以包括云与
Stella981 Stella981
3年前
Spring Cloud 中国社区一周年技术沙龙
一、活动介绍随着云计算、互联网公司云化基础设施、标准化代码管理等日趋成熟,DevOps、持续交付等概念深入人心,为传统IT系统的微服务云化扫清了技术和文化障碍,微服务在企业IT架构或云转型过程中发挥着巨大的作用,SpringCloud提供一套完善的微服务解决方案为企业IT架构演进保驾护航。2016年10月,SpringCloud中
Stella981 Stella981
3年前
Service Mesh 最火项目: Istio 架构解析
Istio是一个开源的服务网格,可为分布式微服务架构提供所需的基础运行和管理要素。随着各组织越来越多地采用云平台,开发者必须使用微服务设计架构以实现可移植性,而运维人员必须管理包含混合云部署和多云部署的大型分布式应用。Istio采用一种一致的方式来保护、连接和监控微服务,降低了管理微服务部署的复杂性。从架构设计上来看,Istio服务网格在逻辑上分为
Wesley13 Wesley13
3年前
2020,最关注企业级云原生实践落地的大会来了!
过去的2019年,云原生关注度依然居高不下,更多开发者热衷使用云原生技术,更多企业开始探索云原生架构转型落地。尽管云原生技术已经被广泛接受,其在企业技术栈的落地仍然面临挑战。在与各行业头部企业深度合作和交流中,我们发现国内云原生实践已累积了诸多宝贵经验。云原生技术带来的资源成本降低、研发运维效率提升等巨大价值,已经驱动企业主动迎接这些挑战。可以预见通
Stella981 Stella981
3年前
Kubernetes 时代的安全软件供应链
作者汤志敏 阿里云容器服务高级技术专家汪圣平 阿里云云平台安全高级安全专家导读:从Dockerimage到Helm,从企业内部部署到全球应用分发,作为开发者的我们如何来保障应用的交付安全。本文会从软件供应链的攻击场景开始,介绍云原生时代的应用交付标准演进和阿里云上的最佳实践。“没有集装箱,就不会有全球化”。在软件行业里,
Consul简介
Consul是一款开源的服务网格解决方案,由HashiCorp公司开发。它提供服务发现、健康检查、KEY/VALUE存储、多数据中心方案等功能,可以帮助企业构建和管理现代应用架构。Consul的主要功能如下:
精彩分享 | 欢乐游戏 Istio 云原生服务网格三年实践思考
作者吴连火,腾讯游戏专家开发工程师,负责欢乐游戏大规模分布式服务器架构。有十余年微服务架构经验,擅长分布式系统领域,有丰富的高性能高可用实践经验,目前正带领团队完成云原生技术栈的全面转型。导语欢乐游戏这边对istio服务网格的引进,自2019开始,从调研到规模化落地,至今也已近三年。本文对实践过程做了一些思考总结,期望能给对网格感兴趣的同学们以参考
一文读懂天翼云自研 TeleDB 数据库五大关键特性
数字时代下,随着企业向数字化、在线化、智能化高速演进,存储需求呈指数级增长,业务也面临着更多热点和突发流量带来的挑战,这就对数据库安全可靠、超高性能、易运维性提出了更高要求。天翼云自研TeleDB数据库采用云原生架构,具备即开即用、稳定可靠、安全运行、弹性伸缩、轻松管理、经济实用等特点,可为用户提供稳定可靠的企业级数据库服务,帮助企业圆满解决上述问题。与
亚马逊云科技的MLOps新实践,会给我们哪些启发?
20年前,软件行业在数字化演进的道路上,从部署一个Web服务器到部署几十甚至上百上千个不同的应用,在各种规模化交付方面的挑战之下,诞生了DevOps技术。比如虚拟化、云计算、持续集成/发布、自动化测试等,而MLOps就是机器学习时代的DevOps。它的主要作用就是连接模型构建团队和业务,运维团队,建立起一个标准化的模型开发,部署与运维流程,使得企业组织能更好
曼成 曼成
1年前
数据智能引擎:企业模糊搜索API精准获取企业列表信息
随着信息时代的迅速发展,数据变得愈加庞大和复杂。在这个大数据的时代,企业面临着海量信息的管理和利用挑战。为了更有效地获取并利用数据,企业信息模糊搜索API成为了企业数据智能引擎的一部分,为企业提供了精准的企业列表检索服务。