关于Web应用开发流程的总结「建议收藏」

关于Web应用开发流程的总结「建议收藏」关于Web应用开发流程的总结

大家好,又见面了,我是你们的朋友全栈君。

以下内容为个人工作总结,如果不当,谢谢指出错误。

 关于Web应用开发流程的总结「建议收藏」

假设最简单的情况,一个开发人员,开发所有的代码,一个测试人员。一个测试的服务器,一个生产的服务器。

开发人员需要为公司开发一个项目,开发人员首先分析产品经理的需求,建立相应的模型,然后进行如下步骤:

  1. 编写代码
  2. 项目打包部署到测试服务器
  3. 测试人员测试,将Bug提交给开发人员
  4. 如果测试通过则进行第5步。如果仍然有Bug,开发人员解决Bug,并重复第2步,第3步。
  5. 项目测试通过后,打包部署到生产环境

这样就完成了一次迭代。

但是随后,任务变多,开发人员增多,共同维护一套代码,采用Git进行版本管理,不同的开发人员将代码提交到同一个仓库。先建三个分支,默认分支master,和即将发布的分支release,和初始化分支initialize。master是主分支,是最新的代码。release分支就是即将要发布到生产环境的代码。开发人员在一个迭代周期的初期,拉取最新的master代码,并在此基础上进行开发。假如项目发布后出现了一个紧急的Bug,需要立刻修复,而这时新的迭代已经开始,此时项目负责人需要将release上的代码合并到initialize分支上,那么负责修改那个紧急Bug的开发人员就需要从initialize分支上拉取最新的代码,并在此基础上进行开发,Bug解决后,将initialize分支上的代码打包部署到测试服务器上,测试无误后,将initalize分支上的代码合并到release分支上,然后将release分支上的代码发布到生产环境。

随后,庞大而臃肿的单体项目已经不能满足需求了,后面一次大的版本迭代开始对项目开始采用的分布式。一个整体的系统,进行分解,分解成最小程度依赖关系的单元,各个单元之间通过轻量级的数据交换和调用,这样做可以降低系统耦合度,且方便扩展,也可以合理分配资源。然而被拆解后,系统的容错率就会降低,假如单元A被单元B C所依赖,一旦A发生故障,可能会影响B C,不过现在也有很多框架可以解决这样的问题,提高容错率。

然后是打包方面的问题,目前都是将项目打成可以执行的文件包,或者是可以在容器中运行的文件包。然后部署在服务器并运行项目。这样手动操作未免较为繁琐,可以采用Jenkins持续集成工具。Jenkins本身也是一个服务,打个比方来说,开发到发布的各个环节就像一个个独立的机器,开发人员需要将每次生产出来的产品放到下一个机器中继续加工,这样很繁琐。而Jenkins就像连接各个设备的传送带,只需要在Jenkins一键操作,就可以完成一些工作。Jenkins配置流程大致如下:

  1. 首先将Jenkins服务运行在一台服务器上,假设这台服务器叫做Assembly
  2. 在Jenkins上配置好项目所在仓库的地址,这样Jenkins就可以调用版本管理工具拉取代码到Assembly
  3. 有在Jenkins上配置好打包工具,这样Jenkins就可以调用打包工具将源码打包成可以执行的包(或是在容器内运行的包),假设这个包叫做Component
  4. 假设有一台生产用的服务器叫做Produce,在Assembly和Produce之间建立通信,Jenkins调用传输工具将Assembly上的Component传输到Produce
  5. 现在Component已经在Produce上了,Jenkins调用通信工具将一些命令告知Produce去启动Component的,这样Component就在Produce上运行起来了

之后,Jenkins的工作流程就是:拉取代码 打包项目 部署项目 运行项目。这样开发人员只需要将代码提交到仓库,测试环境和生产环境就能保持同步更新了。需要说明的上述只是一个抽象的总结,实际情况,很有可能Assembly和Produce是同一台服务器。 

转载于:https://www.cnblogs.com/colin220/p/10176792.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/107118.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • python3中for循环的用法_Python3 for循环语句

    python3中for循环的用法_Python3 for循环语句语法foriterating_varinsequence:statements(s)如果一个序列中包含一个表达式列表时,它需要首先计算。然后,序列中的第一项被分配给所述迭代变量iterating_var,接下来,语句块被执行。列表中的每一项都被分配到iterating_var,并执行语句(statement)块,直到整个序列完成。流程图range()函数内置函数range()是迭代…

    2022年8月12日
    3
  • mongodb 集合_mongodb原理

    mongodb 集合_mongodb原理最近公司用MongoDB,整合一下网上的优缺点,学习下MongoDB没有找到原作者一:MongoDB的优点和缺点优点面向文档存储(类JSON数据模式简单而强大) 动态查询 全索引支持,扩展到内部对象和内嵌数组 查询记录分析 快速,就地更新 高效存储二进制大对象(比如照片和视频) 复制和故障切换支持 Auto-Sh…

    2025年6月26日
    0
  • hashlib

    hashlib使用Python中的hashlib来进行hash加密是非学简单的,下面是一段简单代码:[python] viewplaincopyimport hashlib  md5 = hashlib.md5() #创建一个MD5加密对象  md5.update(“JGood is a handsome boy”)  #更新要加密的数据  prin

    2022年4月27日
    49
  • 一个前端开发关于运维工具的思考:运维工具一定是难用的吗?「建议收藏」

    “在2019年的今天,我们想要一个易用的运维工具!”开源代码地址:https://github.com/WeBankPartners/we-cmdb一、背景WeCMDB作为WeCube开源计划的一部分,已经开源了一段时间。开源之后,有许多用户给了我们很多有用的意见及建议,帮助我们从不同的视角审视WeCMDB。这也是我们需要开源的原因之一,听取各方的意见相比于闭门造车可以少走更多的弯路…

    2022年4月11日
    34
  • Linux系统终端里的root@localhost变成root@bogon的主机名改变的解决办法

    Linux系统终端里的root@localhost变成root@bogon的主机名改变的解决办法bogon 是主机名利用 hostname 可以查看当前主机名 vi etc sysconfig network 中修改 HOSTNAME 必须重新启动才能生效 Linux 主机名被修改成 bogon 问题的几种解决办法当 Linux 主机名由 myhostname 变成了 bogon 了之后 访问网络就会出现问题 重启后也没有解决 网上搜索 N 久之后 发现了如下几种解决方式 特此记录一下 1 在 linux 下添

    2025年6月8日
    0
  • pycharm中安装包

    pycharm中安装包1、pycharm中万能提示键1、在import中导入包时,下方出现红色波浪线,表明当前python中存在该2、将鼠标停留在红色波浪线上,按Alt+Enter3、选择Installpackagenumpy4、查看已经安装的包,File—>Settings—>ProjectInterpreter2、在ProjectInterpreter中管理包1、包的升级和删除2.包的安装3.安装指定的包和指定的版本…

    2022年5月16日
    40

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号