容器可以使您的生活更轻松

发布于:2021-02-15 00:00:40

0

72

0

容器 devops 大数据

容器彻底改变了现代软件的开发和操作方式。我们与Mesosphere的分布式应用程序工程师Johannes Unterstein以及JAX DevOps发言人进行了交谈,讨论了容器工具和技术以及容器在DevOps上下文中的有用性。

JAXenter:Mesosphere首席执行官Florian Leibert在博客中解释说:“容器2.0是在同一组资源上运行(和编排)无状态和有状态服务的能力。” 您对此有何看法? 

Johannes Unterstein:持久性是当今容器领域的挑战之一。无状态容器相当容易处理:例如,发生故障后,可以在每个节点上重新启动它们。但是,有状态容器并不是那么容易。解决了一些网络问题,并且在启动另一个实例后,具有持久性数据的容器又重新联机后会发生什么情况?

容器2.0既可以处理有状态容器,又可以与“大数据”框架(例如Spark,Cassandra,Kafka)结合使用,理想情况下与容器在同一集群上运行。

JAXenter:容器2.0已经在我们身上了吗?外观如何-关键要素是什么?

Johannes Unterstein:好的!我在JAX DevOps上的会议全部涉及容器2.0,数据中心各部分之间的资源(CPU,内存,磁盘)共享以及DC / OS如何帮助您以最有效的方式使用集群。在数据中心内进行静态分区时,您需要针对峰值和故障分别优化每个部分。如果您的基础架构能够在微服务,传统数据库以及大数据和快速数据应用程序之间共享,那么在扩展,利用,容错的情况下,您将变得更加灵活,并且还可以保存节点,因此钱。

JAXenter:容器世界的下一步是什么?

约翰内斯·安特斯坦(Johannes Unterstein):在将集装箱轻松运输到生产并可靠地运行的领域中,最近出现了许多有趣的新颖事物。在当前的讨论中,让我特别高兴地看到水平变化的速度。无论是在诸如有关Docker运行时的有争议的讨论之类的细粒度领域中,还是在涉及如何运行成百上千个容器的抽象层次上,它都是如此。此外,关注网络之类的不同标准(例如CNI)的开发很有趣。

JAXenter:您现在最喜欢什么容器工具? 

Johannes Unterstein:也许我有点偏执,因为我正在帮助构建DC / OS,但是我真的很喜欢使用和扩展DC / OS :-)。我喜欢DC / OS和底层Apache Mesos的灵活性,它们可以运行Docker容器,AppC映像之外的容器或由Apache Mesos自己即时隔离(又称为容器化)的常规程序。不仅如此,您还可以选择是否要使用Docker守护程序或直接在Mesos通用容器化程序上运行Docker映像。

JAXenter:开发人员为什么对容器技术感兴趣?对他们有什么用?

Johannes Unterstein:因为它们可以使您的生活更轻松。容器使在一个归档文件中共享所有依赖项的应用程序变得非常容易,该归档文件可在每个合适的容器运行时上执行。与花费多个shell命令启动特定应用程序的时间相比,像Docker hub这样的基础设施使开发人员的工作变得如此轻松。

另一个大的优点是使用容器使我们考虑了容器内部需要什么。有必要对容器进行全自动设置,因此需要完整的文档来启动和操作应用程序。所有这些都在人类可读的Dockerfile中。

JAXenter:容器对实现DevOps有用吗? 

Johannes Unterstein:好的。在讨论记录依赖关系和轻松共享应用程序时,我们正致力于简化自动基础架构的构建。现在,您具有易于共享和易于启动的应用程序,除了容器运行时之外,这些应用程序与主机没有任何依赖关系。最重要的是,您可以使用DC / OS之类的工具来运行容器环境并公开API以开发自动化。

JAXenter:参与者应该从您在JAX DevOps的会议中学到什么?

Johannes Unterstein:本次会议的所有内容都是关于容器2.0以及使它们在生产环境中运行的最佳实践。当前的容器技术使我们能够在整个数据中心内动态启动容器,但是我们的应用程序中仍存在持久数据。而且我们希望保留数据,即使容器发生故障,甚至整个节点发生故障,甚至更糟。

另一方面,运行大数据和快速数据应用程序需要大量的节点,这些节点通常具有与容器不同的调度策略。

为了最大程度地利用群集资源并在扩展和容错方面更加灵活,最好避免静态群集分区,并在同一数据中心中运行应用程序的所有部分。一旦成功部署了POC,评估通常就停止了,但是,尽管有升级和上述故障案例,但要保持其运行仍然是我的实际挑战。这就是为什么我们将花一些时间讨论所谓的第2天操作的最佳做法,其中包括监视,调试,升级和故障处理。