生产环境和开发环境_环境部署:开发、测试和线上环境的区别

点击蓝字

30ae56aada840ef10b364918e0cb9788.gif

关注我们

a580f3b29e5253483d7fc34fdf3299bc.png

    软件开发环境(Software Development Environment,SDE)是指在基本硬件和宿主软件的基础上,为支持系统软件和应用软件的工程化开发和维护而使用的一组软件,简称SDE。它由软件工具和环境集成机制构成,前者用以支持软件开发的相关过程、活动和任务,后者为工具集成和软件的开发、维护及管理提供统一的支持。

    项目部署环境一般可分为三种:生产环境,测试环境,开发环境。那什么是测试环境,什么是线上环境呢?开发环境又是什么,三者之间的关系是怎样的?

【开发环境】是什么

▶ ▶ ▶

294c479a77f0f43dedcc4aa1576939c7.png

    开发环境是开发人员专门用于开发的服务器,配置可以比较随意,为了开发调试方便,一般打开全部错误报告和测试工具,是最基础的环境。开发环境的分支,一般是feature分支。

    开发环境更多的是各自开发的本地,代码可以随意修改,方便开发自身测试用,但该环境由于可以直接修改,很多bug不容易被发现,只能是开发自测或写代码时候自用。

▶ ▶ ▶

7d65775aa3c4faba3c19ba0a73b53e77.png

    开发环境是研发团队的领地,在这里研发团队频繁的发布版本,经常爆发小规模的资源冲突,本来什么都没有的环境,经过他们之手,就可以看见很多功能的显现。但开发的过程的也会出现一些问题。

01

为什么会这样呢

    01.研发团队需要提供假数据来保证前后端并发开发。

    02.研发团队经常会出现思维漏洞。

    03.不少研发团队的成员没有持续集成的习惯,总是在自己本地环境中做研发。

    04.开发环境没有版本管理,所有的依赖关系都不够稳定。

02

测试人员需提前测试吗

    测试人员不需要在开发环境正式的介入,特别是当出现开发人员说来不及测试。如果测试,会导致更混乱,合理的解决办法是,在明确优先级的情况下,分出迭代,先保证重要的功能进入测试环境。

    测试人员要做的就是在任意一个时间段,到开发环境去看一下,关键的逻辑有没有错误,有没有重大的偏差,而不是做严谨的测试。

    在混沌无序的开发环境中,到发布到测试环境,必须有序且稳定,并且随着开发的深入,冲突的规则越来越少,通常认为在测试环境,应该检测出来的Major级别以上的Bug为0,不多于4个的NormalBug。

30ae56aada840ef10b364918e0cb9788.gif

【测试环境】是什么

▶ ▶ ▶

97294f7b320fd36a78b94a84d41b44b9.png

    测试环境一般是克隆一份生产环境的配置,一个程序在测试环境工作不正常,那么肯定不能把它发布到生产服务器上,是开发环境到生产环境的过度环境。测试环境的分支一般是develop分支,部署到公司私有的服务器或者局域网服务器上,主要用于测试是否存在bug,一般会不让用户和其他人看到,并且测试环境会尽量与生产环境相似。

    测试环境是相对稳定的环境。代码是可以提交再pull。该环境完全模拟线上环境(发布后),代码在测试环境由测试进行功能性、自动化测试。在确保上线前的最后质量保证,通常这里能发现大部分的问题 bug,使代码保持相对稳定的状态,在这里测试通过后,可以达到上线标准。

▶ ▶ ▶

bcb8b8f4527ece0f900341311f20e09e.png

01

测试秩序

    01.在测试环境中,只有两种情况下才允许被发布,一种是新的迭代开发,一种是Bug的修复。这是指,每一次的发布,要么是对一个迭代开发的需求,要么是对一个Bug的修复。

    02.发布到测试环境,必须要指定版本号。

    03.发布到测试环境,必须要指定回滚版本。

    04.开测试环境发布之后,必须由运维,开发依次验证是否发布成功。

    05.测试环境的发布,原则上只允许每天发布一次。

    06.测试环境中,开发人员应该只有读日志的权限,不应该重启和发布的权限。

    测试环境并不是单纯意义上的找Bug,更是对线上环境发布的演练,所以测试环境其实是包含了“演练发布脚本”+“寻找系统Bug”两个环节,而我们往往会忽视掉第一点,等到线上环境发布的时候出现问题,再怎么甩锅都没用了。

30ae56aada840ef10b364918e0cb9788.gif

【线上环境】是什么

▶ ▶ ▶

a2c3f55106ed5b39d347747b063edffc.png

    线上环境是指正式提供对外服务的,一般会关掉错误报告,打开错误日志,是最重要的环境。部署分支一般为master分支。

    线上环境就是一个给用户使用的场所。所有代码应该都由测试通过后,才能发布,并给用户使用,这样可以使用户体验提升一个高度。

▶ ▶ ▶

e275b8b7513477e05f01458dca37a015.png

    上线的严肃程度远程开发环境,历经开发和测试的层层把关,倒底系统上线之后是什么样子,答案即将揭晓。

01

上线原则

    01.如有问题,五分钟之内无法解决,立刻回滚,严禁在线上调试和解决问题。

    02.发布必须选择每天活跃用户最少的时候。

    03.视发布版本的重要度来决定是否要对用户公告停机或者是不停机维护。

    04.视发布版本的重要度来决定是否对新功能做运营推广。

    05.线上发布必须所有团队在线

    06.发布之后,运维,研发,测试和产品必须依次验证。

    07.发布之后,重点观察用户的反馈和系统日志。

    08.发布应该当成正常发布和紧急发布。

    线上的Bug,一旦是Major级别,可以定性成是事故了,对事故,往往需要摆脱正常发布的限制,可以走紧急发布流程。版本更新通常分为强制更新和非强制更新,

END

7fe52eb86ada5b1741dd8f5835867c8e.png

    三个环境也可以说是系统开发的三个阶段:开发->测试->上线,每一个环境都有不同的特点,测试人员的正常工作环境,就是测试环境,生产环境也就是通产说的真实的环境,也是最后交给用户的环境。

微信公众号

微信号|小马技术圈

分享|交流

d99b69edaa11521e50eee261b2b0d4fd.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值