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

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

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

  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是同一台服务器。

关于Web应用开发流程的总结的更多相关文章

  1. flask实战-留言板-Web程序开发流程

    Web程序开发流程 在实际的开发中,一个Web程序的开发过程要设计多个角色,比如客户(提出需求).项目经理(决定需求的实现方式).开发者(实现需求)等,在这里我们假设自己是一个人全职开发.一般来说一个 ...

  2. 【转】Yeoman:Web 应用开发流程与工具

    原文转自:http://blog.jobbole.com/62098/ 随着 Web 2.0 和 HTML 5 的流行,现在的 Web 应用所能提供的功能和交互能力比之前传统的 Web 应用要强大很多 ...

  3. WEB前端开发流程总结

    作者声明:本博客中所写的文章,都是博主自学过程的笔记,参考了很多的学习资料,学习资料和笔记会注明出处,所有的内容都以交流学习为主.有不正确的地方,欢迎批评指正 WEB前端开发项目流程总结 1.新建项目 ...

  4. web项目开发流程

    对于一个web项目,在实际编码之前,有一些通用的步骤来planning a website: 0.Defining the project (predr0->dr0) 对于外部项目,客户一般会发 ...

  5. 2022年Web前端开发流程和学习路线(详尽版)

    前言 前端侧重于人机交互和用户体验,后端侧重于业务逻辑和大规模数据处理.理论上,面向用户的产品里,所有问题(包括产品.设计.后端.甚至看不见的问题)的表现形式,都会暴露在前端,而只有部分问题(数据问题 ...

  6. 单页web应用开发流程

    用循环的视角审视Web应用开发 框定一个一致的SPA图形用户界面(GUI)和模型 将SPA的原则带回服务器端 聚集于对合适的应用进行早期SPA开发[3]  SPA协调的起点是认识到SPA与脚本和网页编 ...

  7. PC端Web项目开发流程

    从前一直再做前端,突然想到如果有一天领导让自己独立承担一个web 项目的话是否有足够的能力去接这个任务,要学会自己去搭建一些基础的工具信息.所有的这一切在心里都要有个大致的流程,不然真正做的时候难免会 ...

  8. Web平台开发流程以及规范

    1.js和css的放的位置顺序与加载速度分析 为了让客户先看到效果,必须要先加CSS 如果在先head加载CSS,如果CSS大,会先下载CSS,再渲染HTML标签 如果CSS放在head中,当显示出H ...

  9. Web项目开发流程 PC端

      一.了解.明确需求. 这个应该是第一步了,不了解需求你就不知道为什么要做,要怎么去做这个项目的工作. (1)明确需求是相当重要的,很有必要去和产品经理.设计人员去沟通,需要明白每一个按钮,每一个开 ...

随机推荐

  1. tomcat实现https

    第一步:生成key文件: C:\>keytool -genkey -alias tomcat -keyalg RSA -keystore C:\tomcat.key 密码最好设置默认change ...

  2. Linux 学习总结(三)

    一. yum 命令 .列出所有可更新的软件清单命令:yum check-update .更新所有软件命令:yum update .仅安装指定的软件命令:yum install <package_ ...

  3. 【转】修复关于apache-xampp的问题:Port 443 in use by “vmware-hostd.exe”!

    在电脑里装了VMware后,再要装xampp,十有八九就会出现这个问题: 11:23:37  [Apache]     Problem detected! 11:23:37  [Apache]    ...

  4. Maven 常见错误

    1.ReasonPhrase: Forbidden: |--- 1.注意用户的权限以及角色role的设置,一般是没有权限才会被禁止的. 2.Failed to collect dependencies ...

  5. Linux服务器安装配置Nginx服务器

      Nginx("engine x")是一款是由俄罗斯的程序设计师Igor Sysoev所开发高性能的 Web和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务 ...

  6. perl-我的第一个程序

    1.问题描述: 总共90位长度的位流数据,其中只有5位的数据为1,其余位全部为0.统计好多组5位的简化数据(每一位之间空格隔开,每一组一行),将其扩展到90位. #!D:/EDA/Perl/bin $ ...

  7. LibreOJ 6282. 数列分块入门 6

    题目链接:https://loj.ac/problem/6282 参考博客:http://www.cnblogs.com/stxy-ferryman/p/8560551.html 这里如果用数组的话元 ...

  8. 初识Netty

    我们已经了解了Socket通信/IO/NIO/AIO编程,对于通信模型已经有了一个初步的认识,其实我们之前所学习的仅仅是一个模型,如果想把这些真正的用于实际工作中去,其实我们之前所学习的仅仅是一个模型 ...

  9. FortiGate恢复出厂

    1.需求 当需要把设备的所有配置删除,可进行恢复出厂操作.恢复出厂后所有配置都将丢失,若一定要恢复出厂设置建议前先备份当前的配置:备份配置操作步骤请参见"系统管理">> ...

  10. Quartz代码及配置详解(转)

    Quartz可以用来做什么? Quartz是一个任务调度框架.比如你遇到这样的问题 想每月25号,信用卡自动还款 想每年4月1日自己给当年暗恋女神发一封匿名贺卡 想每隔1小时,备份一下自己的爱情动作片 ...