【企业级开发模型】企业级开发流程 | 系统环境开发

目录

1.企业级开发流程

2.系统环境开发


1.企业级开发流程

  • 想要交付一个软件项目,至少需要经过以下三个流程。软件代码的开发-------->软件代码的测试------->软件发布上线。只有将软件发布上线之后,用户才可以访问到我们的一个软件。
  • 软件代码的开发:代码的规划------->进行开发------>开发完成进行编码----->进行构建

  • 软件代码的测试:测试代码,解决bug,直至软件稳定。

  • 发布上线&维护:发布---->部署(软件代码开发完成,进行服务器的部署)----->用户用服务器访问软件--->服务器需要维护(不能隔一段时间,服务器就奔溃了)。

  • 总结:⼀个软件从零开始到最终交付,⼤概包括以下⼏个阶段:规划、编码、构建、测试、发布、部署和维护。

  • 最初,程序⽐较简单,⼯作量不⼤,程序员⼀个⼈可以完成所有阶段的⼯作。但随着软件产业的⽇益发展壮⼤,软件的规模也在逐渐变得庞⼤。软件的复杂度不断攀升,⼀个⼈已经hold不住了,就开始出现了精细化分⼯。

  • 开发团队:软件开发工程师。写代码

  • 测试团队:软件测试工程师。测试代码

  • 运维团队:软件运维工程师。维护代码,保持服务器的稳定性

在传统的 IT 组织下,开发团队(Dev)和运维团队(Ops)之间诉求不同:

  • 开发团队(尤其是敏捷团队)追求变化
  • 运维团队追求稳定
  • 【解释】:开发团队和运维团队存在利益冲突:开发团队写越多的代码,出现的bug可能就越多。那么服务器不稳定的概率也极大的提高了。服务器的稳定性和软件代码的稳定性是直接挂钩的。开发团队(业务团队):代码迭代的周期是非常快的。(本周/周迭代)上线很多代码。写代码非常频繁,增加代码出现的bug的概率。
  • ⽅往往存在利益的冲突。⽐如,精益和敏捷的团队把持续交付作为⽬标,⽽运维团队则为线上的稳定⽽强调变更控制。部⻔墙由此建⽴起来,这当然不利于 IT 价值的最⼤化。
  • 为了弥合开发和运维之间的鸿沟,需要在⽂化、⼯具和实践⽅⾯的系列变⾰⸺DevOps正式登上舞台。
  • DevOps(Development和Operations的组合词)是⼀种重视“软件开发⼈员(Dev)”和“IT运维技术⼈员(Ops)”之间沟通合作的⽂化、运动或惯例。
  • 透过⾃动化“软件交付”和“架构变更”的流程,来使得构建、测试、发布软件能够更加地快捷、频繁和可靠。
  • 在DevOps的软件开发过程包含计划、编码、构建、测试、预发布、发布、运维、监控,由此可⻅DevOps的强⼤。

讲了这么多,这个故事到底和我们课程的主题 Git 有什么关系呢? 

  • 部署,就是部署开发团队的开发的某一个版本的代码。Git分布式管理系统。可以部署远程的master上的一个代码。所以Git很重要❗ 
  • 举⼀个很简单的例⼦就能说明这个问题。⼀个软件的迭代,在我们开发⼈员看来,说⽩了就是对代码进⾏迭代,那么就需要对代码进⾏管理。如何管理我们的代码呢,那不就是 Git(分布式版本控制系统) !所以 Git 对于我们开发⼈员来说其重要性就不⾔⽽喻了。

2.系统环境开发

  • 对于开发人员来说, 系统开发过程中,部署在服务器上的软件代码不一定是稳定的。必须要经过的几个环境。
  • 对于用户来说,日常访问的一些APP/网站都是一些服务器。服务器上面部署的都是软件开发的一些稳定的代码。(不会出现闪退/图片不出现等问题)
  • ❗开发人员是不能将正在开发的代码部署到这些以上服务器的。
  • 给开发人员创建一批属于他们正在开发的服务器。给用户访问的服务器是另外一套服务器。二者互不影响。
  • 这两套服务器是存在不同的环境下面的,是环境隔离概念。
  • 对于一些小型的系统,上面这两套环境就是足够的。开发人员和测试人员在开发环境。用户在线上/发布环境。但是不仅仅这两种环境,如果对于较大一点的系统和环境来说就不够。

