Envoy

Envoy 和 Istio 的 6.18

假装没事ソ 提交于 2021-01-10 12:49:46
地球对面的时间比我们这里晚一点,我们的 618 已经开始返场了,他们还在 618。 服务网格方面,在这一天有了两个发布: Envoy 发布了移动版 Istio 发布了 1.2 Envoy Mobile Envoy Mobile 是一个库,目的是可以直接将 Envoy 的功能封装到移动应用之中, 跨平台的底层网络支持:HTTP/2、QUIC、gRPC、推送、流、重试和超时策略等底层网络技术的实现以及跨平台都是需要付出大量努力来完成的事情,Evnoy Mobile 试图在客户端以一致的跨平台的方式提供这所有功能。 xDS 支持:Envoy 的最深套路就是 xDS 了,Envoy 一旦潜入移动应用,就可以通过 xDS 的方式,在服务端对客户端的网络行为作出控制。 API 的高级支持:用注解方式为 API 提供缓存、优先级等支持 这个项目还非常早期,但是我觉得非常有意思,强悍的 Envoy 用这种方式为移动应用提供了一个可控的网络抽象的能力,目前已经提供了 Java、Swift、OC 等支持,这会不会成为一种新的边缘能力? Istio 1.2 补丁版本,没啥好说。 参考链接 https://docs.google.com/document/d/1N0ZFJktK8m01uqqgfDRVB9mpC1iEn9dqkQaa_yMn_kE/edit# https://istio.io/about

什么时候服务网格可以从Envoy/Istio的阴影中走出来?

大城市里の小女人 提交于 2021-01-10 12:32:39
Istio在服务网格方面有很大的领先优势,但只在早期采用者中如此。根据云计算基金会(CNCF)的调查,在已经在生产中使用服务网格的用户中,63%的用户已经采用了Istio,这是linker的两倍多。其他的选择中,除了HashiCorp的Consul之外,占比都不超过10%。 如果考虑到它通常与Envoy一起部署的事实,Istio的优势就没有那么吓人了。Envoy最近无可否认做得很好。CNCF社区中Envoy项目的生产使用率从2019年的17%上升到2020年的24%。但评估该项目的人从35%下降到21%,这可能意味着许多组织考虑并拒绝了Envoy,这可能会对未来服务网格的采用产生影响。并不是每个人都将Envoy与服务代理或入口控制联系起来。当筛选掉这一功能时,只有18%的用户在生产或评估情况下使用了Envoy。 超过一半(55%)的为Ingress使用Envoy的受访者在生产中有服务网格。另有26%的人正在积极测试服务网格,9%的人计划在未来12个月内开始。其中大部分都倾向于Istio,以及基于项目技术的解决方案,例如F5 Networks的Aspen Mesh和Tetrate。 另一个调查则显示,并非所有的服务网格采用都将来自CNCF社区(那里充斥着供应商和大公司)。NGINX在2020年6月调查了近500人,调查结果显示,16%使用NGINX入口控制器(NIC),其中19

CNCF云原生景观的初学者指南

梦想的初衷 提交于 2021-01-06 20:58:52
这个博客最初是由 Ayrat Khayretdinov 在CloudOps博客上发布 云原生景观可能会很复杂和混乱。无数的开源项目都得到了一个充满活力和广阔社区的持续贡献的支持。云原生计算基金会(CNCF)有一幅景观图,展示了云原生解决方案的全部范围,其中许多都在他们的保护伞下。 作为CNCF大使,我积极致力于在加拿大各地推广社区活动和云原生教育。在CloudOps里,我领导了Docker和Kubernetes的研讨会,提供了云原生技术的介绍,并帮助DevOps团队操作他们的应用程序。 我还组织了Kubernetes和云原生meetup来介绍来自世界各地的演讲者,代表各种项目。它们每季度在蒙特利尔、渥太华、多伦多、基奇纳 - 滑铁卢和魁北克市运营。通过@archyufaor联系我或电邮到CloudOps,了解更多关于成为云原生的信息。 与此同时,我还编写了一个关于云原生景观的初学者指南。我希望它能帮助你理解风景,让你更好地了解如何驾驭它。 CNCF的历史 2014年,谷歌开源了一个名为Borg的内部项目,他们一直在使用它来编排容器。由于没有地方来进行这个项目,谷歌与Linux基金会合作创建了云原生计算基金会(CNCF),这将鼓励Kubernetes和其他云原生解决方案的开发和协作。Borg实现在Go中被重写,重新命名为Kubernetes,并作为初始化项目捐赠。很早就很清楚

