`
izuoyan
  • 浏览: 8955896 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

第一次做项目发布员的一些总结

阅读更多

在以前做钱掌柜的时候就想着做项目发布员,因为做这项工作可以帮助你对整个项目实际运转情况摸得更清楚,但后来还是放弃了,主要是感觉自己比较毛糙,不太适合做这项风险较高的工作。可这次计费中心项目让我没有退路,只有自己可以顶上去。

计费中心是个新项目,发布环境和生产环境都为0,难点就在于需要从头开始搭建基础设施。这个项目构建用的是maven而不是以前阿里自制的antx,所以项目结构和构建脚本与以前项目都不太一样。但对于我这个项目发布新手来说,又恰恰是较为有利的一面,可以让我没有任何历史包袱,可以完全遵循自己的设计,发布过程中出现了问题自己处理起来更游刃有余一些。下面总结一下整个发布过程中的沉淀。
项目发布流程图

各种环境的功能和职责:

  • Build机
    主要是三个功能:1)svn up各环境需发布的代码,并用maven打成可部署的ear包。2)把各环境的ear包分发到相应的预发机上。3)控制各预发机,比如重启各预发机的服务器。
    因此Build机需要一个能完成以上功能的脚本,脚本的操作面板如下所示:
  • 发布及预发机
    此项目把发布机和预发机合成一块,也是说此环境肩负预发环境和分发项目到正式环境的职责。因此主要有三个功能:1)预发运行环境。2)把ear包分发到相应的正式机上。3)控制各正式机,比如重启各正式机的服务器。脚本的操作面板如下所示:

    实际上此脚本和Build机上脚本的功能非常类似,主要不同点是此环境不需要构建ear包的功能,另外还担负着预发验证的职责,因此是个可部署和运行环境。
  • 正式机
    供实际用户使用的运行环境。除本身服务器环境的控制脚本,不需要其他额外的操作脚本,也不需要控制其他环境,因此无特殊需求不需要直接在此环境中进行操作。

经验总结:

  • 用健壮的脚本代替实际命令的操作
    发布过程中用到的脚本都非常简单,无非是把需要用到的命令集合起来,但效果却非同一般,因为敲击这些命令也费不了多大的事,但在正式发布过程中还是有一定的风险,并且发布过程绝非一帆风顺,往往需要重复多次发布,也往往会通宵战斗。通过简单的选择操作绝对比敲击命令来得稳当和高效。因此,一定要把可以预见的操作转变为可执行的脚本,哪怕是很简单的操作。
  • 把发布过程中需要的信息集合到一起,便于查阅
    发布过程中需要很多信息,比如登录密码、验证服务是否启动的命令、查阅生产库的sql、各环境的域名和IP等等,一定得把这些信息聚集在一块,避免发布过程中四处查找
  • 保证测试环境和正式环境一致性
    这次预发到凌晨2点的一个重要原因就是系统间接口调用不顺畅,虽然最终具体原因还不清晰,但可以肯定是由于测试环境和正式环境不一致导致在测试阶段没发现此问题,增加了正式发布的风险。因此,一定得严格核实环境差异,特别是基础环境,这次就是由于apche配置和跨机房的差异。
  • 需熟识底层技术和项目关联的各种细节
    这次发布遇到的一个主要问题就是系统间接口调用不顺畅,但和项目本身的开发代码没有任何关系,是底层环境导致。最后还是通过抓包和分析TCP/IP三次握手才定位出问题是apache的keepAlive参数需改成off,需要技术细节我就再详述,但可见处理问题的人需要对底层技术和协议有足够的熟悉,不然无从下手,也暴露出问题是搭建环境的人(就是我自己)没有对底层环境的各参数了解清楚
  • 发布是个通力合作的工作,需要和依赖方提前沟通好
    发布是一个需要发布员、开发人员、测试、PD、SA和DBA一起合作完成的工作,一定要保证各环节的依赖方就位,不能就位的要找好backup

总体说来,第一次发布还算成功,但也暴露出一些问题,当然这些问题也是自己需要提高的方向。

分享到:
评论

相关推荐

    C#项目开发案例全程实录(第2版)下载地址

    C#项目开发案例全程实录(第2版)光盘 内容简介  本书以家庭视频监控系统、企业短信群发系统、人事工资管理系统、企业电话客服系统、卡拉OK点歌系统、企业QQ系统、餐饮管理系统、企业人事管理系统、超市进销存销售...

    测试培训教材

    把“调用”的测试步骤调整到第一步 查看需求覆盖率 -- Linking Requiremnets to a Test 将需求链接到测试Cruise Booking 注:由于Cruise Booking的测试是由Cruise Booking的需求转化而成的,所以需求覆盖中...

    asp.net知识库

    .NET 2.0 泛型在实际开发中的一次小应用 C#2.0 Singleton 的实现 .Net Framwork 强类型设计实践 通过反射调用類的方法,屬性,字段,索引器(2種方法) ASP.NET: State Server Gems 完整的动态加载/卸载程序集的解决方案 ...

    java 面试题 总结

    SessionBean在J2EE应用程序中被用来完成一些服务器端的业务操作,例如访问数据库、调用其他EJB组件。EntityBean被用来代表应用系统中用到的数据。 对于客户机,SessionBean是一种非持久性对象,它实现某些在服务器上...

    LearnJavaToFindAJob:《 Java小白求职之路》,学习JavaTOFindAJob,史上Java最全面试题,一份Java程序员面试需要掌握的核心知识(8K〜20K范围)。包括Java基础,Spring,SpringCloud,Mybatis,MySQL,Redis,Nginx, EL,ZK,MQ,Dubbo,计算机网络,操作系统,Linux等面试题

    项目深度1.4,算法排序算法动态规划1.5,大厂原题1.6,面经分享2,更新时间线版本时间更新内容1.0 2021-01-01第一次发布3,在线阅读地址:为了方便大家阅读,我做了一个在线阅读文档,点击链接即可在线阅读:服务器...

    Tcl_TK编程权威指南pdf

    1988年,当我在Berkeley做ousterhout教授的博士生时,第一次听说了Tcl。我们当时正在设计一种名为Sprite的网络操作系统。同学们在努力编制一个新式的内核程序,而John编写了一个新的编辑器和终端仿真程序。他使用Tcl...

    基于Java平台的校园图书交易网站的设计与实现【毕业作品】.doc

    36 5.8 图书交易网站的项目结构图 37 6 总结与展望 39 6.1 总结 39 6.2 展望 39 1 绪论 1.1 课题产生背景 计算机的出现给人类社会带来了第三次工业革命,计算机和计算机网络已经深入到了 各行各业,各个领域,随着...

    php OA 源码 办公自动化源码

    新闻:有相关权限的用户可以发送各种业务、行政、人事等单位的相关新闻,被指定接收的用户可以随时查看,第一时间了解单位动态。支持新闻评论,可以直接在新闻及新闻评论中上传文件和图片,可以对重要的新闻进行置顶...

    网站网络安全应急预案.doc

    网站网络安全应急预案 第一部分 总则 本预案的适用范围为由信息中心负责建设管理的网站、网络安全事件应急处理。 一、日常安全工作职责 政务信息中心工作人员根据分工、做好以下工作: 1.对网站、网络进行日常检查、...

    网站网络安全应急救援预案.doc

    网络安全应急预案 第一部分 总则 本预案的适用围为由信息中心负责建设管理的、网络安全事件应急处理。 一、日常安全工作职责 政务信息中心工作人员根据分工、做好以下工作: 1.对、网络进行日常检查、分析风险、排除...

    电子采购系统设计.docx

    上图是一次网上竞价采购的效果图,随着各家投标单位的多次报价,形成一条价格向下的变化曲线。实践证明,企业采用竞价采购系统可以降低采购成本10%~35%;在降低采购成本同时,采用竞价采购还可以有效缩短采购周期。...

    网络安全应急预案模版.doc

    XX网络安全应急预案 第一部分 总则 本预案的适用范围为由信息管理中心负责建设管理的网站、 网络安全事件应急处理。 日常安全工作职责 信息管理中心工作人员根据分工、做好以下工作: 1.对网站、网络进行日常检查、...

    IIS6.0 IIS,互联网信息服务

    为了安全,要对对每个目录按不同的用户设置不同的访问权限,然后关闭一些不需要的服务,这样可以对不良人士利用IIS溢出漏洞访问到系统盘作个第一级防护。 3.iis安全设置之端口设置。IIS有默认的端口设置,只要稍有...

    vc++ 开发实例源码包

    请求的长度在第一个INT中指定. 2) 每个服务器通常会向多种客户提供服务, 例如, TS要同时向CP, NP提供服务, CP要向NP和其他CP提供服务, 同时还是其他CP, TS, SP的客户. 3) 每个服务器为客户服务时, 通常是长期的, 会...

Global site tag (gtag.js) - Google Analytics