理论教育 如何打造理想的IT架构?

如何打造理想的IT架构?

时间:2023-06-03 理论教育 版权反馈
【摘要】:IT架构包括应用架构、数据架构和技术架构。良好、合理的应用架构可以支撑企业业务高效开展,并帮助企业控制经营风险,混乱而不合理的应用架构将限制企业的快速发展,并成为企业增长和变革的瓶颈。理想的IT架构计划逻辑上应由数据驱动,即先根据业务架构分析定义数据架构,然后基于数据架构结合业务功能定义应用架构,最后根据应用架构和数据架构的定义设计技术架构。

如何打造理想的IT架构?

IT架构包括应用架构、数据架构和技术架构。

(一)应用架构

企业应用架构是指一整套软件系统的构建,通过合理的划分和设计组合在一起,支持企业方方面面的经营运作。不管是传统企业,还是互联网企业,发展到特定规模,都需要一整套体系化的应用架构来支撑其运转。良好、合理的应用架构可以支撑企业业务高效开展,并帮助企业控制经营风险,混乱而不合理的应用架构将限制企业的快速发展,并成为企业增长和变革的瓶颈。[2]

(二)数据架构

相对于业务架构和应用架构,数据架构在总体架构中处于基础和核心地位。理想的IT架构计划逻辑上应由数据驱动,即先根据业务架构分析定义数据架构,然后基于数据架构结合业务功能定义应用架构,最后根据应用架构和数据架构的定义设计技术架构。

1.传统数据基础架构

如图9.2所示,传统单体数据架构最大的特点便是集中式数据存储,企业内部可能有诸多的系统,例如APP移动端、Web业务系统、ERP系统等,这些系统的事务性数据主要基于集中式的关系型数据库(DBMS)实现存储,大多数将架构分为计算层和存储层。

存储层负责企业内系统的数据访问,且具有最终数据一致性保障。这些数据反映了当前的业务状态,例如系统的订单交易量、网站的活跃用户数、每个用户的交易额变化等,所有的更新操作均需要借助于同一套数据库实现。

图9.2 传统数据架构

单体架构的初期效率很高,但是随着时间的推移,业务越来越多,系统逐渐变得很大,越来越难以维护和升级,数据库是唯一的准确数据源,每个应用都需要访问数据库来获取对应的数据,如果数据库发生改变或者出现问题,则将对整个业务系统产生影响。[3]

随着微服务架构的出现,企业开始逐渐采用微服务作为企业业务系统的架构体系。其核心思想是,该应用由多个独立的小型微服务组成,这些服务在自己的进程中运行,开发和发布彼此没有依赖。根据不同的业务需求,可以在不同的技术架构之上构建不同的服务,并且可以专注于有限的业务功能。

图9.3 微服务架构

如图9.3所示,微服务架构将系统拆解成不同的独立服务模块,每个模块分别使用各自独立的数据库,这种模式解决了业务系统拓展的问题,但是也带来了新的问题,那就是业务交易数据过于分散在不同的系统中,很难将数据进行集中化管理。(www.daowen.com)

对于企业内部进行数据分析或者数据挖掘之类的应用,则需要通过从不同的数据库中进行数据抽取,将数据从数据库中周期性地同步到数据仓库中,然后在数据仓库中进行数据的抽取、转换、加载,从而构建成不同的数据集市和应用,提供给业务系统使用。

2.大数据数据架构

起初数据仓库主要还是构建在关系型数据库之上,例如Oracle、Mysql等数据库,但是随着企业数据量的增长,关系型数据库已经无法支撑大规模数据集的存储和分析,因此越来越多的企业开始选择基于Hadoop构建企业级大数据平台。

同时众多Sql-On-Hadoop技术方案的提出,也让企业在Hadoop上构建不同类型的数据应用变得简单而高效,例如通过使用Apache Hive进行数据ETL处理,通过使用Apache Impala进行实时交互性查询等。

大数据技术的兴起,让企业能够更加灵活高效地使用自己的业务数据,从数据中提取出更多重要的价值,并将数据分析和挖掘出来的结果应用在企业的决策、营销、管理等应用领域。但不可避免的是,随着越来越多新技术的引入与使用,企业内部一套大数据管理平台可能会借助众多开源技术组件实现。

例如在构建企业数据仓库的过程中,数据往往都是周期性地从业务系统中同步到大数据平台,完成一系列ETL转换动作之后,最终形成数据集市等应用。但是对于一些时间要求比较高的应用,例如实时报表统计,则必须有非常低的延时展示统计结果,为此业界提出一套Lambda架构方案来处理不同类型的数据。

如图9.4所示,大数据平台中包含批量计算的Batch Layer和实时计算的Speed Layer,通过在一套平台中将批量计算和流式计算整合在一起,例如使用Hadoop MapReduce进行批量数据的处理,使用Apache Storm进行实时数据的处理。

这种架构在一定程度上解决了不同计算类型的问题,但是带来的问题是框架太多会导致平台复杂度过高、运维成本高等。在一套资源管理平台中管理不同类型的计算框架使用也是非常困难的事情。总而言之,Lambda架构是构建大数据应用程序的一种很有效的解决方案,但是还不是最完美的方案。

后来随着Apache Spark的分布式内存处理框架的出现,提出了将数据切分成微批的处理模式进行流式数据处理,从而能够在一套计算框架内完成批量计算和流式计算。

但因为Spark本身是基于批处理模式的原因,并不能完美且高效地处理原生的数据流,因此对流式计算的支持相对较弱,可以说Spark的出现本质上是在一定程度上对Hadoop架构进行了一定的升级和优化

图9.4 大数据Lambada架构

(三)技术架构

一种定义认为,技术框架是一种允许全部或局部技术系统可重用的设计,表现为一组抽象构件及构件实例间交互的方法;另一种定义认为,技术框架是可被技术开发者定制的应用骨架。前者从应用端而后者从目的端定义。

技术架构是在技术层面描述的,主要是分层模型,例如持久层、数据层、逻辑层、应用层、表现层等,然后每层使用何种技术框架,例如Spring、hibernate、ioc、MVC、成熟的类库、中间件、WebService等。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