当前位置:首页 > 科技  > 软件

如何正确使用上线部署,泳道、预发布到底如何理解?

来源: 责编: 时间:2024-07-03 10:07:32 234观看
导读一、背景如今互联网,随着业务需求迭代快速,同一个服务可能存在多个同时开发和测试的功能,容易发生资源抢占分支互相冲突影响的问题,降低开发测试效率。同时微服务架构下,一个功能可能需要依赖多个服务。在测试其中一个服务

一、背景

如今互联网,随着业务需求迭代快速,同一个服务可能存在多个同时开发和测试的功能,容易发生资源抢占分支互相冲突影响的问题,降低开发测试效率。BfO28资讯网——每日最新资讯28at.com

同时微服务架构下,一个功能可能需要依赖多个服务。在测试其中一个服务的改动时,如果依赖的服务发生了改动或者故障,也会影响这个功能的测试。BfO28资讯网——每日最新资讯28at.com

......BfO28资讯网——每日最新资讯28at.com

以上种种问题情况,都会导致服务从测试到线上正式环境的环境差异性较大。BfO28资讯网——每日最新资讯28at.com

规范上线部署流程,通过对环境的隔离来剥离耦合型风险,便于问题暴露及快速解决。BfO28资讯网——每日最新资讯28at.com

图片图片BfO28资讯网——每日最新资讯28at.com

二、预发布环境

2.1 介绍

BfO28资讯网——每日最新资讯28at.com

预发布环境 Staging,即线上环境、正式生产环境。BfO28资讯网——每日最新资讯28at.com

为避免因为测试环境和线上环境的差异性等带来的缺陷漏测而设立的一套环境。其配置等基本和线上一致,只是预发布环境web服务器不在线上集成服务器范围之内,为单独的一台机器。BfO28资讯网——每日最新资讯28at.com

BfO28资讯网——每日最新资讯28at.com

预发布环境 也算是线上/正式生产环境,只是其具有特殊的隔离特性(包括网络/数据/用户/行为等),不能被线上用户访问。BfO28资讯网——每日最新资讯28at.com

2.2 预发布环境 vs 灰度环境


BfO28资讯网——每日最新资讯28at.com

预发布环境 BfO28资讯网——每日最新资讯28at.com

灰度环境BfO28资讯网——每日最新资讯28at.com

目标BfO28资讯网——每日最新资讯28at.com

正式发布之前进行最后的测试和准备工作,确保产品稳定可靠BfO28资讯网——每日最新资讯28at.com

在产品正式发布之前对用户进行试用,收集反馈和观察市场反应BfO28资讯网——每日最新资讯28at.com

范围BfO28资讯网——每日最新资讯28at.com

涉及整个产品,所有功能和特性都会进行全面测试BfO28资讯网——每日最新资讯28at.com

仅涉及一小部分用户,为了控制风险和规模可控BfO28资讯网——每日最新资讯28at.com

时间点BfO28资讯网——每日最新资讯28at.com

预发布通常在正式发布之前的最后阶段进行,通常会有一个明确的时间表BfO28资讯网——每日最新资讯28at.com

灰度发布在预发布之后,但在正式发布之前的任何时间进行,其持续时间可以根据反馈和调整的需要而定BfO28资讯网——每日最新资讯28at.com

网络BfO28资讯网——每日最新资讯28at.com

与生产隔离BfO28资讯网——每日最新资讯28at.com

与生产一致BfO28资讯网——每日最新资讯28at.com

隔离性BfO28资讯网——每日最新资讯28at.com

真实用户无法访问BfO28资讯网——每日最新资讯28at.com

真实用户可访问BfO28资讯网——每日最新资讯28at.com

2.3 变更操作

BfO28资讯网——每日最新资讯28at.com

BfO28资讯网——每日最新资讯28at.com

Q:如果新版本程序需要更改表结构等(eg. 加个表字段),那么,部署到预发布环境时也需要更改表字段,这个可能会影响线上环境程序代码的运行,如何解决?BfO28资讯网——每日最新资讯28at.com

BfO28资讯网——每日最新资讯28at.com

BfO28资讯网——每日最新资讯28at.com

图片图片BfO28资讯网——每日最新资讯28at.com

1)把预发布环境使用的数据库切换为测试环境使用的数据库;BfO28资讯网——每日最新资讯28at.com

2)根据实际部署过程,如果有必要,可有针对性的测试下数据库的变更是否会影响线上当前代码程序的运行;BfO28资讯网——每日最新资讯28at.com

