web网站工程项目前期需求分析与规划怎么写?

news2025/1/17 2:59:12

在当下,判断一份网站工程项目文档是否优秀,项目目录是最直接的体现,同时,工程说明、需求分析和项目规划各版块的内容都缺一不可。工欲善其事必先利其器,前期准备得越充分,后期就会越顺利。
本期,和知了姐一起学习如何围绕目录、工程说明、需求分析、项目规划四部分,写出一份专业的Web网站工程项目吧~

                          目录标题样式

在这里插入图片描述

                           工程说明

1、工程概况

本工程为xx公司web业务设计、建设工程;工程项目位于xx市xx区xx园,本次项目内容包括:基于办公场地及xx公司办公业务需求设计合理web业务方案及相关建设。

2、项目组织系统

项目初步估计两套网站业务在日常并发约5000,活动期间用户并发约为20W。要实现网络建设的实用性,后期业务扩张的可扩展性,对网站内部的数据、数据访问传输信息的安全的保障,避免非法用户访问和攻击。保证网站可以不间断的24小时为客户服务。做到便于后期运维人员维护管理。整体的预算要可控,性能要达到使用要求。项目综合整体架构主要由应用层、服务层、数据层、管理层组成。通过负载均衡、前后端分离、缓存技术等技术提高该提高该系统的并发量;由于公司还有对数据维护有相关业务需求,因此需要根据公司需求部署站库分离,实现数据易维护;使用身份认证技术实现运维审计及外网员工更安全的进入运维平台。

建设项目名称:xx公司web业务建设

建设单位名称:xx公司

施工单位名称:xx公司

一、需求分析

建设原则

高性能:提供快速的访问体验。

高可用:网站服务可以24小时不间断正常访问。

可伸缩:通过硬件增加/减少,提高/降低处理能力。

安全性:提供网站安全访问和数据加密,安全存储等策略。

扩展性:方便的通过新增/移除方式,增加/减少新的功能/模块。

敏捷性:随需应变,快速响应;

1.1

架构需求分析

分层:将整个项目分为应用层、服务层、数据层、管理层四个层次。

分割:按照模块进行划分,比如应用层分为首页,用户中心。

分布式:将应用分开部署(比如多台物理机),通过远程调用协同工作。

集群:一个模块部署多份(如:多台物理机),通过负载均衡共同提供对外访问。

缓存:将数据放在距离应用最近的位置,加快访问速度。

冗余:增加副本,提高可用性,安全性,性能。

安全:对已知问题有有效的解决方案,对未知/潜在问题建立发现和防御机制。

敏捷性:积极接受需求变更,快速响应业务发展需求。

1.2

高性能的需求分析

以用户为中心,提供快速的网页访问体验。主要参数有较短的响应时间,较大的并发处理能力,较高的吞吐量,稳定的性能参数。

使用缓存,异步,集群等。

1.3

高可用的需求分析

网站应该在任何时候都可以正常访问。正常提供对外服务。

不同层级使用的策略不同,采用冗余备份和失效转移解决高可用问题。

应用层:一般设计为无状态的,对于每次请求,使用哪一台服务器处理是没有影响的。使用负载均衡技术,实现高可用。

服务层:负载均衡,分级管理,快速失败(超时设置),异步调用,服务降级,幂等设计等。

数据层:冗余备份(冷,热备[同步,异步],温备),失效转移(确认,转移,恢复)。

1.4

可伸缩的需求分析

伸缩性是指在不改变原有架构设计的基础上,通过添加/减少硬件(服务器)的方式,提高/降低系统的处理能力。

应用层:对应用进行垂直或水平切分。然后针对单一功能进行负载均衡。

数据层:分库,分表等;常用算法Hash,一致性Hash。

1.5

安全的需求分析

对已知问题有有效的解决方案,对未知/潜在问题建立发现和防御机制。对于安全问题,首先要提高安全意识,建立一个安全的有效机制,从政策层面,组织层面进行保障。比如服务器密码不能泄露,密码每月更新,并且三次内不能重复;每周安全扫描等。以制度化的方式,加强安全体系的建设。同时,需要注意与安全有关的各个环节。安全问题不容忽视。包括基础设施安全,应用系统安全,数据保密安全等。

