想象一下,你正在打造一个前沿的电子商务Web应用程序,身兼架构师、后端开发者以及运维人员等多重身份。在架构师的角色下,你需要敲定云服务提供商的选择、服务部署的地理区域、容器编排机制,以及确保高可用性的相关要求。作为后端开发者,你的任务不仅限于编写应用代码,还需要与影响应用性能的其他关键组件紧密协作,比如配置数据库、设计数据模型、设定用户权限,并策划、建立及发布API。而在运维人员的角色中,你要负责监控应用程序的表现,并构建持续集成/持续交付(C I/C D)流程。
在每一个角色扮演中,你都将借助一套特定的工具和技术。这些工具和技术共同构成了我们所说的应用技术生态系统——这是一套紧密相连的工具和技术体系,它们协同工作以实现业务案例的交付(参见图2-1)。
图2-1:典型Web应用程序的生态系统
对于实时分析应用程序而言,无论是初入此领域的新手还是经验丰富的专业人士,掌握其技术生态系统都至关重要。这基本上涉及对应用程序数据流的认识,以及在应用运行过程中对这些数据流进行截取和处理的技术。简而言之,我们需要识别出数据流动的起点、数据传输与加工的环节和组件,以及最终从数据中提取洞见的过程。
我们可以将其概括为实时分析生态系统——这是一套用于从源源不断的数据流中挖掘洞见的工具、流程和技术的总称。术语“实时分析技术栈”和“流处理技术栈”在业界是可以互换使用的,它们的含义是一致的。
不论你是架构师、开发者还是运维人员,深入理解流处理技术栈将有助于你设计、构建并运行高效能的实时分析应用程序。在本书接下来的章节里,我们将深入探讨流处理技术栈的各个组成部分。