3)把新代码部署到预发布环境,测试程序是否正常运行;BfO28资讯网——每日最新资讯28at.com

4)预发布测试完毕,如果没问题,先上线数据库(即在正式环境执行对应的数据库变更操作);BfO28资讯网——每日最新资讯28at.com

5)把预发布环境连接的数据库切换为线上环境使用的数据库,再次进行预发布环境的测试;BfO28资讯网——每日最新资讯28at.com

6)如果预发布环境测试通过,则把预发布环境的代码部署到线上生产环境。BfO28资讯网——每日最新资讯28at.com

三、多泳道部署

3.1 介绍

多泳道部署(Multi-lane Deployment)是一种部署策略。BfO28资讯网——每日最新资讯28at.com

当指定某泳道发布服务时,发布系统会为该服务的实例打上相应的泳道标记,服务注册和发现模块就能知道同一服务的不同实例所属的泳道。BfO28资讯网——每日最新资讯28at.com

BfO28资讯网——每日最新资讯28at.com

图片图片BfO28资讯网——每日最新资讯28at.com

所谓泳道,可以理解为多个并行且相互隔离的调用链,彼此调用互不影响,就如同泳池里的泳道一样。这种策略可以提高系统的可用性和容错性,因为如果一个泳道出现问题,其他泳道仍然可以正常运行。BfO28资讯网——每日最新资讯28at.com

除了创建出来的泳道之外,还会存有一条默认的主干道,为各个服务提供默认实例,可以将其理解为常规的、常备的测试环境。除了创建的泳道外,还会存在一条默认的主干道,提供各个服务的默认实例,可以理解为常规、常备的测试环境。BfO28资讯网——每日最新资讯28at.com

BfO28资讯网——每日最新资讯28at.com

3.2 端到端的统一

1)在服务 A 需对服务 B 进行访问之时,服务 A 会率先于服务发现模块当中获取服务 B 实例的地址。鉴于服务 A 在请求中添加了 t2 泳道的标识,此时服务发现模块将会从服务 B 处于 t2 泳道的实例之中选取其一进行返回,随后服务 A 便可直接对相应实例予以访问。BfO28资讯网——每日最新资讯28at.com

2)移动端和 web 端团队需要配合做相应的改造。测试时,移动端和 web 端的测试人员能够自行切换至指定泳道,切换完毕后,所有发送至服务端的请求都会带上相应的泳道标记,这样泳道测试就实现了端到端统一。BfO28资讯网——每日最新资讯28at.com

图片图片BfO28资讯网——每日最新资讯28at.com

泳道 主要解决的问题:BfO28资讯网——每日最新资讯28at.com

  • 解决资源抢占,提高研发效率
  • 保证测试环境的稳定性

BfO28资讯网——每日最新资讯28at.com

3.3 实现思路

实现多泳道部署,主要思路包括以下几点:BfO28资讯网——每日最新资讯28at.com

1、环境准备BfO28资讯网——每日最新资讯28at.com

    首先,需要准备多个独立的环境,这些环境可以是物理服务器,也可以是虚拟机或容器。不同的需求需要隔离级别不同,如果多环境共用底层数据,则代码中使用域名配置数据库,由 DNS 服务指向同一套数据库。BfO28资讯网——每日最新资讯28at.com

    多数情况下,泳道还是采用的底层共用数据存储,好处是每次新创建分支用不到不用再创建数据库和同步数据,大大提高了环境申请和销毁效率。对于自动化测试等需要数据隔离的,我们则另外部署一套全链路环境。BfO28资讯网——每日最新资讯28at.com

2、配置管理BfO28资讯网——每日最新资讯28at.com

    每个泳道可能需要不同的配置,例如数据库连接字符串、第三方服务的API密钥等。你需要一个配置管理系统来管理这些配置,并确保它们在部署时被正确地应用到每个泳道。BfO28资讯网——每日最新资讯28at.com

    逻辑结构主要分为主泳道和分支泳道BfO28资讯网——每日最新资讯28at.com

主泳道部署全链路稳定代码,作为公共环境,承载其他环境缺省服务,保证请求链路通畅。BfO28资讯网——每日最新资讯28at.com

分支泳道只需部署改动或增量服务,未改动服务使用主泳道中服务,减少公共服务的维护成本,提高使用效率等。BfO28资讯网——每日最新资讯28at.com

