论软件架构的选择
摘要:
2016年3月,我公司承担了国家某安全中心漏洞挖掘系统的开发工作,我在该项目中担任系统架构设计师职务,主要负责系统的架构设计。该项目是分析互联网流量,进行漏洞挖掘,主要包括流量捕获、流量存储、流量分析等。
本文以漏洞挖掘系统为例,针对不同架构风格的使用场景及优缺点,讨论了软件架构的选择。整个系统采用了面向服务的架构风格。在各个子服务中,又根据具体情况选用了不同的架构风格,例如在流量分析子服务中,采用了数据流风格;在样本分析子服务中,使用了微服务的架构风格;在各个子服务之间使用了进程通信架构风格;在漏洞靶场服务中使用了虚拟机风格。整个项目开发工作历时6个月,目前已稳定运行1年。实践证明,选用合适的架构风格提高了项目的开发效率,提高了系统的可用性、性能、可扩展性、可重用性和可移植性,从而保证了项目的顺利完成。
正文:
随着互联网的快速发展,网络安全问题越来越收到国家的重视。2016年3月我公司承接了国家某安全中心漏洞挖掘系统的开发工作。该项目通过对互联网中的流量进行特征分析,从中提取出相关的攻击内容,并将这些内容存储到大数据平台,结合大数据分析技术,对攻击者进行跟踪分析,从而捕获出未知漏洞。按照合同规定该项目必须在一年内完成,开发漏洞挖掘系统6个月,分析高质量的漏洞6个月。根据客户需求,该项目主要分为流量捕获、流量存储和流量分析三部分。经过分析,我将系统拆分为了流量抓取系统、文件存储系统、流量分析系统、数据库系统及web管理系统。
软件架构是一系列相关的抽象模式&#