【管理设计篇】聊聊系统部署生产有哪些方式

news2025/1/22 19:54:17

背景

对于互联网应用来说,除了在服务端开发和服务治理之外,还需要保证的有高可用运维。所以很多时候我们不能仅仅局限于,实现需求这个层面,比如软件设计,工程质量,性能,运维、可测试、可观测性等角度去看。
互联网应用一般都需要提供7*24小时都服务,但是对于大多数的应用来说,基本都是每周二/四上线,有的比较频繁的是每天都在上线。
那么在这个过程中,如何保证在不停机的情况下实现部署,让用户无感知呢。所以这里整理了常见的部署方式。
停机部署: 将应用停机部署
蓝绿部署: 部署好新版本,将流量直接切过来。
**滚动部署:**一点点升级现有服务
灰度部署: 把一部分用户切到新版上来,没有问题,直至全量。
AB测试: 同时上线两个版本,测试相关版本的功能是否可行。

停机部署

停机部署其实主要把应用直接停机,然后部署,这种一般针对的场景是不能同时在线新老版本,所以需要全量部署新的版本。不好的地方在于需要停机对于用户有一定的影响,所以需要提前挂起停服通知。
好像比较常见的就是游戏这种服务比较常见停止服务。

蓝绿部署

蓝绿部署相比于停机部署,有两套一样的生产系统,一套是staging 一套是prod。将服务部署在staging没有问题后,就全量将用户切到staging。然后prod成为新的staging。相对于停机部署,这种方式不需要停止服务。但是坏处就是比较浪费系统资源。基本就是双倍的资源。

滚动部署

滚动部署其实就是比如生产有3台服务实例,一台部署完毕,在部署另外一台。整个过程中其实就属于在一个新老交替的过程中上线的,所以需要考虑兼容问题。并且如果出现问题的话,回滚比较麻烦。所以建议就是发第一台机器的时候,多观察一会,没有问题后在全部部署。

灰度部署

灰度部署其实就是从老版本流量逐渐切到新版本,只是这个过程中可以控制流量,比如刚开始灰度%5,然后%20 %50 % 100。主要应对的是缺少足够的测试,对新版本的稳定性没有信心。也可以通过这种方式在灰度的过程中发现问题,即使出现异常,影响的也直至一部分用户,可以将影响降到最低。

AB测试

AB测试主要做的是比较,测试应用功能表现的方法,可用性,受欢迎程度,可见性等。
蓝绿部署是为了不停机,灰度部署是对软件质量没有信心。AB测试是对功能没有信息。
AB测试主要用于测试不同的流程,对于用户的是否有更好的效果。一般可以通过地理位置,UID、手机号等方式进行处理。

复盘

在这里插入图片描述
不同的公司采用的部署方式都不同,其实主要还受限于每个公司平台的基础架构是否完善,一般比较好的公司都有会进行灰度上线+蓝绿部署这种方式,而为了测试功能会采用AB测试,对于小型公司来说,大多数部署方式都是滚动部署。而搭建一个好的部署平台也非常重要。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/767936.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于深度学习的高精度交通标志检测系统(PyTorch+Pyside6+YOLOv5模型)

摘要:基于CCTSDB数据集的高精度交通标志(指示、禁止和警告)检测系统可用于日常生活中来检测与定位交通标志目标,利用深度学习算法可实现图片、视频、摄像头等方式的交通标志目标检测识别,另外支持结果可视化与图片或视…

【react + antd】antd如何自定义请求使用antd的upload组件实现图片上传且可预览可删除

文章目录 1. 效果展示2. customRequest如何使用?特别注意: 3. 控制上传时什么时候使用customRequest,什么时候选择beforeUpload方法? 1. 效果展示 官网给出的案例无法使用封装好的请求方式上传图片,以及无法满足上传图…

使用模板创建【vite+vue3+ts】项目出现 “找不到模块‘vue‘或其相应的类型声明” 的解决方案

问题描述 项目前台需要使用Vue3Ts来写一个H5应用,然后我用模板创建 npm create vitelatest vue3-vant-mobile -- --template vue-ts创建完后进入HelloWorld.vue,两眼一黑 解决办法一 npm i --save-dev types/node然后在tsconfig.json的"compi…

【ARM Cortex-M 系列 1 -- Cortex-M0, M3, M4, M7, M33 差异】