基础设施安全:硬件采购,操作系统,网络环境方面的安全。一般采用,正规渠道购买高质量的产品,选择安全的操作系统,及时修补漏洞,安装杀毒软件防火墙。防范病毒,后门。设置防火墙策略,建立DDOS防御系统,使用攻击检测系统,进行子网隔离等手段。

应用系统安全:在程序开发时,对已知常用问题,使用正确的方式,在代码层面解决掉。防止跨站脚本攻击(XSS),注入攻击,跨站请求伪造(CSRF),错误信息,HTML注释,文件上传,路径遍历等。

数据保密安全:存储安全(存在在可靠的设备,实时,定时备份),保存安全(重要的信息加密保存,选择合适的人员复杂保存和检测等),传输安全(防止数据窃取和数据篡改)。

二、项目规划技术要点

2.1

项目拓扑图

根据对xx公司实地考察以及项目的需求分析,符合该项目需求拓扑规划如下:
在这里插入图片描述

在这里插入图片描述

2.2

项目地址规划

在这里插入图片描述

在这里插入图片描述

2.3

应用层

LVS+keepalived高可用负载均衡集群。

Keepalived的设计目标是构建高可用的LVS负载均衡集群,可以调用ipvsadm工具来创建虚拟服务器,管理服务器池,而不仅仅用作双机热备。使用keepalived构建LVS集群更加简便易用,主要优势体现在对LVS负载调度器实现热备切换、提高可用性、对服务器池中的节点服务器进行健康状态检查、自动移除失效节点、加入有效节点等功能。

2.4

服务层

Nginx是一个高性能的HTTP、反向代理服务,其特点是占有内存少,并发能力强,nginx的并发能力在同类型的网页服务器中表现较好,在整个web应用程序的生产环境使用率中,该软件名列前茅。其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。

2.5

数据层

2.5.1 MySQL双机热备

MySQL主从复制的目的是实现数据库冗余备份,将master数据库数据定时同步到slave库中,一旦master数据库宕机,可以将web应用数据库配置快速切换至slave数据库,确保web应用有较高的可用性。

2.5.2 MySQL读写分离

当需要进行读写分离时,必须先进行部署主从复制mysql。

简单来说,读写分离就是只在主服务器上写,在从服务器上读。基本的原理是让主数据库处理事务性查询,而从数据库处理select查询。数据库复制被用来把事务性查询导致的变更同步到群集中的从数据库。

2.5.3 数据库缓存服务器–Redis

Redis 是一个开源的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。它支持多种类型的数据结构,如字符串,散列,列表,集合,有序集合与范围查询,bitmaps hyperloglogs 和 地理空间索引半径查询。Redis内置了复制,LUA脚本,LRU驱动事件,事务和不同级别的磁盘持久化,并通过 Redis哨兵和自动分区提供高可用性。

2.6

管理层

2.6.1 Zabbix

Zabbix是一个基于Web界面的企业级开源监控套件,提供分布式监控系统与网络监视功能。具备主机的性能监控,网络设备性能监控,数据库性能监控,多种告警方式,详细报表,图表的绘制等功能。监测的对象可以是Linux或Windows服务器,也可以是路由器,交换机等网络设备。通过SNMP(Simple Network Management Protocol,简单网络管理协议),Zabbix Agent,PING。端口监视等方法提供对远程网络服务器等监控,数据收集等功能,并提供通知机制使系统管理员可以快速定位,解决系统中存在的各种问题。

2.6.2 JumpServer堡垒机

堡垒机,即在一个特定的网络环境下,为了保障网络和数据不受来自外部和内部用户的入侵和破坏,而运用各种技术手段监控和记录运维人员对网络内的服务器、网络设备、安全设备、数据库等设备的操作行为,以便集中报警、及时处理及审计定责。集中管理功能。

2.6.3 日志服务–rsyslog

在centos7系统中,默认的日志系统是rsyslog,它是一类unix系统上使用的开源工具,用于在ip网络中转发日志信息,rsyslog采用模块化设计,是syslog的替代品。它实现了基本的syslog协议,直接兼容syslogd的syslog.conf配置文件,在同一台机器上支持多个rsyslogd进程,支持多线程,丰富的过滤功能,可以实现过滤日志信息中的任何部分,可将消息过滤后在转发,灵活的配置选项,配置文件中可以写简单的逻辑判断,自定义输出格式等,增加了重要的功能,如使用tcp进行消息传输,支持UDP,TCP,SSL,TLS,RELP,有现成的前端web展示程序,可以使用MySQL,PGSQL,Oralce实现日志存储。

