关于Web应用开发流程的总结

时间: 2018-12-26阅读: 1517标签: 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


站长推荐

1.云服务推荐: 国内主流云服务商,各类云产品的最新活动,优惠券领取。地址:阿里云腾讯云华为云

链接: http://www.fly63.com/article/detial/1702

web安全漏洞种类以及对应方案

SQL注入、XSS跨站脚本攻击、CSRF跨站请求伪造、越权访问、任意文件上传、任意文件读取、任意文件包含、任意代码执行、撞库攻击、用户名/口令爆破、注册模块设计缺陷、短信接口设计缺陷

5 张图描绘Web3 堆栈全景

Web3 堆栈最令人难以置信的一点是,它们不需要任何集中协调就可以组合在一起。开发本身是去中心化的。没有主架构师。这与地球上几乎所有其他的开发堆栈项目形成了鲜明的对比。在 Linux 基金会,少数人设定整个 Linux 的方向

成为 Web 开发大师你必须知道的 7 件事情

曾经是这样的,懂点编码,并可以偶尔耍点酷,那么你就会被认为是一个Web开发大师。但是现在,情况再也不是这样的了。Web开发已经朝着主流方向发展,开发人员数量显著增加。

Web前端设计排版小技巧

web设计排版多种多样,如何更好的排版、设计出更符合美学的设计了?设计该如何更好的做好网页设计的布局排版了,今天给大家分享这几个小技巧,希望大家能有所用。

开发者吐槽:谷歌引入 Web 新标准的方式过于专横

我和我在微软的同事们认为世界需要更多的 Clippy——也就是这个可爱的动画回形针。为此,我们在 Edge 6.0 中引入了一项新功能。Web 开发者现在可以使用 <clippy> 来调用一个动画虚拟助手了。

Web 研发模式的演变

Web 1.0 时代,非常适合创业型小项目,不分前后端,经常 3-5 人搞定所有开发。页面由 JSP、PHP 等工程师在服务端生成,浏览器负责展现。这种模式的好处是:简单明快

web负载均衡,几种常见负载均衡比较

当一台服务器无法支持大量用户访问时,将用户分摊到两个或多个服务器上的方法叫负载均衡。负载均衡可以将工作任务分摊到多个处理单元,从而提高并发处理能力。根据实现的原理不同,常见的web负载均衡技术包括:DNS轮询、IP负载均衡和CDN等

Web标准

Web标准不是某一个标准,而是由W3C和其他标准化组织制定的一系列标准的集合。主要包括结构(Structure)、表现(Presentation)和行为(Behavior)三个方面。

WebAR 如何改变增强现实的未来

增强现实技术在开发人员和智能手机用户中越来越受欢迎,但它还是没有在无所不在的技术中占据一席之地。要体验 AR,用户必须安装专用的程序,但经常会在用过几次后就将其删除,甚至根本去下载它

Web服务常用的几种开发方法

Web服务,即通过程序实现网页服务,服务启动后,一般用户可通过访问URL获取到网站提供的网页服务,如网页浏览、留言、商品购买等。开发Web服务的技术有很多,有Java、Python、ASP.NET、脚本语言等

点击更多...

内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!