容器的出现彻底改变了现代软件开发和操作的方式。
日前, JAXenter就容器工具、技术以及其在DevOps环境中的用途,对JAX DevOps演讲者、Mesosphere分布式应用工程师Johannes Unterstein进行了相关采访。
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:容器领域最近增添了许多新颖趣味性。 在当前的讨论中,我特别感兴趣的是速度水平的变化。此外, 关注不同标准的发展也很有趣,如CNI网络。
JAXenter:你最喜欢的容器工具是什么?
Johannes Unterstein:关于这点也许我有点偏见,因为我正在帮助构建DC / OS,但事实上我确实很喜欢使用DC / OS。 我喜欢DC / OS和底层Apache Mesos的灵活性,以运行Docker容器,AppC镜像容器或Apache Mesos本身隔离(也称为容器化)的常规程序。 除此之外,您还可以选择是否要使用Docker Daemon,或者直接在Mesos universal containerizer上运行Docker镜像。
JAXenter:为什么开发人员对容器技术那么感兴趣?
Johannes Unterstein:因为它可以让你的生活更轻松。 容器使得在一个单独的归档中共享具有所有依赖性的应用程序变得非常容易,这在每个合适的容器运行时都是可执行的。例如Docker hub这样的基础设施可以使开发人员在需要多个shell命令启动一个特定应用程序时的时间更短。另一大优点就是使用容器可以使我们获得思考-容器的内部需求到底是什么。
JAXenter:容器是否可用于实现DevOps?
Johannes Unterstein:当然。 当谈到记录依赖和轻松共享应用程序时,我们正在使建立自动化基础设施变得更加容易。 现在,您可以轻松共享和启动不依赖于主机的应用程序。DC / OS这样的工具可以支持运行你的容器格局,公开API来开发自动化。
JAXenter:参与者可以从JAX DevOps会议中学到什么?
Johannes Unterstein:本次会议的主题是关于容器2.0以及如何保持它们在生产环境中运行的最佳实践。 当前容器技术使我们能够在整个数据中心内动态地启动容器,但是我们仍然在我们的应用程序中有一些持久的数据。我们希望保留我们的数据,即使容器发生故障,或者更糟糕的是如果整个节点发生故障。另一方面,运行大数据和快速数据应用程序需要大量的节点,通常具有与容器不同的调度策略。
最大限度地提高集群资源利用率并在扩展和容错方面更灵活,避免静态集群分区并在同一数据中心运行应用程序的部分是很好的。 通常,一旦POC成功部署,评估就会停止,但是在我的经验中,实际的挑战就是保持其运行,不论是升级还是出现上述故障情况。 这就是为什么我们将花一些时间讨论所谓的操作的最佳实践,包括监控,调试,升级和故障处理。
本文转自d1net(转载)