现代数据架构的概念在过去的10多年里发生了巨大的变化,具体可以参见公众号“补天遗石”的《从数据仓库到数据湖——浅谈数据架构演进》一文。
把时钟调回来,回想一下那些有许多限制的遗留数据架构的日子。 存储是昂贵的,并且有相关的硬件成本。 计算经常涉及服务器和更多的硬件投资。 网络是昂贵的,部署只是在场内,专有软件和硬件都锁定在用户所在的所有企业。
这是一个(对许多组织来说仍然是)的世界,在这个世界上,架构只允许对高度结构化数据进行事后分析。 随着移动和传感器等新数据类型的出现,以及机器学习和数据科学等新的分析出现,这些遗留架构中的弱点就会暴露无遗。 再加上云计算的出现,我们将迎来一场完美的风暴。
许多相互关联的因素打乱了遗留的数据体系结构时代。 储存变得更加便宜,像 Apache Hadoop 这样的软件成为了中心舞台。 计算也走软件路线,我们看到了边缘计算的开始。 网络变得无处不在,为地球提供了3G/4G/LTE连接,部署开始成为混合动力,企业开始使用开源软件。 随着客户需求的改变,这导致了一股创新热潮,影响了供应商现代化数据架构的方向。
云的出现创造了再次进化的需要,以便利用其独特的特性,如脱耦存储和计算。 因此,这导致了相互连接的数据架构,Hadoop 生态系统为 IaaS 和 PaaS 模型和创新进化,用于连接数据中心和公共云中的部署。
由于数据具有"质量",并且是云迅速崛起的原因,数据架构必须再次演变,以满足当今企业的需求,并利用云计算的独特优势。 今天的数据架构需要更多的东西来实现数字转换、实时分析和人工智能的梦想。 这为事先分析和驱动客户360度视图等用例铺平了道路。 组织需要一个统一的混合体系结构,用于室内、多云和边缘环境。 现在是重新设想数据结构的时候了,混合是一个关键的要求。
云模型非常适合于敏捷性开发和高效部署,并能很好地应用于临时工作负载。 该模型提供了一种更可预测的成本结构,适用于长期运行的工作负载。 将"云"带到数据中,无论数据是位于本地还是云端。
图1 数据架构的演变
首先,理解驱动开放混合架构的关键原则。
统一管理(跨本地及云)
进行数据传输,部署模型的选择是由用例驱动的,可能需要多个云供应商。 今天,他们在办公场所做分析。 明天,他们想要探索一个运行深度学习工作负载的云提供商。 后天,他们想把一些工作量带回到办公地点,以获得更可预测的成本模式。 人们正在用一个统一的界面,帮助他们进行混合云之旅。 数据分析师、数据工程师、数据科学家正在使用大数据环境,他们也在寻找以人为本的经验。 希望提供一个自助服务用户界面,以便能够隐藏基础设施的复杂性,让用户专注于业务问题。
存储与计算的解耦选择
从大数据、存档数据、备份到多协议访问使用单一统一存储(S3 API,Hadoop API,NFS,iSCSI)。 S3接口提供了在站点和云中应用程序的可移植性。 每个用例具有不同的计算储存比率。 与十年前不同,网络交换机拥有10 Gbps,40 Gbps,100 Gbps 接口,对数据密集型工作负载具有更好的流量控制。 所有这些都导致计算和存储的分离,每个层可以独立地扩展。
很多更喜欢在当地存储某个类别的应用程序,在这种情况下,保持存储和计算在同一服务器中的耦合是有意义的。 考虑到遗留问题,最适合提供一个存储架构,可以扩展到数万亿的文件/对象,提供强大的一致性(不像亚马逊S3)和许多其他的对象存储解决方案,这需要应用程序来构建一个一致性层) ,最重要的是提供了做耦合和去耦合计算和存储的选项。
容器化
大多数用户希望封装隔离和多租赁在一个易于使用的界面。 自定义的容器化应用程序可以应用到集群,能够进入下一个层次——集成自己的组件,如企业数据仓库(EDW)、数据科学和工程平台等。 有很多好处。 在云环境中,可以在几分钟内创建一个按需工作的负载。 在过去,这个过程需要与服务器管理员进行数月的协调,然后建立一个新的集群。 这是云敏捷性的前提,并允许简化到一个共同的体系结构,这样 EDW 解决方案就可以在不需要任何架构检修的情况下运行在前台和云端。
共享安全和治理
可以使用像云一样的敏捷性部署容器化工作负载,需要一个共享和持久的安全和治理层来集中执行访问控制和数据治理。 由于数据是通过 Hadoop 文件系统和云对象存储分布的,希望有一个共同的安全和治理控制。 当数据环境扩展到数百亿的文件和整个组织的共享时,需要有部门级别的安全领域——考虑一个具有自身安全和治理控制的"逻辑"数据湖。
负载敏捷性
这是开放式混合体系结构的终极圣杯。 数据环境的存在,以便各种处理工作负载能够运行,从噪声中获得洞察力或信号,用户可以在他们的组织得到真正的业务转换。 许多工作负载,如 EDW,数据科学和工程平台有不同的发布节奏。这种架构能够轻松地改变独立于底层基础设施的组件的软件修改,避免一个庞大的升级,可以为大数据环境中的数以千计的租户提供一个自我服务角色为中心的用户界面来创建按需工作负载。
所有这些都导致了云和本地一致的混合架构设计。
图2 开放式混合架构
数据中心可以有多个环境或单一的环境。 一个环境包括存储、计算、安全和治理服务以及操作服务(日志、度量)。 用 户可以拥有一个100个节点的环境,存储和计算在同一服务器中被耦合在一起,从数据本地化中获益。 或者,用户可以在一个存储环境中投入50个节点和在一个计算环境中投50个节点,以便存储环境和计算环境能够独立地扩展。 存储环境规模达到数百亿个文件,而计算环境提供了容器化的体系结构来运行工作负载。
图3 开放混合架构的高层视角
用户可以拥有多个部门,分享环境,同时拥有自己的安全和治理控件,不让他们的数据集相互可见(例如垂直的医疗保健)。 可能有用户希望加入跨部门的数据集,在这种情况下,他们可以只有一个数据湖映射到一个单一的环境中。
在一个部门里可能有成百上千的租户需要解决一个商业问题并且需要一个工作量(比如 EDW,数据科学)。 管理员或部门级的架构师可以为数据集提供访问控制,并使用容器在计算环境中为租户创建一个工作负载。 现在,租户可以访问以人为中心的用户界面来访问数据集并解决他/她的业务问题。 所有的用户界面和工作负载都可以通过开放混合架构完成。
参考资料:
https://hortonworks.com/blog/open-hybrid-architecture-bringing-cloud-native-to-on-premises/
https://hortonworks.com/blog/bringing-cloud-native-architecture-to-big-data-in-the-data-center/