文章目录 Cortex-M 系列介绍Cortex-M0/M0 介绍Cortex-M3/M4 介绍Cortex-M7 介绍Cotex-M33 介绍 下篇文章:ARM Cortex-M 系列 2 – CPU 之 Cortex-M7 介绍 Cortex-M 系列介绍 Cortex-M0/M0 介绍 Cortex-M0 是 ARM 公司推出的一款微控制器(MCU&#xff0…

Golang跨平台UI框架之Wails(二)

上一篇文章我们讲解了如何简单创建一个 wails 的项目,但是现在有很多前端框架我们可以选择,比如: AngularVueSvelteReactLitVanilla各个都是时代的弄潮儿,就看哪一个适合你了,后续的系列都是以Angular为例。 1. 创建Angular模板项目 由于 wails 是没有官方支持Angular的…

代码随想录算法训练营之JAVA|第六天| 454. 四数相加 II

今天是第6天刷leetcode,立个flag,打卡60天。 算法挑战链接 454. 四数相加 IIhttps://leetcode.cn/problems/4sum-ii/ 第一想法 理解题目:找到四个数相加等于0 ——> 找到两个互为相反的数 理解完题目之后,那么我们要做的就…

IP首部报文字段

一、IP首部报文字段 字段如下图所示 二、每个字段的含义 版本 表示 IP 协议的版本。通信双方使用的 IP 协议版本必须一致。目前广泛使用的IP协议版本号为 4,即 IPv4 首部长度 这个字段所表示数的单位是 32 位字长(1 个 32 位字长是 4 字节&#xff0…

设计模式-组合模式在Java中的使用示例-杀毒软件针对文件和文件夹进行杀毒

场景 组合模式 组合模式(Composite Pattern): 组合多个对象形成树形结构以表示具有“整体—部分”关系的层次结构。 组合模式对单个对象(即叶子对象)和组合对象(即容器对象)的使用具有一致性, 组合模式…

不会接口测试?用Postman轻松入门 —— Postman实现get和post请求

测试行业现在越来越卷,不会点接口测试好像简历都已经拿不出手了,但很多小伙伴都会头疼:接口测试应该怎么入门?那么多的接口测试工具应该学哪个? 其实,接口测试工具,就像吃饭用的筷子&#xff0…

25.JavaWeb-接口文档Swagger

1.Swagger swagger是一款可以根据resutful风格生成的生成的接口开发文档,并且支持做测试的一款中间软件。 1.1 接口文档 接口文档是用于描述API的一份文档,它包含了API的详细信息,包括API的请求和响应参数、接口路径、请求方法、数据类型、返…

企企通入选《2023数字化采购发展报告》,持续赋能企业数字化采购

近日,国内知名产业数字化服务平台亿邦智库联合中国物流与采购联合会公共采购分会共同发布了《2023数字化采购发展报告》。 企企通一直以来积极推动企业采购供应链数字化升级和变革,不断通过技术、产品、服务的创新,引领国内采购供应链数字化的…

保持领先竞争对手,从普通变为非凡;为您的Android应用赋能数据结构和算法

数据结构和算法为Android开发提供了基础数据存储和处理的工具。开发者可以根据具体需求选择合适的数据结构和算法,以提高应用的性能、效率和用户体验。Android框架也提供了许多内置的数据结构和算法实现,如Bundle、ArrayAdapter等,以便开发者…

开发工具篇第二十六讲:使用IDEA进行本地调试和远程调试

开发工具篇第二十六讲:使用IDEA进行本地调试和远程调试 Debug用来追踪代码的运行流程,通常在程序运行过程中出现异常,启用Debug模式可以分析定位异常发生的位置,以及在运行过程中参数的变化;并且在实际的排错过程中&am…

【Visual Studio Code】---自定义键盘快捷键设置

概述 一个好的文章能够帮助开发者完成更便捷、更快速的开发。书山有路勤为径,学海无涯苦作舟。我是秋知叶i、期望每一个阅读了我的文章的开发者都能够有所成长。 一、进入键盘快捷键设置 1、进入键盘快捷键设置方法1 使用快捷键进入键盘快捷键设置先按 Ctrl K再…

k8s如何访问 pod 元数据

如何访问 pod 元数据 **我们在 pod 中运行容器的时候,是否也会有想要获取当前 pod 的环境信息呢?**咱们写的 yaml 清单写的很简单,实际上部署之后, k8s 会给我们补充在 yaml 清单中没有写的字段,那么我们的 pod 环境信…

【软件测试】Git 实战详解 - 分支详细,看这篇就够了.,..

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 Git 是如何保存数…

【项目 进程3】2.6 exce函数族 2.7 进程退出、孤儿进程、僵尸进程

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 2.6 exec函数族介绍(execute 执行)exec函数族 2.7 进程退出、孤儿进程、僵尸进程进程退出孤儿进程僵尸进程 2.6 exec函数族介绍(…

线程系列3-关于 CompletableFuture

线程系列3-关于 CompletableFuture 1、从 Future 接口说起2、CompletableFuture 对 Future 的改进2.1、CompletionStage 接口类2.2、runAsync 和 supplyAsync 创建子任务2.3、 whenComplete 和 exceptionally 异步任务回调钩子2.4、调用 handle() 方法统一处理异常和结果2.5、异…

计讯物联智慧景区应用解决方案,开启交互式智慧旅游新篇章

方案背景 后疫情时代,旅游市场逐步回暖。随着游客的旅游需求趋向个性化、多元化,景区的数字化转型升级势在必行。在此背景下,计讯物联充分发挥5G、云计算、物联网、大数据等技术的应用价值,以技术创新推动业务创新,面…

基于springboot+webservice+mysql实现的物业报修管理系统

基于springbootWebservicemysql实现的物业报修管理系统 一、系统介绍二、功能展示1.添加报修单(业主)2.缴费(业主)3.确定修复(管理员) 三、其它系统四、获取源码 一、系统介绍 系统主要功能: 通过JaxWsDynamicClientFactory调用Webservice接口实现物业报修管理。 业…