Author Archive | douba

也说说蓝绿、金丝雀和ABTesting

前言

关于灰度发布描述网上说法非常多,蓝绿、金丝雀、ABTesting分别是啥,怎么搞的都有各自的说法,有些不太一致。笔者基于自己的实践中描述下。本来也就是一种工程上的实践的风格,也不是什么非常严格理论定义,所以要区分的非常清楚也没有必要。其实只要搞清楚发明这几种实践是干什么用的,侧重点分别是什么即可。

蓝绿

蓝绿发布的主要思路是在新版本在另外一套独立的资源上上线,新版本起来后将所有的流量从老版本切到新版本上来。当新版本工作正常,则删除老版本;当新版本工作有问题,则快速能切回到老版本。因此蓝绿发布看上是一种热部署的方式,目的是减少发布过程中的服务停止时间。

可以看到因为两个版本都是可用,其升级切换和回退速度非常快。为了达到这种快速切换复出的代价是要搞冗余的资源,即2倍的原有资源,分别部署新老版本。此外一个问题是全量的切流量,如果新版本有问题,则所有的用户将受到影响。

         

因为蓝绿是基于[......]

阅读全文

Tags: ,

Comments { 1 }

详析Istio最新v1alpha3 流量管理规则

前言

isto提供了一种简单的语法来描述如何进行流量管理。可以给服务配置熔断、超时、重试等规则,也可以配置规则来切分流量从而实现金丝雀发布、A/B测试等发布功能。一个典型场景如官方文档中的case,将一定比例的流量或者满足一定条件的请求的流量切分到一个特定版本上。

Istio的route rule从v1alpha1v1alpha3 变化特别大,可以看出对规则设计上完全进行了重构。看上去v1alpha3功能上更强了,可以预见未来1.0后alpha3风格的语法因为提供了更强的表达能力,将逐步取代alpha1成为标准语法。但是初次使用或者中alpha1直接切过来一般还会有些不适应。因为较之alpha1,v1alpha3使用上还是有点复杂。导致原来用v1alpha1配置的规则场景在v1alpha3下不是很容易的配置出来。因此本文一个典型例子来说明下v1alpha3规则的使用上的细[......]

阅读全文

Tags: , , ,

Comments { 2 }

古城贼文化

thief吃完晚饭与淋波&宝强在园区周边溜达一圈,不知怎么的扯到了小偷和被盗这个悲催的话题。三个人各自讲了自己经历的这方面的糗事,居然洋洋洒洒的扯了咕咚3000步。发现无论是数量还是质量还是精彩指数都完爆那两位,而这些素材都得益于在家乡古城的那几年经历,然后晚上回来虽然很晚了还是把这些归纳整理了下。

lb记忆最深刻的是在解放路上图书大厦的那次遭遇。那会儿刚从东北的铁路工地上回到家乡的这个城市,好久找不到工作,最后在和平门里一个老民居的公司里跑业务送东西。无意中撞到附近解放路上图书大厦里,后来就每天上午在这里看半天书,下午接着去跑业务。到现在能从搞工地的工程跨界到另外一个工程,也是这阵子开的头。和那位君子(后文中都君子,是简称,不是尊称。灵感于小时候小人书里有梁上君子的说法)的偶遇也就发生在书城下面的存包处。那天正在存包时突的感觉裤兜里有点动静,伸手一看,一个大镊子正夹手机玩外拽。有点惊慌,[......]

阅读全文

Tags:

Comments { 0 }

稀松!对不住杭州,对不住G20

注:这是第一篇用手机敲出来的文字,每天下午五点半开始在医院挂那瓶红色肺炎专用药的那四个小时。

熟悉的时间又来到这个最近开始熟悉的地方。这两天杭州g20,今天周末,临出门看了眼电视里习主席G20开幕布上的演讲。

dav

右手上扎的针眼太有点多,今天换左手。腾出右手来闲着想记点东西。

这周过得和平时很不同。和很多生活在这个城市的人感觉一样,路上很空,街道人很少。连输液这边的护士都说这里现在的人都比平日少了好几成。与现实周围形成反差的是朋友圈里很热闹,名种晒图,大江南北。

对不住大家,对不住这个盛世的气氛。这周一个小人物过得异常的。。。稀松!

低烧了几乎整个八月,在月底了没扛住还是来到了这个地方。

有多稀松!

开始一天,单位里,翘班跑医院抽血拍片,幸亏和咱单位在一条街上,打车几分钟就过来了,抽血~回单位~拍片~回单位~取结果。稀松,折腾,狼狈。然后一个多[......]

阅读全文

Tags: , ,

Comments { 0 }

Netflix源码解析之Ribbon:Ribbon的区域亲和性(Zone Affinity)

前面文章介绍了通过ribbon集成eurekaclient来获取注册的服务列表。
其实仔细观察DynamicServerListLoadBalancer更新server的方法updateListOfServers会发现,在动态的从erueka 获取注册服务器后,还会用一个filter对得到的server列表再进行过滤。这个filter从配置获取,如果没有,默认是ZoneAffinityServerListFilter。根据配置会选择和服务消费者在一个zone的服务(术语区域感知,Zone Affinity),这样一般可以降低延迟。

 

检查server的zone属性,只是选择本区域的server。

根据配置会选择和服务消费者在一个zo[......]

阅读全文

Tags: , , ,

Comments { 0 }