玩转数据科学,你会选择容器,还是无服务器计算?

无服务器和容器等解决方案是时下的技术热点。它们的差异是什么?它们对数据科学应用程序会带来怎样的不同影响?

玩转数据科学,你会选择容器,还是无服务器计算?

云计算解决方案的兴起,以及对永远在线的连接体验的不断增长的需求,推动了尖端的IT采用和对创新技术的推动。无服务器计算就是云计算的衍生物之一。它与另一种已经流行多年的类似技术相结合:容器或基于容器的编程。

正如人们所预料的那样,采用新的东西并不总是最好的,因为它很时髦。它可能有效,抑或可能更有效,但这并不一定意味着它是团队或组织的理想解决方案。

也就是说,业内最新的争论之一现在涉及这两种技术:一种已经非常突出,另一种正在崛起。在容器和无服务器解决方案之间,它们对于普通的数据科学应用程序哪个更好?更重要的是,有什么区别,这对结果有何影响?

什么是无服务器计算和编程?

重要的是,理解术语“无服务器”并不意味着不涉及服务器。事实上,现实恰恰相反,因为该技术仍然依赖于基于云的远程基础架构。

如果是这样的话,为什么它被称为无服务器?这是因为第三方服务提供商来处理所有IT操作和维护。换句话说,主平台仍然存在于云操作系统中,但代码分别编写和部署。

该技术允许开发团队自己处理,开发和分发应用程序,同时远程处理硬件和系统基础架构。它消除了从开发或编程团队负责交付,维护远程硬件的负担,并使他们能够专注于他们的专业,即产品和软件开发。

这正是许多人将无服务器计算作为理想解决方案的原因,特别是通过亚马逊的Lambda。

无服务器计算与容器有何不同?

容器本质上就是名称所描述的:一个全面的软件包,可以作为独立的应用程序环境提供和使用。最常见的形式是应用程序如何在运行时分发。

运行和与一个软件交互所需的一切和​​任何东西都被包含或打包在一起。这通常需要捆绑软件代码,runtime和系统工具,软件和基础库以及默认设置。

对于虚拟化容器,通过Docker等服务,它们有助于解决跨平台使用带来的更常见问题。当从一个计算环境转移到另一个计算环境时,开发人员经常遇到障碍。

如果支持软件不相同,可能会导致一系列问题。而且,由于开发人员从个人或工作计算机转移到测试环境,甚至从登陆到生产,这都是一个普遍的问题。这只涉及软件本身,因为其他问题可能来自网络拓扑,安全和隐私政策,以及各种工具或技术。

容器通过将所有内容很好地包装到运行时环境中来解决这个问题。虚拟化技术和系统非常相似,除了交换系统的软件包是一个完整的虚拟机,而本质上是一个操作系统。

即使使用基于容器的解决方案,公司和团队仍然需要内部服务器或硬件解决方案来管理数据。这需要的服务器数量取决于对数据负载或所需的要求。

哪个更好?

理想的解决方案取决于你手头的项目。有些项目肯定更适合无服务器计算环境,而其他项目在基于容器的解决方案中更好。

容器本质上允许更大,更复杂的应用程序和部署。虚拟化使它们更加可行,因为它允许在适当的环境中构建和交付极其复杂和单一的解决方案。因此,它可以对各个容器以及整个系统进行强大的控制。

相比之下,无服务器计算要求依赖服务提供商,尤其是涉及其商誉和安全能力。合作伙伴公司必须相信其提供商已按顺序执行基础架构和安全策略。作为参考,它确实有助于了解AWS Lambda,Microsoft,甚至Google都是这个领域中值得信赖的大型供应商。

此外,无服务器成本更易于管理,甚至更便宜。因为公司只向资源提供商付费,例如每个系统使用的流量的时间和数量。定价仅基于活动计算资源,因此空闲时间几乎没有成本。

这与容器的复杂性形成鲜明对比,容器需要更大规模地完成功能,这通常会增加成本。无服务器依赖于小而简单的任务,几乎没有开销。此外,对于无服务器计算,重点仍然是软件开发的核心概念,例如编写代码。

例如,程序员可以将主应用程序(如外部服务)编写为完全独立的,因为没有与容器或运行时生态系统的集成。但这有一个缺点。较少的控制和较弱的集成意味着调试,测试和监控应用程序的能力较低,尤其是跨平台的应用程序,以及较少的引导性能指标。

这种基于容器的全面控制解决方案允许用户测试并有效地了解容器内部和外部发生的情况,从而在各个部署级别进行更详细的分析。

使用容器时,在项目进展过程中识别和优化性能问题很常见,因此整个系统始终会返回所需的结果。

哪个更适合数据科学?

容器仍然占有一席之地,但无服务器计算绝对是大数据世界中崭露头角的明星。具体而言,对于数据科学,无服务器平台不需要基础架构管理或额外团队来处理Hadoop或Spark集群等事务。

更不用说,无服务器解决方案始终监控资源使用情况,并根据需求进行扩展或缩小。这对于没有带宽可以自行扩展的小型团队来说非常有用,但由于节省成本,它对大型组织同样有益。

无服务器是非常不干涉的,这是类似TensorFlow的模型的优势之一。代码将上传到提供程序或远程系统,然后系统会相应地处理部署。在上传代码之前,程序员可以使用更优选的环境或方法来开发和编写代码。

但这并不意味着容器已经过时。实际上,它们仍然非常有用和可靠,在某些情况下,可以交替使用这两种形式的技术。

随着无服务器计算解决方案变得更先进和更强大,它可能会发生变化,但现在看来它似乎还需要一段时间才能完全取代容器。

相关推荐