灰度发布(又名金丝雀发布)是指在黑与白之间,能够平滑过渡的一种发布方式。在其上可以进行A/B testing,即让一部分用户继续用产品特性A,一部分用户开始用产品特性B,如果用户对B没有什么反对意见,那么逐步扩大范围,把所有用户都迁移到B上面来。灰度发布可以保证整体系统的稳定,在初始灰度的时候就可以发现、调整问题,以保证其影响度。
分布式系统架构下,服务发布是一件很麻烦的事情,特别是在构建自动发布流程和灰度测试的策略两个核心方面。通常情况下如果不涉及数据层面的灰度流程,服务可以灰度上线,或者滚动上线,这两种方式很常用;如果涉及到数据灰度,则可能需要中间服务做不同版本数据之间追平,或者停机维护一次性处理好数据和上线问题,不过后面这种方式风险较大。
互联网产品需要快速迭代开发上线,又要保证质量,保证刚上线的系统,一旦出现问题可以很快控制影响面,就需要设计一套灰度发布系统。
作者 | 小杨互联网 来源 | https://www.toutiao.com/i6910008843955192323 灰度发布的定义 互联网产品需要快速迭代开发上线,又要保证质量,保证刚上线的系统,一旦出现问题可以很快控制影响面,就需要设计一套灰度发布系统。 灰度发布系统的作用,可以根据配置,将用户的流量导到新上线的系统上,来快速验证新的功能,而一旦出现问题,也可以马上的修复,简单的说,就是一套A/B Test系统。 灰度发布允许带着bug上线,只要bug不是致命的,当然这个bug是不知道的情况下,如
随着公司业务的不断发展壮大,需要一套稳妥的发布方案,如果发布的新版本服务有问题能及时撤回,不至于造成太大范围的影响;
业务上的配置,功能开关,服务治理上对弱依赖的降级,甚至数据库的密码等,都可能用到动态配置中心。
开发环境:开发环境是程序员专门用于开发的服务器,配置可以比较随意,为了开发调试方便,一般打开全部错误报告和测试工具,是最基础的环境1。开发环境中研发人员有时会根据自己需要调整系统参数,如果release的时候仅仅交付了代码并没有指明系统参数修改,这时很容易出问题。
开发测试环境通常我们使用染色来区分不同流量,进入不同的开发测试联调分支组成的染色场。
公司的这个产品需要做性能测试。得知道哪些功能需要先做性能测试,哪些功能后做性能测试。
这个好用,可以对部分实例进行灰度发布,比如对部分服务器的实例进行测试,观察一段时间没问题,再正式发布,就是体验服。
在项目迭代的过程中,不可避免需要进行项目上线。上线对应着部署或者重新部署,部署对应着修改,修改则意味着风险。
导语 2022腾讯全球数字生态大会已圆满落幕,大会以“数实创新、产业共进”为主题,聚焦数实融合,探索以全真互联的数字技术助力实体经济高质量发展。大会设有29个产品技术主题专场、18个行业主题专场和6个生态主题专场,各业务负责人与客户、合作伙伴共同总结经验、凝结共识,推动数实融合新发展。 今年6月,腾讯宣布内部海量自研业务实现全面上云,成为国内最大规模的云原生实践,累计节省IT成本超过30亿元,充分显示腾讯云的产品、技术和综合服务能力。 云原生技术在云计算 PaaS 的应用已经迈入深水区,腾讯云微服务和中间件
根据2018年的DevOps发展报告来看,目前的DevOps发展速度非常之快,已经逐渐成为企业运维的标准方案.DevOps的核心就是敏捷和高效,敏捷和Scrum开发技术曾被认为是最好的技术. 既然公司用到了CI/CD肯定就肯定避免不了持续部署,所以我们就需要考虑一套适合我们的发布方式,这个时候我们就需要了解一下这几个发布方式到底是什么意思,有很么好处,他们之间的差别在哪个地方.
2023腾讯全球数字生态大会已于9月7-8日完美落幕,40+专场活动展示了腾讯最新的前沿技术、核心产品、解决方案。
上一篇《使用ML.NET模型生成器来完成图片性别识别》发布后,很多朋友希望得到源码,这里附上地址:
目前有很多用于部署的技术,有的简单,有的复杂;有的得停机,有的不需要停机即可完成部署。本文的目的就是将目前常用的布署方案做一个总结。
Apollo (阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性,适用于微服务配置管理场景。
过去的10年里,很多大公司都在使用蓝绿部署,安全、可靠是这种部署方式的特点。蓝绿部署虽然算不上”Sliver Bullet“,但确实很实用。在有关于“微服务”、“DevOps”、“Cloud-native”的讨论中,蓝绿部署、A/B测试、灰度发布,这三种部署方式往往同时出镜。 那么问题来了,蓝绿部署、A/B测试、灰度发布,这三者之间究竟有何不同? 蓝绿部署 Martin Flower曾在文章中阐述了蓝绿部署的整体要点,建议大家看看。 基本上,蓝绿部署是一种以可预测的方式发布应用的技术,目的是减少发布过程中服
如果让你主导一款千万、甚至亿级用户产品的功能迭代,你会怎么做?你需要面对的挑战可能来自于:
********本文是BLUES【公众号ID:bluemidou】向老王约稿,特授权blues独家首发,现转载如此,哈哈********
作者简介:王龙,招商银行数据中心MySQL资深架构师,将MySQL引入招商银行,并从无到有建设MySQL生态,解决了MySQL在银行领域使用的诸多问题。
目前有很多用于部署的技术,有的简单,有的复杂,有的得停机,有的不需要停机即可完成部署。本文将对目前常用的部署方案做一个简单的总结。
在我们去阅读Nacos源码之前,我们得先了解Nacos是干嘛的,以及怎么用,这样有利于我们更容易去理解源码;
墨墨导读:MySQL如何实现高性能?以下内容是结合其他技术同仁的总结和自我实践整理的20个开源数据库设计原则,分享至此,希望对大家有帮助。
日前,为更好地满足亚信科技客户对于数据管理的需求,提高通用型数据库的产品服务能力与业务拓展能力,亚信科技分布式数据库AntDB发布V7.0版本产品,助力运营商核心系统实现全方位的自主可控与业务系统的平稳上线。面向未来,国产数据库发展仍任重道远,分布式数据库也将在这一过程中扮演重要角色,分析、讨论国产分布式数据库发展趋势与难点,不仅对AntDB数据库的发展,也对国产数据库的发展具有一定的参考和借鉴意义。
欢迎使用微信云托管,本文将带领你通过云托管创建一个服务,并在小程序端调用此服务(以 Golang 为例),本系列会继续更新 PHP 部署教程(当然,你也可以使用云托管的一键部署功能,基于 golang 语言搭建 HTTP服务端实例)。
作者王炜,CODING DevOps 后端开发工程师多年研发经验,云原生、DevOps、Kubernetes 资深爱好者,Servicemesher 服务网格中文社区成员。获得 Kubernetes CKA、CKAD 认证。 1. 开篇 如果让你主导一款千万、甚至亿级用户产品的功能迭代,你会怎么做?你需要面对的挑战可能来自于: 商业战略的变化带来新的产品诉求,而产品的任何改动哪怕仅是界面调整,都将面临无数存量用户的挑战 这时候,作为产品负责人,你会选择稳定压倒一切?还是自我革新,继续追求用户和市场的价值呢?
全链路灰度目前是一个比较热门的技术栈,几乎是服务治理领域中必备的,所以咱们必须要搞清楚它,这样才能为自己的技术硬实力去添砖加瓦。假如现在让你去做好全链路灰度,你会怎么去做了,如果面试官这样去问你,你该怎么去回答呢?建议大家可以从如下三个方面去回答:
上回我们说到Nacos的注册中心,我们讲了注册中心的一致性协议,订阅和注册的原理,有兴趣的可以看一下上一篇文章:你应该了解的Nacos注册中心。在Nacos中还有一个功能特别重要那就是配置中心,在这里先不具体介绍配置中心是什么,先来忆苦思甜一波。
随着订单数量的增多,以及大促时需要扛住比平时多N倍的流量,单库单表的瓶颈日益显现。
转一篇文章,原文来自:总结一下:运维工程师面试的经历及面试相关问题(会持续更新)-DevOps(甘兵)-51CTO博客。面经很好,建议最近有求职需求的小伙伴仔细看看。
Apollo 配置中心产生背景 大多情况下程序随着功能的复杂,程序的配置也会增多:包括各种功能的开关、参数的配置、服务器的地址配置等等,同时开发人员对程序配置的期望值也越来越高:配置修改后实时生效,灰度发布,分环境、分集群管理配置,完善的权限、审核机制…… 在这样的大环境下,传统的通过配置文件、数据库等方式已经越来越无法满足开发人员对配置管理的需求。Apollo 配置中心应运而生! Apollo(阿波罗)是携程框架部门研发的开源配置管理中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送
笔者其实没有想到去面试,只是在智联上更新了一下简历,就陆陆续续接到很多猎头的邮件和电话,闲话少说,下面就分享给大家Linuxer的面试经历:
在有关微服务、DevOps、Cloud-native、系统部署等的讨论中,蓝绿部署、A/B 测试、灰度发布、滚动发布、红黑部署等概念经常被提到,它们有什么区别呢?通过搜索相关资料,做一个简单的辨析,如下: 一、蓝绿部署(Blue/Green Deployment) 过去的 10 年里,很多公司都在使用蓝绿部署(发布)来实现热部署,这种部署方式具有安全、可靠的特点。蓝绿部署虽然算不上“ Sliver Bullet”,但确实很实用。 蓝绿部署是最常见的一种0 downtime部署的方式,是一种以可预测的方式发布应用的技术,目的是减少发布过程中服务停止的时间。蓝绿部署原理上很简单,就是通过冗余来解决问题。通常生产环境需要两组配置(蓝绿配置),一组是active的生产环境的配置(绿配置),一组是inactive的配置(蓝绿配置)。用户访问的时候,只会让用户访问active的服务器集群。在绿色环境(active)运行当前生产环境中的应用,也就是旧版本应用version1。当你想要升级到version2 ,在蓝色环境(inactive)中进行操作,即部署新版本应用,并进行测试。如果测试没问题,就可以把负载均衡器/反向代理/路由指向蓝色环境了。随后需要监测新版本应用,也就是version2 是否有故障和异常。如果运行良好,就可以删除version1 使用的资源。如果运行出现了问题,可以通过负载均衡器指向快速回滚到绿色环境。 蓝绿部署的优点: 这种方式的好处在你可以始终很放心的去部署inactive环境,如果出错并不影响生产环境的服务,如果切换后出现问题,也可以在非常短的时间内把再做一次切换,就完成了回滚。而且同时在线的只有一个版本。蓝绿部署无需停机,并且风险较小。 (1) 部署版本1的应用(一开始的状态),所有外部请求的流量都打到这个版本上。 (2) 部署版本2的应用,版本2的代码与版本1不同(新功能、Bug修复等)。 (3) 将流量从版本1切换到版本2。 (4) 如版本2测试正常,就删除版本1正在使用的资源(例如实例),从此正式用版本2。 从过程不难发现,在部署的过程中,应用始终在线。并且,新版本上线的过程中,并没有修改老版本的任何内容,在部署期间,老版本的状态不受影响。这样风险很小,并且,只要老版本的资源不被删除,理论上,可以在任何时间回滚到老版本。 蓝绿部署的弱点: 使用蓝绿部署需要注意的一些细节包括: 1、当切换到蓝色环境时,需要妥当处理未完成的业务和新的业务。如果数据库后端无法处理,会是一个比较麻烦的问题。 2、有可能会出现需要同时处理“微服务架构应用”和“传统架构应用”的情况,如果在蓝绿部署中协调不好这两者,还是有可能导致服务停止; 3、需要提前考虑数据库与应用部署同步迁移/回滚的问题。 4、蓝绿部署需要有基础设施支持。 5、在非隔离基础架构( VM 、 Docker 等)上执行蓝绿部署,蓝色环境和绿色环境有被摧毁的风险。 6、另外,这种方式不好的地方还在于冗余产生的额外维护、配置的成本,以及服务器本身运行的开销。 蓝绿部署适用的场景: 1、不停止老版本,额外搞一套新版本,等测试发现新版本OK后,删除老版本。 2、蓝绿发布是一种用于升级与更新的发布策略,部署的最小维度是容器,而发布的最小维度是应用。 3、蓝绿发布对于增量升级有比较好的支持,但是对于涉及数据表结构变更等等不可逆转的升级,并不完全合适用蓝绿发布来实现,需要结合一些业务的逻辑以及数据迁移与回滚的策略才可以完全满足需求。
欢迎使用微信云托管,本文将带领你通过云托管创建一个服务,并在小程序和 WEB 端调用此服务(以 Python 为例),本系列会继续更新 PHP、Golang 等其他语言的部署教程(当然,你也可以使用云托管的一键部署功能,基于 Python 语言 Django 或 Flask 框架部署一个服务)。
如果对配置中心完全没有过了解的,可以先移步去了解一下常用的开源配置中心组件,如: SpringCloud Config和Nacos等。
小亚,互联网金融公司应用运维主管,参与运维工作九年,涉及领域包含航空、金融、广告等。近两年主要负责金融业务运维的线上业务发布、维护等工作。
编辑手记: 在最近举行的Oracle数据库技术大会上,Andy Mendelsohn 透漏了关于Oracle Database 产品发布计划的变更。自2018年起,Oracle数据库的版本号将直接跳升到18。 Oracle Database的下一个版本将是 Oracle 18 。 目的 为了更快的、通过每年的版本发布将新特性带给用户,小步快跑、灰度发布,可以尽量通过小的变更,降低用户对于版本升级的恐惧感。 由此又可以将用户更紧密的团结在Oracle数据库产品周围,通过持续不断的升级来保持用户和Oracle的
携程框架架构研发部技术专家,开源配置中心Apollo作者。2016年初加入携程,主要负责中间件产品的相关研发工作。 毕业于复旦大学软件工程系,曾就职于大众点评,担任后台系统的技术负责人。
随着微服务的流行,应用和机器数量急剧增长,程序配置也愈加繁杂:各种功能的开关、参数的配置、服务器的地址等等。 同时,我们对程序配置的期望值也越来越高:配置修改后实时生效,灰度发布,分环境、分集群管理,完善的权限、审核机制等等。
原题:Low-risk Monolith to Microservice Evolution Part I
灰度发布(又名金丝雀发布)是指在黑与白之间,能够平滑过渡的一种发布方式。在其上可以进行A/B testing,即让一部分用户继续用产品特性A,一部分用户开始用产品特性B,如果用户对B没有什么反对意见,那么逐步扩大范围,把所有用户都迁移到B 上面来。灰度发布可以保证整体系统的稳定,在初始灰度的时候就可以发现、调整问题,以保证其影响度。
华润数科城市与公共事业部门下属项目组近期完成了一个地产行业遗留复杂业务系统的微服务化改造,目前项目已经成功上线,系统切换过程中实现了原单体系统在线业务数据分批无缝无损迁移到微服务架构新系统,确保了业务平滑过渡。本文分享我们在此次数据迁移过程中的思考、探索和实践总结,希望能够为有类似需求的朋友们提供一些经验借鉴。
欢迎使用微信云托管,本文将带领你通过云托管创建一个服务,并在小程序和 WEB 端调用此服务(以 Java 为例),本系列会继续更新 PHP、Golang 等其他语言的部署教程(当然,你也可以使用云托管的一键部署功能,基于 Java 语言 Spring Boot 框架部署一个服务)。
这是前两天腾讯一技术总监来华科做的一个演讲, 今天才整理出来. 因为里面有些内容好逗, 为了免除给大牛带来烦恼, 就不署名了. 都是纯纯的干货, 都是亲身经历获得的经验, 十分感谢这位大牛. 为了穿插成文, 里面有些我自己的想法, 如有错误, 谢谢指出, 和大牛无关. 大纲 提升系统性能主要从提高CPU利用率, 和减小IO入手. 提高CPU利用率 减小IO 异步/协程 机械硬盘顺序写 高并发epoll 内存共享 无锁化 cache失效过载 作者举了一个异步的例子, 是关于获取时间的. 获取时间涉及到内核
现在的你,每天还是等到凌晨上线吗?反正最近的我不在凌晨上线,我也不区分业务的低谷和高峰,一律直接上线,我靠的不是运气,也不是胆量,而是有一套成熟的机制再给我们做后盾,看到这里,你可能认为我在吹牛皮,没事,多点耐心,且继续阅读下去。
领取专属 10元无门槛券
手把手带您无忧上云