2.7

硬件资产清单

在这里插入图片描述

2.8

主要硬件设备参数

服务器:超聚变2288HV5,主要参数如下:
在这里插入图片描述

交换机:华为数通智选S5735S-L32ST4X-A1(A),主要参数如下:
在这里插入图片描述

防火墙:华为USG6110E-AC,主要参数如下:
在这里插入图片描述

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

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

相关文章

Centos7安装图形化界面并使用Windows远程桌面连接(包含离线部署)

一、在centos7 中部署远程桌面所使用的程序 1、关闭防火墙和selinux(xrdp是通过3389端口远程桌面连接 ) [rootlocalhost ~]# systemctl stop firewalld #临时关闭防火墙 [rootlocalhost ~]# systemctl disable firewalld.service #永久关闭防火墙 [rootlocalhost ~]# setenf…

SpringMVC:SpringMVC之JSON数据传输参数(5)

JSON数据传输参数1 JSON数据传输参数2 JSON普通数组3 JSON对象数据4 JSON对象数组5 小结1 JSON数据传输参数 现在比较流行的开发方式为异步调用。前后台以异步方式进行交换,传输的数据使用的是JSON,所以前端如果发送的是JSON数据,后端该如何接收? 对于…

面试官:单体架构怎么向分布式微服务架构演变的?(8000字干货)

随着网站规模越来越大,单体应用往往很难再满足要求,就需要向分布式,微服务架构演变。 那么这个演变过程是怎么样的呢?都涉及到哪些组件,会遇到哪些问题,以及相应的解决方案都是什么,本篇文章就…

ESP 低功耗入门

此篇博客以 ESP32 为例来说明 ESP 的睡眠模式。 ESP32 芯片可以大致分成以为五个模块: RF 模块,也就是射频模块,用于蓝牙 / Wi-Fi 的收发(TX / RX)功能。CPU,如 Xtensa 内核 (ESP32 / ESP32-S2 / ESP32-S3),RISC-V 内…

ssm项目-商城管理系统

1 逆向工程设计 1.1 xml文件配置&#xff08;generatorConfig.xml&#xff09; <?xml version"1.0" encoding"UTF-8"?> <!DOCTYPE generatorConfigurationPUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"&q…

滑动窗口的最大值【滑动窗口问题】

文章目录题目解题思路代码展示题目 给定一个长度为 n 的数组 num 和滑动窗口的大小 size &#xff0c;窗口从最左边滑动到最右边&#xff0c;每次向右边滑动一个位置&#xff0c;找出所有滑动窗口里数值的最大值。 窗口大于数组长度或窗口长度为0的时候&#xff0c;返回空 数…

硬件需知知识 -- 基本元件(电阻)

一、电阻 1.1 贴片电阻 1.1.1 贴片电阻的封装大小是和功率时相关的。 封装大小功率(W)0201120\frac{1}{20}201​0402116\frac{1}{16}161​0603110\frac{1}{10}101​080518\frac{1}{8}81​12060.2518120.5或1201012\frac{1}{2}21​25121或者21.1.2 贴片电阻读数 贴片电阻的读数…

Spring Security 竟然可以同时存在多个过滤器链?

目录Spring Security 中的过滤器多个过滤器链多个过滤器链配置例子http.authorizeRequests() 开头是什么意思&#xff1f;引用Spring Security 中的过滤器 Spring Security 中认证、授权功能的实现机制是通过过滤器来实现的。Spring Security 中一共提供了 32 个过滤器&#x…

Nacos集群版本安装(三)

一、前言 注&#xff1a;我这里的nacos集群安装环境使用的是本地MacOs系统&#xff0c;使用的是同一个IP不同端口&#xff0c;这里就不再讲解具体的目录结构之内的了&#xff0c;下面我们开始演示具体的配置和安装。了解nacos单机版本安装 二、nacos集群安装部署&#xff1a; …

Redis常见面试题(二)

目录 1、Redis和Memcached有什么区别? 2、Redis支持哪些数据类型? 3、Redis支持JSON数据类型吗?为什么? 4、Redis模块系统有什么用? 5、Redis支持对象映射模型吗? 6、Redis默认支持多少个数据库?怎么修改? 7、Redis SET命令可以代替SETNX吗? 8、Redis单个实例最…