⾔归正传,对于开发⼈员来说,在系统开发过程中最常⽤的⼏个环境必须要了解⼀下:

  • 开发环境:开发环境是程序猿们专⻔⽤于⽇常开发的服务器。为了开发调试⽅便,⼀般打开全部错误报告和测试⼯具,是最基础的环境。
  • 测试环境:⼀个程序在测试环境⼯作不正常,那么肯定不能把它发布到⽣产机上。该环境是开发环境到⽣产环境的过渡环境。
  • 预发布环境:该环境是为避免因测试环境和线上环境的差异等带来的缺陷漏测⽽设⽴的⼀套环境。其配置等基本和⽣产环境⼀致,⽬的是能让我们发正式环境时更有把握!所以预发布环境是你的产品质量最后⼀道防线,因为下⼀步你的项⽬就要上线了。要注意预发布环境服务器不在线上集成服务器范围之内,为单独的⼀些机器。
  • ⽣产环境:是指正式提供对外服务的线上环境,例如我们⽬前在移动端或PC端能访问到的APP都是⽣产环境。
  • 这⼏个环境也可以说是系统开发的三个重要阶段:开发->测试->上线。
  • 生产集群(生产环境上发布)需要一个稳定的效果:代码的稳定+环境配置(不同的环境存在不同的环境配置)正确的环境配置。可能因为不同的环境配置,导致生产集群服务器的不稳定,出现了预发布集群(配置和生产集群上的环境配置是一样的)。
  • 灰度/仿真环境:地域的灰度/存在人群的灰度等等。在预发布集群和生产集群之间的。小范围在某个区域,让这个区域的人员让帮我们测试一下是否没有bug。再发布到生产集群,面向全国/全球范围的人群。
  • 对于规模稍微⼤点的公司来说,可不⽌这么⼏个环境,⽐如项⽬正式上线前还存在仿真/灰度环境,再⽐如还存在多套测试环境,以满⾜不同版本上线前测试的需要。
  • ⼀个项⽬的开始从设计开始,⽽⼀个项⽬的成功则从测试开始。⼀套良好的测试体系可以将系统中绝⼤部分的致命Bug 解决在系统上线之前。测试系统的完善和成熟也是衡量⼀个软件企业整体⽔平的重要指标之⼀,测试往往被忽视,因为它对可以的隐性、对软件开发企业不产⽣直接的效益,但是它却是软件质量的最终保障,乃⾄项⽬能否成功的重要因素!测试环境是非常重要,当然每个企业不同,视情况而定!

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1488452.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

C语言 | Leetcode C语言题解之第284题窥视迭代器

