本文转载自微信公众号「明哥的IT随笔」,作者IT明哥。转载本文请联系明哥的IT随笔公众号。
1 企业业务系统部署架构的变化趋势-多云与混合云
现阶段,企业信息系统部署架构 (DA: Deploy architecture)的一大变化是,越来越多的企业在不断将越来越多的应用部署到云上,即业务系统上云的趋势愈演愈烈。
不过企业业务系统上云不是一蹴而就的,也不是单向的一帆风顺的。 这里涉及到新开发的业务系统的主动上云(由于是采用云原生技术栈新开发的业务系统,其上云相对顺畅些),也包括历史遗留系统的迁移上云(单个遗留系统的改造迁移和上云,视乎复杂程度,往往需要一年多甚至更长的时间周期),有时也会有从云端部署回退到私有云或数据中心的情形(上云后不顺畅不适应,也有会退的场景)。
企业所有业务系统的上云,其最终目标,出于各种考量(有业务系统高可用的考量,也有不被云厂商绑定即 vendor-lockin的考量,也有生态系统合作伙伴即经济因素等多种考量),部署架构不会是单一的某个公有云,而是多个公有云和私有云甚至本地数据中心的混合部署形态。
从技术视角看大数据行业的发展趋势
2 多云与混合云部署架构下的难题-数据同步
如上文所说,企业的多个业务系统,长期来看,会是多云与混合云加本地数据中心的混合部署架构;同时由于多个业务系统之间并不是相互隔离的,而是需要协作交互数据的(当然一般不会是直接的 rpc/http 调用),这就涉及到一个难题:多云与混合云部署架构下的数据同步。
如果企业没有公司层面的统一的规划,由各个部门各个项目独自设计与实施的部署方案,其架构会如下图所示:
multi and hybrid cloud deploy architecture
3 多云与混合云部署架构下的数据同步方案 - KAFKA
熟悉 KAFKA 的小伙伴都知道,KAFKA 是 LinkedIn 在 201 0左右为解决企业内部繁杂多向的数据交互而推出的数据总线/中央数据管道解决方案,它简化了 LinkedIn 的数据交互架构:
kafka-in-LinkedIn
在 LinkedIn 将 KAFKA 开源之后,由于其高吞吐低延迟的特性(顺序写和顺序读,ZeroCopy, 端到端的压缩,基于 partition的横向扩展),以及不断进化获得的其它特性(基于多副本的高可用容错机制,EOS 有且仅有一次的语义,生产者幂等性,对ACID事务的支持,分层存储的架构 tiered storage),还有不断丰富扩大的生态系统 (kafka connect, kafka schema registry, 以及高层抽象 kafka stream, ksqlDB),在大数据更加注重数据时效性的今天(实时预警,实时风控,实时数仓等各种场景),在微服务更加注重松耦合的今天(微服务相互之间不再直接相互调用,而是通过同步数据来同步状态),(站在了对的风口上,其地位水涨船高),几乎所有的企业都或多或少在其业务系统中用到了 KAFKA (或其同类竞品如 pulsa)。
既然 KAFKA 可以在企业内部作为数据总线/中央数据管道的解决方案,那么在新时代的多云与混合云部署架构下,其能否起到数据同步的作用呢?
答案是肯定的。
此时其架构如下如所示:
data sync in multi and hybrid cloud - kafka
该架构的要点如下:
- 本地数据中心部署一个 KAFKA 集群;
- 云端部署一个 Kafka 集群中;(如果是多云,则每个云部署一个 KAFKA 集群);
- 本地数据中心的所有应用,其数据都汇总到本地数据中心的 Kafka 集群中;(可以使用 kafka java/scala api 直接写 kafka,也可以使用各种 cdc 工具采集 rdbms 中的 binlog/redolog 进而写到 kafka, 可用的 cdc 工具包括 canal/maxwell/ogg/debezium等,kafka connect生态的各个 connector插件也可以使用 );
- 使用 kafka 的数据同步工具 MirrorMaker, 在数据中心与各个云端的 kafka 集群间,同步数据;
- 各个云端的应用,访问其对应的 kafka 集群获取数据;
该架构的优点如下:
- 多个大厂生产系统验证了可行的多数据中心架构;
- 持续性的低延迟的数据同步方案;(在高速网络带宽下,延迟可达几百毫秒);
- 集中式的管理和监控,支持集成多种安全和治理方案;
- 节约成本;
- 可以使用 KAFKA 背后的商业公司 Confluent 提供的 Confluent platform,该产品可以在数据中心/私有云/公有云部署,其架构图如下所示:图片
4 知识总结
- 企业IT基础设施的一大趋势是,上云的趋势愈演愈烈;
- 企业业务系统上云不是一蹴而就的,也不是单向的一帆风顺的;
- 未来的企业业务系统的部署架构,不会是单一的某个公有云,而是多个公有云和私有云甚至本地数据中心的混合部署形态;
- 企业业务系统在多云与混合云部署架构下有个难题,即数据同步;
- 可以使用 KAFKA 作为多云与混合云部署架构下数据同步的解决方案;
- 使用 KAFKA 作为多云与混合云部署架构下数据同步的解决方案时,本地数据中心与云端的各个云中都会部署一个 KAFKA 集群;
- 使用 KAFKA 作为多云与混合云部署架构下数据同步的解决方案时,可以使用 kafka 的数据同步工具 MirrorMaker, 在数据中心与各个云端的 kafka 集群间同步数据;
Ps: 笔者了解到,已经有一些第三方公司,基于该方案推出了其封装版的商业产品,来解决多数据中心间的数据同步。(商机呀小伙伴们,这是块长期的大蛋糕)。
相关资料下载:链接:https://pan.baidu.com/s/1FNAkwXbxQBn0tPINKPXVCg 提取码:kafk