应用上云指导
应用上云指导方法论。
应用上云指传统应用迁移到云上,云上应用采用K8S部署。
本文旨在提供一种方法、流程,指导应用上云,以求优化上云工作,提供应用上云效率。
主要包含以下内容:
应用上云工作角色、分工
应用上云标准流程及每一阶段交付物
迁移上云重点说明
上云工作有以下几点基本思想:
划分角色,明确分工。确认工作边界,清晰每一块工作的负责人
结合标准流程每个阶段,输出高质量交付物。以共享传递资源与信息
尽可能减少各阶段各角色交互。通过标准交付物、工具进行有序的协作。
实行DevOps:
建立持续集成与持续交付
建立资源自助服务平台
自动化几乎所有操作,尽可能减少手动操作
开发、测试、生产环境尽可能相同。
角色与分工
上云工作主要角色可分为开发、测试、运维。
具体分工职责如下:
开发:主要负责应用相关,应用架构、改造,应用数据同步等。
测试:主要负责测试相关,功能测试、性能测试。
运维:主要负责基础支撑平台与资源相关,CICD平台、服务治理平台、资源服务平台、容量规划、资源交付。
应用架构需要开发与运维沟通协作,设计云上的应用架构与部署架构,使用合适的云组件与云产品。
应用上线需要开发与运维沟通协作,前期设计上上线方案,包括数据同步,灰度上线,全量切换等。
标准流程
应用调研
应用调研主要工作是调研应用现状。开发与运维主要参与。
主要工作与交付物:
应用架构
技术组件
服务依赖
资源容量
上云设计
上云设计主要工作是设计应用上云相关内容包括设计云上应用架构,设计改造方案,设计上线方案,规划云上资源容量。
主要工作与交付物:
云上应用架构、组件架构、部署架构
应用改造内容
应用上线方案
数据同步方案
应用灰度方案
应用切换方案
云资源容量
上云实施
上云实施包含以下几部分
实施计划
应用改造
资源交付
应用测试
实施计划
制定详细的实施计划,细化到每部分的每一重要阶段。
应用改造
按照上云设计步骤中应用改造方案,对应用进行改造。
资源交付
资源交付需要分阶段,快速进行资源交付,包括资源本身,网络权限、白名单权限、访问权限、管理权限。
资源交付的同时提供 服务治理平台、资源服务平台等访问入口与权限。方便开发人员自助使用。
开发环境资源交付
测试环境资源交付
生产环境资源交付
除了以上环境还有压测环境、预发布环境环境。考虑到资源限制与环境过多配置复杂,建议:
初始化三套环境 开发、测试、生产
开发环境有开发使用
测试环境由测试使用,完成功能测试
生产环境前期做为压测环境,进行性能测试,后期转为生产环境,同时可预留实例,作为预发布环境使用。
应用测试
应用功能测试主要包括功能测试与性能测试。
应用改造完成后,在云上测试环境进行功能测试。同时在上线前,在准生产环境进行性能测试,了解其性能水准,以及确认资源容量是否足够。
应用上线
依照上云设计中应用上线设计:
应用数据同步
应用灰度发布
应用全量切换
数据同步可由开发执行,执行后收回对应权限。
灰度发布与全量切换,需开发与运维相互配合,安全的进行应用上线操作。尽可能做到无损切换。同时需做好回滚方案。
重点说明
以下迁移上云过程中遇到的重点与难点:
网络访问权限开通与资源访问白名单开通
提前整理好网络访问权限、资源访问白名单需求,使用云服务提供商的工具或服务来自动化交付该需求。
性能压测与性能优化
结合场景需求、历史经验与性能压测,调优应用当前重要参数,以达到性能最优状态。
应用构建与配置
采用标准的方式管理应用依赖,对应用进行编译、构建,形成不可变基础设施。
区别不同环境的配置,统一集中管理,避免配置管理的复杂性。
应用发布管理与应用跨云平台管理
在持续集成的基础上,使用应用发布工具,标准化应用发布,提高应用交付效率与质量。
同时统一采用容器编排与容器标准,以实现应用跨云平台管理。
迁移过程中保证数据完整性与业务连续性
在上云设计中,详细设计应用数据同步方案与应用灰度发布、全量切换方案,以保证数据完整性与业务连续性。
灰度发布与全量切换方案应尽可能做到对服务无损。
以上说明仅为指导性说明,涉及工作、资源、平台较多,实践中通过不断建设与完善标准、流程、工具以达到高效率高质量迁移上云。
总结
应用迁移上云围绕:
应用调研
上云设计
上云实施
应用上线
四个流程展开。
开发、运维与测试分别主要负责应用、资源、测试等工作。
在上云迁移过程中遇到很多难点重点问题,通过不断的实践,改进方法、流程和工具,从而提升迁移的效率与质量。
参考
云采用框架 CAF
相关文章:
应用上云指导
应用上云指导方法论。应用上云指传统应用迁移到云上,云上应用采用K8S部署。本文旨在提供一种方法、流程,指导应用上云,以求优化上云工作,提供应用上云效率。主要包含以下内容:应用上云工作角色、分工应用上云标准流程及…...
进程概念~
进程概念 (冯诺依曼体系结构,操作系统,进程概念,进程状态,环境变量,程序地址空间) 冯诺依曼体系结构:(计算机硬件体系结构) 输入设备,输出设备&a…...
三天吃透Java基础八股文
本文已经收录到Github仓库,该仓库包含计算机基础、Java基础、多线程、JVM、数据库、Redis、Spring、Mybatis、SpringMVC、SpringBoot、分布式、微服务、设计模式、架构、校招社招分享等核心知识点,欢迎star~ Github地址:https://github.com/…...
YOLOv8训练自己的数据集(超详细)
一、准备深度学习环境本人的笔记本电脑系统是:Windows10YOLO系列最新版本的YOLOv8已经发布了,详细介绍可以参考我前面写的博客,目前ultralytics已经发布了部分代码以及说明,可以在github上下载YOLOv8代码,代码文件夹中…...
【洛谷 P1088】[NOIP2004 普及组] 火星人 题解(全排列+向量)
[NOIP2004 普及组] 火星人 题目描述 人类终于登上了火星的土地并且见到了神秘的火星人。人类和火星人都无法理解对方的语言,但是我们的科学家发明了一种用数字交流的方法。这种交流方法是这样的,首先,火星人把一个非常大的数字告诉人类科学…...
基于混合蛙跳算法优化SVM的滚动轴承故障诊断python实现
1.混合蛙跳算法(SFLA)原理 混合蛙跳算法(SFLA)是一种受自然生物模仿启示而产生的基于群体的协同搜索方法,由局部搜索和全局信息交换两部分组成。 混合蛙跳算法中,每个青蛙的位置代表了一个可行解。青蛙在沼泽中跳跃,沼泽在离散的地方有很多石头,青蛙可以跳过这些石头来找…...
如何让AI帮你干活-娱乐(2)
背景:好容易完成朋友的任务,帮忙给小朋友绘画比赛生成一些创意参考图片。他给我个挑战更高的问题,是否可以帮他用AI生成一些视频。这个乍一听以现在AI技术根本不太可能完成。奈何他各种坚持,无奈被迫营业。苦脸接受了这个不可能完…...
文件异步多备常用方案
业务需求上经常存在需要对同一个文件进行双上传,上传到不同云存储桶,以防出现某一个云厂商因各种意外导致自身服务出现不可用的情况,当然,还有其他措施可以避免,现在只针对通过程序业务代码而双写存储的这个场景。 业务…...
java面试八股文之------Redis夺命连环25问
java面试八股文之------Redis夺命连环25问👨🎓1.为什么redis这么快👨🎓2.redis的应用场景,为什么要用👨🎓3.redis6.0之前为什么一直不使用多线程,6.0为甚么又使用多线程了&…...
【数据结构】AVL平衡二叉树底层原理以及二叉树的演进之多叉树
1.AVL平衡二叉树底层原理 背景 二叉查找树左右子树极度不平衡,退化成为链表时候,相当于全表扫描,时间复杂度就变为了O(n) 插入速度没影响,但是查询速度变慢,比单链表都慢,每次都要判断左右子树是否为空 需…...
K8S篇-安装nfs插件
前言 有关k8s的搭建可以参考:http://t.csdn.cn/H84Zu 有关过程中使用到的nfs相关的nas,可以参考: http://t.csdn.cn/ACfoT http://t.csdn.cn/tPotK http://t.csdn.cn/JIn27 安装nfs存储插件 NFS-Subdir-External-Provisioner是一个自动配置…...
xmu 离散数学 卢杨班作业详解【4-7章】
文章目录第四章 二元关系和函数4.6.2911121618.120.222.1232834第五章 代数系统的一般概念2判断二元运算是否封闭348111214第六章 几个典型的代数系统1.5.6.7.11.12151618第七章 图的基本概念12479111215第四章 二元关系和函数 4. A{1,2,3} 恒等关系 IA{<1,1>,<2,2…...
多重背包问题中的二进制状态压缩
1.多重背包问题 经典的多重背包问题和01背包问题的相似之处在于二者的一维遍历顺序都是从右侧往左侧遍历。 同时多重背包的一维写法不比二维写法降低时间复杂度。 2.多重背包标准写法:(平铺展开形式) class Solution {public int maxValue(int N, int C, int[] s…...
汇编语言程序设计(四)之汇编指令
系列文章 汇编语言程序设计(一) 汇编语言程序设计(二)之寄存器 汇编语言程序设计(三)之汇编程序 汇编指令 1. 数据传输指令 指令包括:MOV、XCHG、XLAT、LEA、LDS、LES、PUSH、POP、PUSHF、LA…...
Vant2 源码分析之 vant-sticky
前言 原打算借鉴 vant-sticky 源码,实现业务需求的某个功能,第一眼看以为看懂了,拿来用的时候,才发现一知半解。看第二遍时,对不起,是我肤浅了。这里侧重分析实现原理,其他部分不拓展开来&…...
【自然语言处理】【大模型】大语言模型BLOOM推理工具测试
相关博客 【自然语言处理】【大模型】大语言模型BLOOM推理工具测试 【自然语言处理】【大模型】GLM-130B:一个开源双语预训练语言模型 【自然语言处理】【大模型】用于大型Transformer的8-bit矩阵乘法介绍 【自然语言处理】【大模型】BLOOM:一个176B参数…...
云桌面技术初识:VDI,IDV,VOI,RDS
VDI(Virtual Desktop Infrastucture,虚拟桌面架构),俗称虚拟云桌面 VDI构架采用的“集中存储、集中运算”构架,所有的桌面以虚拟机的方式运行在服务器硬件虚拟化层上,桌面以图像传输的方式发送到客户端。 …...
基于本地centos构建gdal2.4.4镜像
1.前言 基于基础镜像构建gdal环境一般特别大,一般少则1.6G,多则2G甚至更大,这对于镜像的迁移造成了极大的不便。究其原因在于容器中有大量的源码文件以及编译中间过程文件,还要大量编译需要的yum库。本文主要通过在centos系统上先…...
生产环境线程问题排查
线程状态的解读RUNNABLE线程处于运行状态,不一定消耗CPU。例如,线程从网络读取数据,大多数时间是挂起的,只有数据到达时才会重新唤起进入执行状态。只有Java代码显式调用sleep或wait方法时,虚拟机才可以精准获取到线程…...
Day908.joinsnljdist和group问题和备库自增主键问题 -MySQL实战
join&snlj&dist和group问题和备库自增主键问题 Hi,我是阿昌,今天学习记录的是关于join&snlj&dist和group问题和备库自增主键问题的内容。 一、join 的写法 join 语句怎么优化?中,在介绍 join 执行顺序的时候&am…...
手游刚开服就被攻击怎么办?如何防御DDoS?
开服初期是手游最脆弱的阶段,极易成为DDoS攻击的目标。一旦遭遇攻击,可能导致服务器瘫痪、玩家流失,甚至造成巨大经济损失。本文为开发者提供一套简洁有效的应急与防御方案,帮助快速应对并构建长期防护体系。 一、遭遇攻击的紧急应…...
【Python】 -- 趣味代码 - 小恐龙游戏
文章目录 文章目录 00 小恐龙游戏程序设计框架代码结构和功能游戏流程总结01 小恐龙游戏程序设计02 百度网盘地址00 小恐龙游戏程序设计框架 这段代码是一个基于 Pygame 的简易跑酷游戏的完整实现,玩家控制一个角色(龙)躲避障碍物(仙人掌和乌鸦)。以下是代码的详细介绍:…...
树莓派超全系列教程文档--(62)使用rpicam-app通过网络流式传输视频
使用rpicam-app通过网络流式传输视频 使用 rpicam-app 通过网络流式传输视频UDPTCPRTSPlibavGStreamerRTPlibcamerasrc GStreamer 元素 文章来源: http://raspberry.dns8844.cn/documentation 原文网址 使用 rpicam-app 通过网络流式传输视频 本节介绍来自 rpica…...
React Native在HarmonyOS 5.0阅读类应用开发中的实践
一、技术选型背景 随着HarmonyOS 5.0对Web兼容层的增强,React Native作为跨平台框架可通过重新编译ArkTS组件实现85%以上的代码复用率。阅读类应用具有UI复杂度低、数据流清晰的特点。 二、核心实现方案 1. 环境配置 (1)使用React Native…...
定时器任务——若依源码分析
分析util包下面的工具类schedule utils: ScheduleUtils 是若依中用于与 Quartz 框架交互的工具类,封装了定时任务的 创建、更新、暂停、删除等核心逻辑。 createScheduleJob createScheduleJob 用于将任务注册到 Quartz,先构建任务的 JobD…...
ElasticSearch搜索引擎之倒排索引及其底层算法
文章目录 一、搜索引擎1、什么是搜索引擎?2、搜索引擎的分类3、常用的搜索引擎4、搜索引擎的特点二、倒排索引1、简介2、为什么倒排索引不用B+树1.创建时间长,文件大。2.其次,树深,IO次数可怕。3.索引可能会失效。4.精准度差。三. 倒排索引四、算法1、Term Index的算法2、 …...
关于 WASM:1. WASM 基础原理
一、WASM 简介 1.1 WebAssembly 是什么? WebAssembly(WASM) 是一种能在现代浏览器中高效运行的二进制指令格式,它不是传统的编程语言,而是一种 低级字节码格式,可由高级语言(如 C、C、Rust&am…...
IoT/HCIP实验-3/LiteOS操作系统内核实验(任务、内存、信号量、CMSIS..)
文章目录 概述HelloWorld 工程C/C配置编译器主配置Makefile脚本烧录器主配置运行结果程序调用栈 任务管理实验实验结果osal 系统适配层osal_task_create 其他实验实验源码内存管理实验互斥锁实验信号量实验 CMISIS接口实验还是得JlINKCMSIS 简介LiteOS->CMSIS任务间消息交互…...
从 GreenPlum 到镜舟数据库:杭银消费金融湖仓一体转型实践
作者:吴岐诗,杭银消费金融大数据应用开发工程师 本文整理自杭银消费金融大数据应用开发工程师在StarRocks Summit Asia 2024的分享 引言:融合数据湖与数仓的创新之路 在数字金融时代,数据已成为金融机构的核心竞争力。杭银消费金…...
学习一下用鸿蒙DevEco Studio HarmonyOS5实现百度地图
在鸿蒙(HarmonyOS5)中集成百度地图,可以通过以下步骤和技术方案实现。结合鸿蒙的分布式能力和百度地图的API,可以构建跨设备的定位、导航和地图展示功能。 1. 鸿蒙环境准备 开发工具:下载安装 De…...