【浅学Java】索引的分类、创建、删除以及新特性

索引的创建和设计原则1. 索引的分类1.1 普通索引1.2 唯一性索引1.3 主键索引1.4 单列索引1.5 多列&#xff08;联合&#xff0c;组合&#xff09;索引1.6 全文索引2. 索引的创建2.1 创建表时创建索引1. 隐式创建2. 显式创建3. 全文检索2.2 创建表后创建索引1. alter table 的方…

基于java(ssm)家教管理平台(java毕业设计)

基于java&#xff08;ssm&#xff09;家教管理平台 家教管理&#xff0c;是基于java变成语言&#xff0c;mysql数据库&#xff0c;ssm框架和idea工具开发&#xff0c;本系统分为用户&#xff0c;管理员&#xff0c;教师三个角色&#xff0c;其中用户可以注册&#xff0c;登陆&…

网络工程师之海明校验

海明校验&#xff08;又称汉明码&#xff09; 基本思想 将有效信息按某种规律分成若干组&#xff0c;每组安排一个校验位&#xff0c;做奇偶测试&#xff0c;就能提供多位检错信息&#xff0c;以指出最大可能是哪位出错&#xff0c;从而将其纠正。 特点 它不仅具有检测错误的…

深入浅出网络编程TCP,UDP,Socket,Http网络编程面试题

目录 什么是网络编程 网络编程中的主要问题 计算机网络体系结构 TCP / UDP Socket HTTP 什么是网络编程 网络编程中的主要问题 计算机网络体系结构 OSI参考模型 OSI&#xff08;Open System Interconnect&#xff09;&#xff0c;即开放式系统互联。一般都叫OSI参考模型&…

Geoserver提示HTTP ERROR 503 Service Unaviaiable以及Context initialization failed

场景 GeoServer简介、下载、配置启动、发布shapefile全流程(图文实践)&#xff1a; GeoServer简介、下载、配置启动、发布shapefile全流程(图文实践)_霸道流氓气质的博客-CSDN博客_geoserver简介 geoserver版本为2.19.2&#xff0c;在windows10系统中正常启动并运行后&#…

教程篇 | 史上最简单也最全新手Revit教程

Hi&#xff0c;朋友们&#xff0c;我是建模助手。 近期发现&#xff0c;后台留言的画风日渐扭曲&#xff0c;很多用户的私信内容不仅跟有求必应无关&#xff0c;甚至跟建模助手也无关&#xff0c;而是关于Revit的问题。&#xff08;这就很离谱了&#xff09; 但后来小编也算是…

MySQL数据库入门到精通,从mysql安装到mysql高级、mysql优化全囊括

1、存储引擎 1.1、MySQL体系结构 连接层&#xff1a;最上层是一些客户端和链接服务&#xff0c;主要完成一些类似于连接处理、授权认证以及相关的安全方案。服务器也会为安全接入的每个客户端验证它所具有的操作权限。服务层&#xff1a;第二层架构主要完成大多数的核心服务功…

Qt6 qtmqtt编译及演示示例(附带动态库)

前言 随着物联网的不断发展&#xff0c;如今很多项目都需要接入&#xff0c;而两年前也是因为项目需要&#xff0c;了解了一些关于mqtt的用法&#xff0c;并将其过程记录成几篇博客&#xff0c;近一年多时间陆陆续续有好多人私信咨询关于mqtt相关的问题&#xff0c;其中又有很…

ReentrantLock源码分析AQS原理

目录 (一)AQS简介 (二)AQS原理剖析 (三)源码思想-加锁&#xff1a; (1)构造方法 (2)公平锁lock方法(核心) 3、acquire获取资源方法(核心) (一)AQS简介 AQS是AbstractQueuedSynchronizer的简称,是一种实现阻塞锁和依赖FIFO队列的同步器框架。其依赖于一个原子变量state,子…

Unity Text Mesh Pro 浮动文字-学习

TextMeshPro&#xff08;TMP&#xff09;是unity的一套UI文字方案&#xff0c;支持对顶点、颜色进行编辑&#xff0c;自定义强&#xff0c;可扩展等优点。 对于英文数字即字符只需制作ASCII的文件即可&#xff0c;但是对于中文&#xff0c;如果我们的文字需要动态生成且不可控…