本次项目有幸担当了一次发布员,这也是我今年想尝试的事情之一,因为对于项目过程来说,我设计、开发、测试、联调等等都做了,唯一就是项目发布还是没有践行过,至此,我也算是走通了整个项目流程了。我信奉一个理论:没有做过的事情千万不要说自己会做了。发布过程就不写了,已经写好了发布手册了。
1.准备阶段要充分,你轻视了哪个环节,哪个环节就有可能有问题,要知道发布阶段是大家都在等你,一定不要block在这里。
发布过程有两个问题值得一提:
(1)antx 配置虽然我配置好了以后 同步到本地用文本文件对照过,也一条一条的核实过,只核实有没有少配置什么,但是没有核实auto-conf里面的配置文件是否多了配置,特别是哪种确认阶段要求各个负责人去掉的配置,一定要检查下,这样配置文件就会跳出来让你配置,虽然不会导致什么错误,但是会耽误发布时间。
(2)用存过或PL/SQL初始化的脚本,一定要仔细检查,最好拿线上数据先做测试,这次出了一个这种问题:
在循环里有这样一条语句:
open c_a for select add_months(t.INVOICE_DATE,1) from ***.**** t
where
t.vaccount_id = o_obj.vaccount_id
and (t.STATUS = '0' or t.STATUS = '1' or t.STATUS = '5')
order by INVOICE_DATE asc;
fetch c_a INTO V_OWE_TIME;
我们从业务上分析了都没有问题,但是在debug是发现,如果这个值为null时,他是赋值给INTO V_OWE_TIME,这样导致下次循环时直接就取了前一次循环的值,而如果使用 select into 则是可以赋值为null的。所以循环中一定要对变量初始化
还有一个问题:就是一个字段没有订正,导致消息通知出错。--发布前要整理初始化数据要和各个模块的人确认,凡是增加的修改的字段都要考虑初始化问题。
感悟:
建议能用脚本一步一步写的就用脚本,次之选择存过(存过容易debug),尽量不要用PL/SQL的批量处理,用大家都熟悉的东西,这样才容易review 出来问题,简单的技术是保证发布的要素,包括发布之前把所有的脚本写好,所有的环境放在一起,都是这个目的。
2.有时间检查发布机上的环境,就要检查下。(build机环境是公用的,不能保证所有配置都如你所愿)
这次发布还出现了一个mvn的path没有配置的问题。
解决:
>ll -a /home/admin 下隐藏文件 bash_profile
>修改maven path
>PATH=$PATH:$HOME/bin:/usr/alibaba/maven/bin
3. 发布要保持适当紧张和兴奋,要沉稳,不要被外界环境干扰
发布阶段,不要试图验证发布脚本的正确性,先连续的去发完,不要中断,中间不要和别人探讨技术和原理(否则你可能忘记了发到第几步了),然后再验证。
4. 要细致考虑网络情况,对于合作方只给出ip的要弄清楚原理,是否会定位到某台服务器上,然后telnet 他们提供的服务器。
5.记住发布和预发布的时间点,便于以后核对数据,考虑发布过程中的一些业务的停顿,提前想好补救措施,比如本次发布的发布过程中的销帐。
6. 不要忽略发布后的检查,对于特殊逻辑要特殊对待,发布前后看看数据,比如本次的0账单等
可以改进的地方:
(1)脚本同步所有环境的时候,重启机器并没有一台一台重启,第一台还没有起来,可能第二台已经关闭了,以后数据量非常大的情况下,是有风险的,可以sleep一下再关闭第二台。
(2)当出现关键性步骤没有通过时,应该block住并给出提示,否则发布人员如果不盯着日志很有可能放过一些关键问题,比如上面说到的第2条,mvn path没有配置,居然接着执行了,只在日志里有一条,command not found的提示。
分享到:
相关推荐
# 压缩文件中包含: 中文-英文对照文档 jar包下载地址 Maven依赖 Gradle依赖 源代码下载地址 # 本文件关键字: jar中文-英文对照文档.zip,java,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,中文API文档,手册,开发手册,使用手册,参考手册 # 使用方法: 解压最外层zip,再解压其中的zip包,双击 【index.html】 文件,即可用浏览器打开、进行查看。 # 特殊说明: ·本文档为人性化翻译,精心制作,请放心使用。 ·只翻译了该翻译的内容,如:注释、说明、描述、用法讲解 等; ·不该翻译的内容保持原样,如:类名、方法名、包名、类型、关键字、代码 等。 # 温馨提示: (1)为了防止解压后路径太长导致浏览器无法打开,推荐在解压时选择“解压到当前文件夹”(放心,自带文件夹,文件不会散落一地); (2)有时,一套Java组件会有多个jar,所以在下载前,请仔细阅读本篇描述,以确保这就是你需要的文件;
SQLite3的使用+API接口的调用(c/c++、Qt)
# 压缩文件中包含: 中文文档 jar包下载地址 Maven依赖 Gradle依赖 源代码下载地址 # 本文件关键字: jar中文文档.zip,java,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,中文API文档,手册,开发手册,使用手册,参考手册 # 使用方法: 解压最外层zip,再解压其中的zip包,双击 【index.html】 文件,即可用浏览器打开、进行查看。 # 特殊说明: ·本文档为人性化翻译,精心制作,请放心使用。 ·只翻译了该翻译的内容,如:注释、说明、描述、用法讲解 等; ·不该翻译的内容保持原样,如:类名、方法名、包名、类型、关键字、代码 等。 # 温馨提示: (1)为了防止解压后路径太长导致浏览器无法打开,推荐在解压时选择“解压到当前文件夹”(放心,自带文件夹,文件不会散落一地); (2)有时,一套Java组件会有多个jar,所以在下载前,请仔细阅读本篇描述,以确保这就是你需要的文件;
内容概要:本文介绍了如何使用混沌-高斯变异-麻雀搜索算法(CGSSA)优化BP神经网络来进行电力行业的回归预测。主要内容包括数据准备、BP神经网络构建、CGSSA优化过程、以及优化前后效果对比。通过MATLAB代码实现,展示了如何读取EXCEL数据并进行训练和测试,最终通过图表和误差指标对比优化前后的预测效果。 适用人群:适用于具有一定MATLAB编程基础和技术背景的研究人员、工程师,特别是从事电力数据分析和机器学习领域的专业人士。 使用场景及目标:① 对电厂运行数据进行精准回归预测,辅助电厂运维规划和能源分配优化;② 提供详细的代码实现和优化方法,帮助用户理解和应用CGSSA优化BP神经网络的技术。 其他说明:文中提供了完整的代码示例,包括主程序、数据划分、BP神经网络预测、CGSSA-BP神经网络预测和结果对比等功能模块。此外,还讨论了一些优化技巧和注意事项,如数据归一化、隐藏层节点选择等。
第三方浏览器下载包.apk
嵌入式系统开发_ARM11架构_Linux操作系统_QT48开发环境_QTCreator工具_人脸识别算法_商业保密技术_QML界面开发_视频嵌入技术_跨平台移植_基于上海高校
宠物领养救助系统是基于SpringBoot+MyBatisPlus+Vue+MySQL开发的Java项目,适合作为Java课程设计、毕业设计或期末大作业。技术涵盖前后端开发,帮助初学者快速掌握Java全栈技能。采用IDEA开发,代码规范,易于二次扩展,是Java学习者的理想实战项目!
winmm钢琴程序代码QZQ
scratch少儿编程逻辑思维游戏源码-狗狗变形者.zip
# 压缩文件中包含: 中文文档 jar包下载地址 Maven依赖 Gradle依赖 源代码下载地址 # 本文件关键字: jar中文文档.zip,java,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,中文API文档,手册,开发手册,使用手册,参考手册 # 使用方法: 解压最外层zip,再解压其中的zip包,双击 【index.html】 文件,即可用浏览器打开、进行查看。 # 特殊说明: ·本文档为人性化翻译,精心制作,请放心使用。 ·只翻译了该翻译的内容,如:注释、说明、描述、用法讲解 等; ·不该翻译的内容保持原样,如:类名、方法名、包名、类型、关键字、代码 等。 # 温馨提示: (1)为了防止解压后路径太长导致浏览器无法打开,推荐在解压时选择“解压到当前文件夹”(放心,自带文件夹,文件不会散落一地); (2)有时,一套Java组件会有多个jar,所以在下载前,请仔细阅读本篇描述,以确保这就是你需要的文件;
内容概要:本文详细介绍了基于回声状态网络(ESN)的数据分类预测方法及其Matlab实现。首先简述了ESN的基本概念,强调其作为特殊递归神经网络的特点,即储备池连接权值固定不变。接着逐步展示了从数据准备、ESN模型构建、训练到预测的具体步骤,包括参数设置、状态更新规则、输出层训练方法等。文中还探讨了各部分代码的作用及意义,并提供了调参建议,如谱半径、泄漏率等参数的选择依据。此外,作者分享了自己在实验过程中的一些经验和心得,指出ESN在处理时间序列分类任务方面的优势。 适合人群:对递归神经网络特别是ESN感兴趣的科研工作者、学生以及有一定编程基础并想深入了解ESN机制的研究人员。 使用场景及目标:适用于需要进行时间序列数据分析和分类的应用场合,如金融趋势预测、语音识别等领域。通过学习本文提供的完整流程,读者可以掌握如何利用ESN解决实际问题,并能够根据自身需求调整模型参数以获得更好的性能。 其他说明:文中不仅给出了完整的Matlab代码示例,而且针对每一环节进行了详细的解释,帮助读者更好地理解ESN的工作原理和技术细节。同时提醒读者注意某些关键参数的调节范围,以便于在实际项目中取得理想的效果。
内容概要:本文深入介绍了威纶通触摸屏一机多屏程序及其与FX3U系列PLC和MODBUS通讯的集成应用。首先,文章阐述了系统的硬件架构,即一个FX3U系列PLC搭配四个MT6051ip触摸屏的工作原理。接着,详细解析了威纶通模板的特点,特别是梯形图的详尽注释,便于理解和维护。此外,文章还探讨了PLC与上位机的MODBUS通讯设置,包括波特率、数据位、停止位等参数的具体配置方法。最后,强调了该系统的学习意义和借鉴价值,适用于新手和资深工程师。 适合人群:从事自动化控制领域的工程师和技术人员,尤其是那些希望深入了解PLC、触摸屏和MODBUS通讯的人群。 使用场景及目标:①帮助工程师快速掌握威纶通触摸屏的一机多屏配置;②提高PLC与触摸屏、上位机之间的通讯效率;③优化中小型企业生产线的监控系统,提升生产效率和稳定性。 其他说明:文中提供的实例和代码片段有助于读者更好地理解和实践相关技术,同时附带了一些实用的小技巧,如心跳检测和双看门狗设计,增强了系统的可靠性和容错能力。
无人机航测_大疆航线规划_KMZ文件生成与解析_基于JavaXStream注解的DJIPilot2兼容航线文件处理工具_支持航点飞行建图航拍等多种任务模板_包含航线高度速度航向角失
内容概要:本文详细介绍了蒙特卡洛方法在工程可靠度计算中的应用,特别是在处理涉及多种概率分布参数的情况下。首先展示了基本的Matlab实现,如生成正态分布和极值分布的随机样本,并通过极限状态函数判断结构的安全性。接着讨论了处理相关变量的有效方法——拉丁超立方抽样,以及进一步提高计算效率的重要抽样法。此外,还探讨了并行计算和置信区间的计算,确保结果的准确性。最后强调了蒙特卡洛方法在解决复杂可靠度问题中的优越性和实用性。 适合人群:从事工程可靠度分析的研究人员和技术人员,以及对数值模拟感兴趣的工程师。 使用场景及目标:适用于需要评估结构或其他系统的可靠性的场合,尤其是在无法获得解析解的情况下。目标是提供一种简单有效的数值方法来估算失效概率和可靠度。 其他说明:文中提供了大量具体的Matlab代码示例,帮助读者更好地理解和应用蒙特卡洛方法。同时提醒使用者注意计算资源的合理分配,以平衡精度和效率。
基于SpringBoot+MyBatisPlus+Vue+MySQL的人力资源管理系统,专为Java课程设计、毕业设计及期末大作业打造。采用主流技术栈(Idea开发),适合Java初学者快速上手,提供完整源码与文档,助力高效完成学习任务!
Screenshot_2025-01-26-01-50-08-41.jpg
内容概要:本文详细介绍了如何利用FPGA和Verilog HDL语言实现一个多功能DDS(直接数字频率合成)信号发生器。该发生器不仅可以生成常见的正弦波、方波、锯齿波和三角波,还可以实现2PSK、2ASK和AM调制。文章首先解释了DDS的基本原理,即通过相位累加器和查找表(LUT)生成波形。接着分别给出了各个波形的具体实现代码,并讨论了调制技术的实现方法。最后,文章提供了仿真的步骤以及一些实用的调试技巧,确保设计方案能够在实际硬件环境中正常工作。 适合人群:具备一定FPGA和Verilog编程基础的电子工程师、研究人员和技术爱好者。 使用场景及目标:适用于需要精确控制频率和波形的应用场合,如通信系统、音频设备、测试仪器等。目标是掌握DDS技术的工作原理及其在FPGA上的具体实现方法,同时提高对复杂数字系统的理解和设计能力。 其他说明:文中提供的代码片段可以直接用于实验环境,有助于快速搭建原型并进行验证。此外,作者还分享了一些优化建议和常见问题解决方案,使读者能够更好地应对实际项目中的挑战。
34 andorid 源码北京公交线路查询
内容概要:本文深入介绍了Linux XFRM框架在网络安全中的作用及其工作机制。XFRM框架作为Linux内核中的关键组件,主要用于保障网络通信的安全性,特别是在数据加密、认证和完整性验证方面。文章首先阐述了网络安全的重要性,接着详细解释了XFRM框架的基本概念、与IPsec的关系及其发展历程。随后,文章剖析了XFRM框架的核心组件,包括数据接收协议(AH和ESP)、数据发送协议和策略引擎,并详细描述了数据发送、接收和转发的具体流程。文中还重点讲解了安全关联(SA)、安全策略(SP)和netns_xfrm结构等关键技术点。最后,文章总结了XFRM框架的优势,如高扩展性、对网络命名空间的支持以及与现有架构的融合,并探讨了其在企业网络安全、容器网络安全和VPN连接中的应用场景。 适合人群:对网络安全和Linux内核技术有一定了解的技术人员,尤其是从事网络开发、安全管理和系统运维的专业人士。 使用场景及目标:①理解XFRM框架在Linux内核中的作用及其与IPsec的关系;②掌握XFRM框架的核心组件和工作原理,如数据接收、发送和转发流程;③学习如何利用XFRM框架为企业网络、容器网络和VPN连接提供安全保障。 其他说明:XFRM框架不仅支持IPv4和IPv6协议,还具备高度的扩展性和灵活性,能够适应未来网络技术的发展,如量子安全加密算法和物联网设备的安全需求。文章鼓励读者进一步研究XFRM框架的源代码和相关文档,以探索更多技术细节。