3.8 系统边界
系统边界定义的问题,是经常容易被忽略的问题。所谓系统边界,也就是将这个系统看成一个黑盒子,它如何与外界进行交互。举个简单的例子,某公司要上线的A系统需要跟已存在的B系统进行对接,A系统负责人认为对接接口需要B系统进行开发,而B系统的负责人则认为对接接口是A系统的责任。双方团队就对接口责任问题争论不休,导致A系统的上线工作迟迟无法推进,项目经理也无可奈何。因此无论在系统分析阶段还是在系统的开发阶段亦或是在系统的上线阶段,只有明确了系统边界,才能有条不紊地继续接下来的工作。
新上线一个大数据系统,系统往往都不是独立存在的,一般需要与外围其他已存在的数据处理系统进行交互,而且需要集成交互的内容可能会很多,比如源数据获取、系统对接、数据上报等。
系统边界定义不清将导致需求不断更改,既增加了重新开发的工作量成本,也会带来跟其他外围系统的供应商进行协调的沟通成本,造成项目延期、预算超支等危害。作为大数据系统的架构工程师,正确地界定大数据系统边界是必不可少的。大数据系统的系统边界主要从系统交互界面与系统交割界面两方面进行考虑。
关于考虑系统交互边界。大数据系统作为数据的接收、处理和呈现系统,跟外围数据系统的数据交互不可避免。对于交互界面的确定,需考虑到以下几个方面的问题。
(1)系统的数据安全。数据安全主要是指数据的接收方对数据是否有访问权限,是需要读写权限,还是需要只读权限,在不影响业务的情况下只有严格控制权限才能保证数据的安全性。
(2)系统交互的流量。系统交互的流量主要是指双方的数据交互是实时性的数据交互还是非实时性的交互,明确系统交互的流量有助于设计和测试系统的处理压力的能力,防止系统上线时在流量高峰期出现超出系统负荷的情况。
(3)系统交互的接口。系统交互接口主要是指明确对接的双方系统的对接方式、对接协议以及对接的网络情况。
(4)系统交互的周期性。交互周期性主要是指交互的数据是周期性地发送,还是只要系统产生数据就会随机地发送数据。
(5)项目执行边界的界定。对于系统边界处的工作需要明确定义与约定。例如,大数据平台与各个数据源之间的对接与调试,往往开发难度不大,但调试工作量大,周期长。数据源对接调试是否包括在项目范畴内,将极大地影响项目的成本与预算。
关于系统交割界面。新上线大数据系统与其他系统进行对接与交割时,需考虑如下几方面的问题。
(1)数据备份。对要替换的系统进行数据备份,需要备份的东西包括数据、元数据以及配置等,对交割过程做好失败预案,若交割失败,能快速恢复系统和业务。
(2)业务容忍中断时长和切换时间。明确交割过程中业务容忍中断时长和切换时间,规划好系统交割的方案。
(3)迁移效率。系统交割前需要充分测试交割过程中的数据迁移效率以计算数据迁移的周期,从而把控整个交割所需的时间。
(4)系统兼容性。由于大数据组件的开源特性,不同系统使用的组件版本不尽相同,不同的版本由于协议或者架构的不同导致不同版本间数据传输方法会不一样,所以系统交割的过程要充分考虑系统版本兼容性。
(5)数据安全性。系统交割的过程中要保证数据的完整性和安全性,保证交割过程中数据不丢失。
(6)系统稳定性。由旧的系统切换到新的大数据系统后要测试和保障系统切换后可以稳定运行。
(7)数据正确性。系统交割完成后要验证数据迁移的正确性,尤其是业务不停机情况下的数据迁移,需要保证迁移过程中产生的新的业务数据能够同步迁移到新的系统中。