题目: 题解: bool flag;struct PeekingIterator {struct Iterator *iterator;int nextElement; };struct PeekingIterator* Constructor(struct Iterator* iter) {struct PeekingIterator* piter malloc(sizeof(struct PeekingIterator));piter->it…

[Vulnhub] Raven WordPress+SUDO-Python权限提升+MSQP自动化Mysql权限提升

信息收集 IP AddressOpening Ports192.168.101.159TCP: $ nmap -p- 192.168.101.159 --min-rate 1000 -sC -sV PORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH 6.7p1 Debian 5deb8u4 (protocol 2.0) | ssh-hostkey: | 1024 26:81:c1:f3:5e:01:ef:93:4…

UDP/TCP协议解析

我最近开了几个专栏,诚信互三! > |||《算法专栏》::刷题教程来自网站《代码随想录》。||| > |||《C专栏》::记录我学习C的经历,看完你一定会有收获。||| > |||《Linux专栏》&#xff1…

android settings提示音开关状态与修改(二)

android系统,settings提示音类型: 充电提示音开关,文件路径: packages/apps/Settings/src/com/android/settings/notification/ChargingSoundPreferenceController.java 创建并设置开关状态: public ChargingSoundPre…

git sendemail使用

教程参考: git-send-email - 以电子邮件形式发送补丁集 1、安装git-email 2、配置 SMTP 服务器 git config --global sendemail.smtpserver smtp.163.com git config --global sendemail.smtpserverport 465 git config --global sendemail.smtpuser xxxxxx163.c…

设计模式笔记(一)

目录 设计模式共有23种,也可称为GOF23 单例模式(重点,常用) 工厂模式 代理模式:(SpringAOP的底层原理) 静态代理模式:(写死一个代理类Proxy) 动态代理模…

ansible基础讲解和加密文件讲解

ansible最重要的三个文件 /etc/ansible/ansible.cfg #####ansible的配置文件 /etc/ansible/host ##清单文件inventory ansible-navigator.yml ####以yml结尾的文件可以理解为conf结尾的文件,是配置文件,用于设置剧本playbook playbook讲解 以.yml结…

Superset二次开发之筛选器native Filters 水平布局

引言 Apache Superset作为一个功能强大的开源数据探索和可视化平台,提供了丰富的配置选项来定制化用户体验。其中,HORIZONTAL_FILTER_BAR 是一个重要的配置项,专注于优化和改进Superset中的筛选器条布局与交互。 什么是HORIZONTAL_FILTER_B…

IEC104转MQTT网关支持MQTT对接Ignition、阿里云、华为云、亚马逊AWS、ThingsBoard、Zabbix平台助力远程管理

钡铼推出了一款专为电力系统设计的数据采集网关——IEC104转MQTT网关BE113,感兴趣的朋友接着往下看: 一、网关概述 IEC104转MQTT(Ignition)网关BE113是一款专为电力系统设计的数据采集网关,支持DL/T645和IEC104等协议的设备。上行支持MQTT协…

LLama 405B 技术报告解读

LLama 405B 技术报告解读 果然传的消息都是真的,meta在24号凌晨发布了llama 3的405B版本,这次还是做一个技术报告解读。 值得一提的是,在技术报告的开头,meta特意强调了一个 Managing complexity,大意是管控复杂度。…

OAK-FFC 分体式相机使用入门介绍

概述 OAK FFC 主控板和多种可选配镜头模组非常适合灵活的搭建您的3D人工智能产品原型。由于镜头是分体式的,因此你可以根据需要测量的距离,自定义深度相机安装基线,并根据你的项目要求(分辨率、快门类型、FPS、光学元件&#xff…

巴黎奥运启幕 PLM系统助力中国制造闪耀全球

2024巴黎奥运会将于法国当地时间7月26日在塞纳河畔正式开幕。即将亮相巴黎奥运会赛场的除了中国运动员之外,还有一批批中国制造企业为奥运会设计并制造的体育设备也将惊艳亮相,成为赛场上另一道亮丽的风景线。 在新时代的浪潮中,中国制造业坚…

提交高通量测序处理数据到 GEO --- 操作流程

❝ 写在前面 由于最近在提交课题数据到 NCBI 数据库,整理了相关笔记。本着自己学习、分享他人的态度,分享学习笔记,希望能对大家有所帮助。推荐先按顺序阅读往期内容: 1. 提交高通量测序数据到 GEO --- 说明书 2. 提交高通量测序原…

tcache attack

Tcache Attack tcache让堆利用更加简单: tcache回顾: 在 tcache 中新增了两个结构体,分别是 tcache_entry 和 tcache_perthread_struct: /* We overlay this structure on the user-data portion of a chunk when the chunk is …

如何安全的申请SSL证书

随着数字化时代的快速发展,互联网政务应用已成为政府服务民众、提升治理效能的重要途径。在这个网络日益复杂的时代,政务网站的安全问题显得尤为重要。2024年,国家出台并从2024年7月1日开始实施执行《互联网政务应用安全管理规定》&#xff0…

使用 XRDP 远程linux主机

一、简介 XRDP是一个开源的远程桌面协议(Remote Desktop Protocol,RDP)服务器,采用的是标准的RDP。 官网地址:https://www.xrdp.org/ github地址: https://github.com/neutrinolabs/xrdp/releases XRDP也是C/S架构&…

LLM及GPT知识点

工欲善其事必先利其器,在了解大语言模型和GPT之前先要了解基本概念。 LLM Large Language Model (LLM) 即大型语言模型,也叫大语言模型,是一种基于深度学习的自然语言处理(NLP)模型,它能够学习自然语言的语…

汇昌联信科技拼多多怎么样?

汇昌联信科技拼多多怎么样?汇昌联信科技是一家专注于提供电子商务解决方案的公司,其业务涉及多个电商平台,其中就包括了国内知名的电商平台——拼多多。对于汇昌联信科技在拼多多上的表现,我们可以从以下几个方面来进行深入的探讨和分析。 一…

网站用HTTP访问的危害以及如何升级HTTPS访问

在互联网世界中,数据传输的安全性是至关重要的。我们每天都在网络上进行各种操作,从浏览网页、购物到银行转账,每一项活动都涉及敏感信息的传递。然而,在这个过程中,我们的数据可能面临被窃取、篡改或滥用的风险。这正…

git实践汇总【配置+日常使用+问题解决】

**最初配置步骤:** git config --global user.name "yournemae" git config --global user.email "yourmail" git config -l ssh-keygen -t rsa -C “xxx.xxxx.EXTcccc.com” git config --global ssh.variant ssh $ git clone git仓库路径 git…