3、部署策略BfO28资讯网——每日最新资讯28at.com

    你需要决定如何将应用程序部署到各个泳道。你可以选择一次部署到所有泳道,也可以选择逐个部署。BfO28资讯网——每日最新资讯28at.com

    逐个部署可以降低风险,因为如果新版本有问题,你可以在部署到所有泳道之前发现并修复它。BfO28资讯网——每日最新资讯28at.com

4、流量管理BfO28资讯网——每日最新资讯28at.com

    你需要一个负载均衡器或类似的工具来管理流量,将请求分发到各个泳道。你可以根据各种策略来分发流量,例如轮询、最少连接数、响应时间等。BfO28资讯网——每日最新资讯28at.com

    网关层负责环境识别与环境标识注入,通过测试域名隔离不同环境,RPC 层负责服务发现与选择,环境标识透传等。BfO28资讯网——每日最新资讯28at.com

5、监控和故障恢复BfO28资讯网——每日最新资讯28at.com

    你需要监控每个泳道的性能和健康状况,并在检测到问题时自动或手动切换到其他泳道。BfO28资讯网——每日最新资讯28at.com

四、总结

多泳道建设是一种高效、灵活的开发模式,尤其适用于复杂项目和跨部门协作场景。通过合理划分泳道、优化资源分配和加强团队协作,我们可以显著提高软件交付速度和质量。BfO28资讯网——每日最新资讯28at.com

在未来软件开发中,多泳道建设将继续发挥重要作用。希望本文能为你提供有益的参考和启示。BfO28资讯网——每日最新资讯28at.com

本文链接:http://www.28at.com/showinfo-26-98410-0.html如何正确使用上线部署,泳道、预发布到底如何理解?

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: 11个高可用设计实战技巧,轻松应对大厂面试

下一篇: 我们一起聊聊如何编写一个 Java memcached 客户端

标签:
  • 热门焦点
  • Mate60手机壳曝光 致敬自己的经典设计

    8月3日消息,今天下午博主数码闲聊站带来了华为Mate60的第三方手机壳图,可以让我们在真机发布之前看看这款华为全新旗舰的大致轮廓。从曝光的图片看,Mate 60背后摄像头面积依然
  • 直屏旗舰来了 iQOO 12和K70 Pro同台竞技

    旗舰机基本上使用的都是双曲面屏幕,这就让很多喜欢直屏的爱好者在苦等一款直屏旗舰,这次,你们等到了。据博主数码闲聊站带来的最新爆料称,Redmi下代旗舰K70 Pro和iQOO 12两款手
  • JavaScript 混淆及反混淆代码工具

    介绍在我们开始学习反混淆之前,我们首先要了解一下代码混淆。如果不了解代码是如何混淆的,我们可能无法成功对代码进行反混淆,尤其是使用自定义混淆器对其进行混淆时。什么是混
  • Flowable工作流引擎的科普与实践

    一.引言当我们在日常工作和业务中需要进行各种审批流程时,可能会面临一系列技术和业务上的挑战。手动处理这些审批流程可能会导致开发成本的增加以及业务复杂度的上升。在这
  • 得物宠物生意「狂飙」,发力“它经济”

    作者|花花小萌主近日,得物宣布正式上线宠物鉴别,通过得物App内的“在线鉴别”,可找到鉴别宠物的选项。通过上传自家宠物的部位细节,就能收获拥有专业资质认证的得物鉴
  • 华为开发者大会2023日程公开:开设鸿蒙HarmonyOS 4体验区

    IT之家 7 月 31 日消息,华为今日公布了 HDC.Together 开发者大会 2023 的详细日程。整场大会将于 8 月 4 日-6 日之间举行,届时将发布最新一代鸿蒙 H
  • iQOO 11S评测:行业唯一的200W标准版旗舰

    【Techweb评测】去年底,iQOO推出了“电竞旗舰”iQOO 11系列,作为一款性能强机,该机不仅全球首发2K 144Hz E6全感屏,搭载了第二代骁龙8平台及144Hz电竞
  • 朋友圈可以修改可见范围了 苹果用户可率先体验

    近日,iOS用户迎来微信8.0.27正式版更新,除了可更换二维码背景外,还新增了多项实用功能。在新版微信中,朋友圈终于可以修改可见范围,简单来说就是已发布的朋友圈
  • 世界人工智能大会国际日开幕式活动在世博展览馆开启

    30日上午,世界人工智能大会国际日开幕式活动在世博展览馆开启,聚集国际城市代表、重量级院士专家、国际创新企业代表,共同打造人工智能交流平台。上海市副市
Top