前言:在讨论“云原生大数据计算服务”之前,我们先将这个名词进行拆分,分别讨论一下“云原生”、“大数据”、“计算服务”,从而理解为什么需要将它们进行结合。
1、 “云原生”、“大数据”、“云计算”的结合
- 云原生: 云原生的关键技术“容器化”可以将服务封装成细颗粒度的容器,由于容器具有细颗粒度的特点,可以很方便地调度,从而可以实现Serverless。Serverless可以在需要提供计算服务时,再生成足够的数量容器的实例,容器可以保持在一个极低的数量甚至于无。云原生具有弹性负载、低成本、高效的特点。
- 大数据: “传统”的大数据平台Hadoop、spark是一种分布式系统,它们的架构不符合云原生的架构,所以不支持云原生的特性。
- 计算服务: “计算服务”说明MaxCompute是一种云计算的SaaS(Software as a Service),可以消除自建平台的资源扩展性和弹性的限制,同时可以减小用户运维的投入。云计算具有按需供给、按量付费的优势。
通过“云原生”、“大数据”、“云计算”等技术的结合,MaxCompute继承了弹性负载、低成本投入、高效计算的特性。
2、MaxCompute给我们带来的启示
从阿里云提供的MaxCompute官方说明文档上看,它只明确提到了集成的是Spark的计算引擎,但是没有说明它的系统架构。如果我们想设计一个类似的大数据计算平台,可以使用哪些开源技术进行替代。下面给出技术选型的参考:
- 云原生:kubernetes(提供容器化特性)、knative(提供Serverless特性)
- 大数据:Spark(大数据计算)、HDFS(大数据存储)
- 应用服务:Echarts(数据可视化)、Python机器学习三方库……