架构师在做一个网站的架构时要做哪些工作(按顺序排列)?

[复制链接]

下载APP可以快速和圈友联系

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
架构师在做一个网站的架构时要做哪些工作(按顺序排列)?
温馨提示:
好向圈www.kuaixunai.com是一个专业经验分享交流平台,你可以在这里发布专业经验,也可以发布需求与服务,禁止带推广链接、联系方式、违法词等,违规将封禁账号。 下载好向圈客户端可以随时随地交流经验,也可以和圈友发起聊天成为好友哦!
回复

使用道具 举报

已有(4)人评论

跳转到指定楼层
2017和你在一起 发表于 2020-4-24 17:58:54
我是一个假的架构师,真的程序员。
现在所在的项目,是去年八九月份启动的,虽然不是一个网站,但是大部分工作都是类似的,那么我给大家介绍一下这半年我做了哪些工作。

一般新建一个项目有两种背景:
    一种是没有系统,需要重新建立;

    一种是有老系统,但是因为种种原因,需要新建一个系统把老系统替换掉(或替换部分功能);

    我们算是后者,老系统已经运行多年,主要工作是对外提供接口服务,现在服务的效率和抗压性都无法满足业务需求。




需求梳理

需求,在开发之前一定要明确需求。因为是对老系统的改造,所以需求相对来说比较明确。
    梳理老系统有多少接口,压力比较大的接口有哪些,确定接口迁移的优先级。

    确定第一批迁移的接口之后,需要对接口的处理逻辑进行梳理,包括出参入参都是什么,对参数有哪些校验,出参的是从什么表的什么字段取得,查询条件是什么,是否对数据进行了加工、转移等处理。
    主要是通过“扒代码”的手段,这一步很痛苦(程序员们都懂的)。


架构师在做一个网站的架构时要做哪些工作(按顺序排列)?w1.jpg

压力预估

因为是老改新,压力容易预估出来,我们主要关注的几个点:
    现有系统的数据量有多少,年增长的数据量是多少。

    多少系统在调用,大概服务器的数量是多少。

    平均每天的调用量,如果业务几种在某些时间段内,比如工作时间,那么就要估计出每小时的量大概是多少。

    业务高峰期的时候,量有多少。


架构师在做一个网站的架构时要做哪些工作(按顺序排列)?w2.jpg

架构设计

其实我也是野路子出身,我在做这一步所做的工作有这些:
    整理项目的功能点,比如我们这个项目主要功能有:数据抽取、数据存储、数据加工、服务提供;这一步形成整体的功能架构。

    对每个大的功能点,评估需要使用的资源,拿数据加工为例:数据加工主要就是批处理,需要Tomcat部署Java程序,需要Redis做分布式锁和缓存,需要MongoDB做加工后的数据存储;这一步形成整体的方案规划。

    继续详细的评估,根据前期统计的数据量,对MongoDB的部署进行评估:是否需要分片,如果分片的话,前期部署几个分片,容量申请多少;当这些评估都做完之后,就可以把一个一个的点汇总起来,就形成了物理部署架构。

    到了这一步,基本上技术架构图也就出来了。

    在设计过程中,还要和很多人进行沟通,比如DBA、比如领导。


架构师在做一个网站的架构时要做哪些工作(按顺序排列)?w3.jpg



开发

到了开发阶段,我依然在。
    这时候,一边招人(招人有些晚了),一边搭框架;一边面试,一边写代码。

    最后开发人员招的差不多的时候,我从无到有,第一个接口基本上开发完成了...

回复

使用道具 举报

米白圈圈 发表于 2020-4-24 18:00:27
我多次全程参加从策划到运维的系统开发,在这里分享一些干货。架构设计过程大致可分成需求分析和系统设计两个阶段。
需求分析

这个阶段的目的是进行需求分析制定系统的逻辑模型。需求可分为功能性需求和非功能性需求。功能性需求主要是业务逻辑,非功能性需求则是业务以外的需求,如运行环境,信息安全,故障诊断等等。功能需求可使用用例图等可视化的工具来完成。非功能需求涉及到的技术较多,没有通用的结构化的方法,一般需要参考类似系统的经验。这部分的设计结果可以用配置图进行可视化。完成了功能性需求和非功能性需求之后,可将两部分需求进行统合,具体就是,结合系统配置为每一个用例设计逻辑流程。

架构师在做一个网站的架构时要做哪些工作(按顺序排列)?w1.jpg




系统设计

这个阶段的目标是把需求分析阶段建立的逻辑模型转换成物理架构。首先,要根据逻辑配置选择网络,服务器,操作系统,数据库,各类服务程序运行环境,并拆分出子系统。确定了子系统之后,可以为各个子系统选择编程语言和架构模块(如,Struts)。确定了子系统的架构之后,就可以进行程序结构的设计了。程序结构设计要从用例图中抽出事务,从逻辑时序图中抽出逻辑类,将各逻辑类部署到各物理配置上,确定物理类,设计物理时序。最后,可从时序图上,抽出物理类,根据类的功能整理,并选择设计模式,补足实装所需的各种类的定义,做类图。至此,架构设计完成。
回复

使用道具 举报

屁股夹紧慢蹬撇 发表于 2020-4-24 18:04:36
1.业务视图,是简单的单体应用还是伸缩性好的服务化。
2.数据库视图,单库或分表分库。
3.技术开发平台或架构
4.运维视图,单机,均衡负载,集群。

说的比较笼统。
回复

使用道具 举报

推荐人物菜 发表于 2020-4-24 18:10:41
服务器 ubuntu/centos/windows
web服务器 nginx/apache
php,php扩展
数据库
缓存
redis
消息队列
...
项目部署
服务器日志收集、分析
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本圈子积分规则