程序系统架构的动静分离简述

很多项目在开始架构、规划上没设计好,后续会很多麻烦,比如资源目录太大,一个目录里面什么文件都有,包括图片、文件包等,磁盘满导致业务故障,运维背锅,这里简单说下:

比如一个www.aqzt.com项目
www.aqzt.com
www.aqzt.com/images/logo.jpg
www.aqzt.com/images/test.jpg
www.aqzt.com/js/style.css
www.aqzt.com/js/jquery.js
www.aqzt.com/upload/test.update1.exe
www.aqzt.com/upload/test.update2.exe
www.aqzt.com/upload/img1.jpg
www.aqzt.com/upload/img2.jpg

建议参考改成这样:
www.aqzt.com
img.aqzt.com/images/logo.jpg
img.aqzt.com/images/test.jpg
css.aqzt.com/js/style.css
css.aqzt.com/js/jquery.js
upload.aqzt.com/upload/file/20170612/test.update1.exe
upload.aqzt.com/upload/file/20170612/test.update2.exe
upload.aqzt.com/upload/img/20170612/img1.jpg
upload.aqzt.com/upload/img/20170612/img2.jpg

这样做的好处是:
1.服务器方便扩展,比如一个目录文件太大后,可以扩展到系统服务器,挂个NFS,做个软链接,或者上分布式文件服务器等等。
2.可以方便后续做CDN加速(比如:用网宿CDN),对静态文件做加速,网站可以快速访问,特别对较大的升级文件、图片文件、商品图片等。
3.分区上建议使用LVM卷,后续比较好扩容,文件系统XFS。
看很多大型知名网站架构,其实都是这么设计的,在这YY下,呵呵。

一套好的架构,必须具备这样的标准(我网上收集的):

1、安全性:安全是关键业务的基石,是100000000中的那个1。
2、开发性:信息化是需求驱动,业务需求是不断发展变化的。
3、先进性:信息化是一场对传统业务流程的革命。失去了先进性,信息化不过是披上了一层美丽的外衣。
4、可拓展性:能够满足多样性、个性化需求。
5、易用性:信息化系统应该是工作顺手的一个工具,而不是曲高和寡的阳春白雪。
6、总体拥有成本:性价比高,对得起企业的投入产出,并使企业有增加投资的意愿。
7、标准化:标准化是助力管理的重要基础工作,也是信息化的基础和前提。

我的一些想法:

1、安全性,包括服务器上安全设置,网络的安全设置,以及安全漏洞定期扫描和分析;
2、资源资产管理的自动化CMDB,或支持混合云的CMDB;
3、服务器和业务的监控,包括服务器,磁盘、网络的监控,以及性能分析,以便于有数据支持,什么业务需要扩展;
4、运维自动化的管理,可以批量管理服务器的安装,设置,数据备份,实现运维自动化,配置管理、状态管理和变更管理,
5、日志分析,包括服务器的日志收集和业务日志收集,统一管理,分析;
6、持续集成和持续部署,包括开发、测试到运维发布的管理,以及版本控制,线上版本故障回滚等;

一套好的程序系统架构,还有很多方面,需要程序架构师、运维架构师,从多个方面考虑,这里做下简单记录,希望对大家有帮助。

未经允许不得转载:Ppabc博客 » 程序系统架构的动静分离简述