生日快乐 Istio!

你说的曾经没有我的故事 提交于 2020-12-26 05:40:37
认真考虑构建现代软件的人会在应用产品组合的某个部分使用微服务,而且还急需能够更轻松地运行微服务的工具和创新。正是这两条评述让Istio广受欢迎。 Istio是一个开源项目,1.0.0版本刚刚发布。Pivotal是这项技术的忠实粉丝,并为Istio做出了贡献,我们在各种开源项目以及我们的旗舰级商业产品中将Istio用作核心组件。 1.0.0版是一个非常重要的里程碑,促使我们反思。本文将详细介绍Istio及其解决的问题,以及Pivotal与Istio之间的紧密关系。 微服务:所有生活问题的原因和解决方案 微服务是一种复杂的模式,然而它却非常普及。其原因何在?微服务能够实现工程团队努力渴求的目标,即上线速度、可扩展性和灵活性。微服务增加的复杂性通常物有所值。 开源社区对于微服务的兴起也是贡献良多。社区里有上百个项目确保微服务采用者的工作变得更轻松。Istio用于简化微服务的连接、管理和保护,是社区里最突出的项目之一。 原因显而易见。网络连接通常是微服务最棘手的环节。毕竟,基于IP的网络架构和微服务的架构是背道而驰的。为了填补两者之间的缺口,开发人员必须自己实施服务发现、部署断路器、并使其他模式生效。他们必须添加健康检查、处理内部安全性,并实施策略控制。当然,自从NetflixOSS于2011年发布后,在Java中执行这些任务变容易了。(最近,Steeltoe对.NET.也起到了同样的作用

2020云原生调查报告:较首次调查,生产环境的容器使用量飙升300%

☆樱花仙子☆ 提交于 2020-12-22 18:36:50
从2015年Google主导成立了云原生计算基金会(CNCF)到2019年的云原生大放异彩,业内对云原生也有许多定义和预判,在2020年疫情大流行的大环境下,伴随着企业的数字转型云原生又会有怎么样的趋势呢?CNCF关于云原生的一个调查报告从一定程度上反映了技术发展的方向。以下是关于调查的总结文章。 今天,我们非常激动地发布了《2020云原生调查报告》(文末有下载方式)。该报告展示了今年第八次进行的CNCF云原生调查结果。 结果表明,在全球疫情大爆发的背景下云原生工具和技术的持续增长。自2020年5月至2020年6月我们在家里通过Zoom会议的方式发起了社区外围的一些调查。 今年的调查从大型企业中收到了强烈的响应,这表明大企业正在使用云原生。三分之二的受访者来自员工超过100人的企业,30%来自员工超过5,000人的企业。这些受访者代表了软件供应商和消费者,因为54%的受访者是终端用户组织的一部分。 就结果而言,我们今年是里程碑式的,特别是在容器的使用和容器编排方面。大约92%的受访者表示他们在生产过程中使用容器,相比2016年3月的第一次调查的23%增长了300%。与去年的84%和73%相比,这也是一个显著的同比跃升。 此外,91%的受访者使用Kubernetes,其中83%正在生产中使用。这延续了去年78%和2018年仅58%的产量使用的稳定增长。

阿里 双11 同款流控降级组件 Sentinel Go 正式 GA,助力云原生服务稳稳稳

拈花ヽ惹草 提交于 2020-12-09 18:53:50
作者 | 赵奕豪(宿何) Sentinel 开源项目负责人 来源| 阿里巴巴云原生公众号 前言 微服务的稳定性一直是开发者非常关注的话题。随着业务从单体架构向分布式架构演进以及部署方式的变化,服务之间的依赖关系变得越来越复杂,业务系统也面临着巨大的高可用挑战。 在生产环境中大家可能遇到过各种不稳定的情况,比如: 大促时瞬间洪峰流量导致系统超出最大负载,load 飙高,系统崩溃导致用户无法下单。 “黑马”热点商品击穿缓存,DB 被打垮,挤占正常流量。 调用端被不稳定第三方服务拖垮,线程池被占满,调用堆积,导致整个调用链路卡死。 这些不稳定的场景可能会导致严重后果,但很多时候我们又容易忽视这些与流量/依赖相关的高可用防护。大家可能想问:如何预防这些不稳定因素带来的影响?如何针对流量进行高可用的防护?如何保障服务“稳如磐石”?这时候我们就要请出阿里双十一同款的高可用防护中间件 —— Sentinel。在今年刚刚过去的天猫 双11 大促中,Sentinel 完美地保障了阿里成千上万服务 双11 峰值流量的稳定性,同时 Sentinel Go 版本也在近期正式宣布 GA。下面我们来一起了解下 Sentinel Go 的核心场景以及社区在云原生方面的探索。 Sentinel 介绍 Sentinel 是阿里巴巴开源的,面向分布式服务架构的流量控制组件,主要以流量为切入点,从限流、流量整形

阿里 双11 同款流控降级组件 Sentinel Go 正式 GA,助力云原生服务稳稳稳

假装没事ソ 提交于 2020-12-08 17:12:55
作者 | 赵奕豪(宿何) Sentinel 开源项目负责人 来源| 阿里巴巴云原生公众号 前言 微服务的稳定性一直是开发者非常关注的话题。随着业务从单体架构向分布式架构演进以及部署方式的变化,服务之间的依赖关系变得越来越复杂,业务系统也面临着巨大的高可用挑战。 在生产环境中大家可能遇到过各种不稳定的情况,比如: 大促时瞬间洪峰流量导致系统超出最大负载,load 飙高,系统崩溃导致用户无法下单。 “黑马”热点商品击穿缓存,DB 被打垮,挤占正常流量。 调用端被不稳定第三方服务拖垮,线程池被占满,调用堆积,导致整个调用链路卡死。 这些不稳定的场景可能会导致严重后果,但很多时候我们又容易忽视这些与流量/依赖相关的高可用防护。大家可能想问:如何预防这些不稳定因素带来的影响?如何针对流量进行高可用的防护?如何保障服务“稳如磐石”?这时候我们就要请出阿里双十一同款的高可用防护中间件 —— Sentinel。在今年刚刚过去的天猫 双11 大促中,Sentinel 完美地保障了阿里成千上万服务 双11 峰值流量的稳定性,同时 Sentinel Go 版本也在近期正式宣布 GA。下面我们来一起了解下 Sentinel Go 的核心场景以及社区在云原生方面的探索。 Sentinel 介绍 Sentinel 是阿里巴巴开源的,面向分布式服务架构的流量控制组件,主要以流量为切入点,从限流、流量整形

Service Mesh 初体验

瘦欲@ 提交于 2020-12-06 07:40:21
前言 计算机软件技术发展到现在,软件架构的演进无不朝着让开发者能够更加轻松快捷地构建大型复杂应用的方向发展。容器技术最初是为了解决运行环境的不一致问题而产生的,随着不断地发展,围绕容器技术衍生出来越来越多的新方向。 最近几年,云计算领域不断地出现很多新的软件架构模式,其中有一些很热门的概念名词如:云原生、函数计算、Serverless、ServiceMesh等等,而本文将初窥一下ServiceMesh的面纱。下面结合自己的理解尽量以通俗的话进行叙述。 背景和定义 微服务及服务治理 在微服务之前的软件开发中,往往通过一个应用的方式将所有的模块都包括进去,并一起编译、打包、部署、运维。这种方式存在很多问题,由于单个应用包含的东西太多,其中某个模块出现问题或者需要更新那么整个应用就需要重新部署。这种方式给开发和运维带来了很大的麻烦。随着应用的逐渐复杂,单个应用涉及的东西就会越来越多,慢慢地大家发现了其中很多的缺点,开始对服务进行划分,将一个大的应用按照不同的维度进行划分从而产生很多个小的应用,各应用之间会形成一个调用关系,每个小的应用由不同的开发负责,大家各自部署和运维,这样微服务就出现了。 由于微服务中各应用部署在不同的机器上,服务之间需要进行通信和协调,相比单个应用来说会麻烦很多。在同一个应用内不同方法之间的调用由于在相同的内存中,在代码编译打包时已经进行了链接

早上好,我是 Istio 1.1

☆樱花仙子☆ 提交于 2020-11-29 11:25:00
1 性能增强 虽然Istio1.0的目标是生产可用,但从去年7月份发布以来,在性能和稳定性上并不能让用户满意。社区的Performance and Scalability工作组在Istio v1.1中做了大量的努力以提高控制面和数据面的性能,其中最明显的性能增强包括: Sidecar API,减少发给proxy的配置数量以及pilot负载。 网络配置规则(Destinationrule,Virtualservie, ServiceEntry)中增加的 exportTo字段限制配置的可见范围。 Envoy默认收集的统计数据大量减少。 给mixer增加load-shedding功能,防止overload。 提升envoy和mixer之间的交互协议。 可配置并发线程数,提高吞吐量。 可配置filter来约束mixer遥测数据。 从对Istio 1.1的测试数据来看,这部分工作取得了显著的效果。 1.1控制面性能表现 Pilot的CPU和内存使用受网格内的配置和系统状态的影响,例如负载变化速率,配置变化速率,连接到Pilot的proxy的数量等。可以通过增加Pilot的实例数来减少配置分发处理的时间,提高性能。 在网格内有1000个服务,2000 个sidecars,每秒1000请求下的表现: 单Pilot 实例使用 1 vCPU 和1.5 GB 的内存。 istio

idou老师教你学Istio :5分钟简析Istio异常检测

最后都变了- 提交于 2020-11-27 06:57:26
异常检测 异常检测和踢出异常主机是一个动态检查上游主机是否正常工作,对不健康主机进行移除的过程。异常检测是一种被动健康检查,根据返回状态码来判断是否满足移除条件,最后将主机移除,首先我们来了解下驱逐算法。 从上图中,可以看出来主机异常时首先会检查是不是有主机已经被移除了,如果没有被移除,那么直接移除这个不健康的主机,如果有主机被移除,则会率先检测是否超过移除阈值(maxEjectionPercent),如果超过这个阈值,则不会有任何行为发生,如果没超过这个阈值,那么则会将该主机移除一段时间,这段时间后则会将主机放入负载均衡池中供下游主机选择并分发请求。 什么是Panic_Threshold? 在负载均衡的过程中,Envoy只会考虑健康的上游主机。然而,如果健康主机的比例过低,Envoy将会无视健康状态分发所有的请求,这就是所谓的Panic Threshold,这个阈值默认为50%。这个设计的目的是防止大规模主机崩溃导致整个集群负载过高。Panic阈值需要和优先级一起配合工作。如果在某个优先级下健康主机数少了,Envoy将会将一些流量转移到低优先级的主机。如果在低优先级主机中,Envoy发现足够数量的的健康主机。Envoy将会无视Panic阈值。如果各个优先级健康程度都是100%。Envoy将忽略panic阈值而根据既定负载均衡算法路由流量。如果整体健康程度低100%