issueBlog
issueBlog copied to clipboard
IT网站收藏
1. 为什么要灰度发布 互联网服务变动频繁,发布周期短。速度与质量总是难以双全。 灰度发布能降低发布风险,减少影响范围。 降低对测试的依赖,减少线下自测的数据构造成本。 方便集中监控日志,全量发布由于各层负载均衡的作用,很难跟踪一条完整的调用链路。 可以灰度测试帐号,测试账户通过之后再灰度真实用户帐号,进一步降低发布的风险和影响。 方便回滚。 不能靠灰度发布解决的问题 需要强调的是:上文所说的“可以容忍的影响”必须是可恢复的,比如API无法调用一段时间,但是修复之后,就可以成功调用。而永久性地丢失或者破坏用户数据(比如商品信息、订单信息等),则是不能容忍的。因此,互联网企业的架构师有责任通过设计完善的后备措施(比如用户数据的定期备份、写操作的业务流水日志等),在生产系统错乱导致丢失用户数据的情况下,仍能够通过人工干预,根据历史记录(备份数据、流水日志等),把丢失的用户数据修复至不久之前(比如一小时前至一周前)的状态。 TIPS 先灰度测试帐号的灰度策略,可以降低破坏或者丢失真实用户的数据的风险。 1. 期望达到什么效果 不管是那种变更,我们都希望特定的请求能够路由到我们的变更版本(灰度版本),以便观察和验证。 2. 灰度策略 其实就是什么的请求应该路由到我们的灰度版本(灰度机器)上来。这个往往是业务强相关的。比如对于API来说,一般有如下几个需求: 特定用户(比如测试帐号) 特定的App(比如测试app或者合作App) 特定的模块、接口(只有某些接口需要灰度,这种一般是API Container的修改,拿一些不是很重要的API做灰度测试。) 特定的机器(某些请求IP转发到灰度机) 4. 灰度方案探讨 方案一、代码级别通过对约定好的flag判断,动态的进行新老切换——Amazon的做法 实现: 在代码中埋开关,做if-else判断,对于需要灰度的机器,设置开关为on,否则为off。每次版本发布都是有两个版本。 优点 快速回滚,不需要重新发布和重启系统。...
https://github.com/spring-projects/spring-loaded https://docs.spring.io/spring-boot/docs/current/reference/html/howto-hotswapping.html https://github.com/akhikhl/gretty http://akhikhl.github.io/gretty-doc/index.html
# 不需要翻墙 http://blog.florian-hopf.de http://www.jcombat.com/ https://www.thekua.com/atwork/ http://codurance.com/ http://tutsplus.com https://www.class-central.com http://www.mastertheintegration.com http://www.wegtam.net http://www.catify.com/blog/ http://www.deadcoderising.com http://www.raymondcamden.com http://www.iron.io/blog/ http://blog.codefx.org http://www.codejava.net/java-core http://www.drdobbs.com/jvm http://tutsplus.com/ http://blog.cloudera.com http://blog.novoj.net/ blog.ragozin.info http://www.informit.com/ http://www.softwaresecured.com/blog/ https://www.mutuallyhuman.com/blog/ http://www.axiomatics.com/blog.html http://dwaves.de/ http://blog.sequenceiq.com/archives/ http://www.theserverside.com/ http://blog.dzhuvinov.com/ http://mariuszprzydatek.com/...
http://www.runoob.com/mongodb/mongodb-tutorial.html http://www.mongoing.com/ http://openmymind.net/mongodb.pdf ### 工具 http://3t.io/ MongoChef http://app.robomongo.org/ Robomongo
### 在线IDE http://swiftstub.com/ --- http://www.infoq.com/cn/news/2015/12/ios-weekly-swift-opensource https://github.com/apple/swift http://www.raywenderlich.com
https://github.com/ebayopensource/turmeric-distributions https://github.com/ebayopensource/turmeric-runtime https://github.com/eBay/fabio https://github.com/twitter/finagle https://github.com/itstamen/rop http://security.ctocio.com.cn/securitycomment/385/8082385.shtml 轮询调度算法(Round-Robin Scheduling) http://kb.linuxvirtualserver.org/wiki/Weighted_Round-Robin_Scheduling http://www.cnblogs.com/huligong1234/p/3819979.html
http://html5ify.com/fks/ http://www.androiddevtools.cn/ http://www.android-studio.org/ http://react-components.com/ http://blog.jetbrains.com/webstorm/ http://davidwalsh.name/ http://eslint.org/ https://github.com/lukehoban/es6features http://babeljs.io/docs/learn-es2015/ http://demo.reactstarterkit.com/ http://www.yefengbar.com/ http://ejohn.org/category/blog/ https://www.javascripting.com/ JS类库 jster.net http://ejohn.org/category/blog/ http://wiki.jikexueyuan.com/project/react-native/ http://www.webdesigndegreecenter.org/ http://www.angularjsbook.com/ http://blog.mgechev.com/posts/ http://blog.javascripting.com/ - [http://blog.ijasoneverett.com/](http://blog.ijasoneverett.com/) - [http://juristr.com/blog/](http://juristr.com/blog/) - [https://www.airpair.com/posts](https://www.airpair.com/posts) - [http://ued.taobao.org/blog/](http://ued.taobao.org/blog/)淘宝 -...
- [http://gethue.com/blog/](http://gethue.com/blog/) - [https://www.otexts.org/](https://www.otexts.org/) - [http://blog.sematext.com/](http://blog.sematext.com/) - [http://statweb.stanford.edu/~tibs/ElemStatLearn/](http://statweb.stanford.edu/~tibs/ElemStatLearn/) - [http://www.techrepublic.com/topic/big-data/](http://www.techrepublic.com/topic/big-data/) - [http://blog.opendataplatform.org/](http://blog.opendataplatform.org/) - [http://www.techrepublic.com/topic/](http://www.techrepublic.com/topic/) - [https://tsicilian.wordpress.com](https://tsicilian.wordpress.com) - [http://engineering.linkedin.com/](http://engineering.linkedin.com/) - [http://queue.acm.org/](http://queue.acm.org/) - [http://highscalability.com/all-posts/](http://highscalability.com/all-posts/)系统架构不错 - [https://store.continuum.io/cshop/anaconda/](https://store.continuum.io/cshop/anaconda/) - [http://www.jdon.com/](http://www.jdon.com/)解道-不错哦 - [http://zh.hortonworks.com/hadoop/kafka/](http://zh.hortonworks.com/hadoop/kafka/) - [http://blog.infochimps.com/](http://blog.infochimps.com/)...
- [http://www.donews.com/](http://www.donews.com/) - [http://www.blogcn.com/](http://www.blogcn.com/) - [http://www.bokee.com/](http://www.bokee.com/) - [http://www.colachan.com/](http://www.colachan.com/) - [https://medium.com/@eklimcz](https://medium.com/@eklimcz) - [http://get.jobdeer.com/?c=default](http://get.jobdeer.com/?c=default) - [http://www.lifehack.org/(http://www.lifehack.org/) 生活黑客 - [http://www.egouz.com/](http://www.egouz.com/) 谁的好网站啊,收集了那么多国家的各方面的网址 - [http://edition.cnn.com/](http://edition.cnn.com/) - [http://greatist.com/](http://greatist.com/) - [http://sleepfoundation.org/](http://sleepfoundation.org/) - [http://www.mercola.com/](http://www.mercola.com/) - [http://www.drweil.com/](http://www.drweil.com/) - [http://www.acupressure.com/](http://www.acupressure.com/)...
- [http://www.postgresqltutorial.com/](http://www.postgresqltutorial.com/) - [http://blog.163.com/digoal@126/](http://blog.163.com/digoal@126/) - [http://invariantproperties.com/](http://invariantproperties.com/) - [http://invariantproperties.com/](http://invariantproperties.com/) - [http://www.postgresonline.com/](http://www.postgresonline.com/)