对话谷歌 VP Eyal Manor,深入探讨 Anthos、Kubernetes 和多云

Anthos 之前被称为 Google Cloud Services 平台,它是在最近的 Google Next 上发布的,能够用来构建和管理跨多个环境的现代云原生应用。Anthos 是 主题演讲 上的关注焦点, InfoQ 之前曾对其进行了报道

正如在主题演讲中所述,Kubernetes 项目是从一个名为 Borg 的 Google 内部项目 演变 而来的。该篇 博客文章 阐述了 Anthos 如何基于 Kubernetes 平台来支持混合云,甚至是多云。由于 Kubernetes 跨多个环境,甚至多个云,企业需要跨这些不同集群的一个集中视图,并且需要统一地管理这些集群并推送配置和策略信息。Anthos 的目标就是解决这些问题。

On-Prem 集群通过 IP 连接到 Google 的 API 端点,尤其是进行监控和告警的 Stackdriver,并且还会连接到 Google Kubernetes Engine (GKE) Connect,以便于借助 Google Cloud Platform Console 注册集群。

基本组件图如下所示(图片来源: Google Cloud 文档 )。

Kubernetes 和 Istio 服务网格 结合其他的一些开源组件能够让开发人员基于 一次编写到处运行 的理念开发多云的应用。

在这里,会有一个中心化的组件让混合云和多云成为可能,在 Google Cloud 中也就是 Cloud Interconnect ,如下图所示(图片来源: Google Cloud 文档 )。

Cloud Interconnect 结合其他的组件提供了一个统一的模型,通过推送配置和策略信息实现混合云的计算、网络、存储和服务管理。

InfoQ 采访了 Google Cloud 的产品和工程副总裁 Eyal Manor ,作为他在 Google Next 主题演讲 的后续报道,深入探讨了 Anthos 的架构。

InfoQ:在 Kubecon 2018 上,人们都在关注多云的话题。在我们的虚拟座谈会上也讨论了这个问题。简单来说,Anthos 是基于 Kubernetes 和 Istio 的多云平台吗?你能稍微深入介绍一下它的架构吗?

Eyal Manor:是的,Anthos 是一个基于 Kubernetes 和 Istio 的平台。Anthos 通过使用开放 API 和可扩展的管理扩展接口让多云能力成为现实,借助它,消费者可以很容易地部署预配置的 Kubernetes 应用。Anthos 同时还能让企业通过使用 Istio 和 Anthos Config Management 实现跨部署环境的策略和安全自动化。Anthos 还包含了一个容器市场,即 GCP 容器市场,拥有 OSS 和第三方审核的 ISV 解决方案,以及开箱即用的监控和日志功能,提供统一的控制和可观察性。

Google Kubernetes Engine(GKE)是业界最早提供 Kubernetes 托管服务的,为 Anthos 提供了良好了基础设施支撑。混合云的一个主要目标就是满足人们在云计算之旅中遇到的问题。Anthos 能够基于其他的 Kubernetes 环境提供统一的控制和可管理性,确保在采用云的各个阶段都能提供良好的支持。

InfoQ:on-premise 的工作负载将会需要 Google Kubernetes Engine(GKE)。在其他云供应商上运行 Anthos 并由 GKE 进行控制的话,都需要做些什么呢?这能够实现吗?你是否希望 Azure 和 AWS 推出类似 Anthos 的服务?

Manor:Anthos 的混合云功能已经可以在 GKE 的 Google Cloud Platform(GCP)和客户的 GKE On-Prem 数据中心中正式可用了。目前,我们已经有了 GKE 连接代理,它允许我们连接至在任何地方运行的 EKS 环境或 kubernetes 工作负载。我们计划在不久的将来进一步扩展这种能力。

GKE On-Prem 需要 vSphere v6.x,我们知道云供应商提供了 API,它允许消费者在云上能有 GKE On-Prem 这样的体验。我们正在与消费者和合作伙伴进行交流,讨论他们下一步想要看到 GKE 支持哪些平台。

InfoQ:在博客文章中,你将 Anthos 描述为“一次编写,到处运行”。作为开发人员和架构师,我们都听说过这种说法,当然上下文环境不同,初衷也有很大的差异。你能在这里解答一下这种疑虑吗?

Manor:Anthos 基于开放和开放 API,对于开发人员来说,这是支持多云和多环境计算的唯一实用方法。过去有协议规范,现在 OSS 正在成为一种标准,它可以在任何地方以相同的开发人员体验一致地运行。到底是该使用专有的、封闭的系统来确保支持和可靠性,还是通过开放、一致的平台来建立高度信任、可靠和相互支持的伙伴关系呢。Anthos 采用的是后者,也就是采用对消费者友好的方式。

与寻找一个单一的 / 一致的运维模型来跨 on-prem 和云组织相比,构建一个定制的运维模型来适应不同的环境,可以让现代化技术所带来的收益最大化。Anthos 通过支持可移植性,节省了开发人员和 ISV 供应商的时间。

InfoQ:关于上个问题,追问一下,举例来说,Eric Brewer 提出了 CAP 理论,该理论表明任何的分区空间都会导致应用的正常运行时间出现问题。你们是如何借助 Anthos 解决这个问题的呢?

Manor:在 Google 工作的最大好处是我可以直接联系到设计 CAP 定理的人,因为他和我一起在 Anthos 工作!Eric 指出,应用程序可以在不连接回 GCP 的前提下在 premise 模式下继续运行。但是,我们确实需要连接来管理升级和其他运维方面的变更。因此,在分区期间不可能进行更新,但是本地更新可以工作,应用程序应该能够继续运行。

InfoQ:你谈到了工作负载的迁移,它与 VMotion 类似吗,也就是在无需中断的情况下进行实时迁移?

Manor:不是这样的,它与 VMotion 不同,它在很多方面解决了一个完全不同的客户痛点。VMotion 允许用户将已有的工作负载从一个位置移动到运行在相同平台上的另一个位置,中间不会产生中断。一旦迁移发生,VM 仍然会在相同的环境中以相同的形式运行。借助 Anthos Migrate,Google Cloud 已经实现了 VM 的实时迁移,并且仍然是唯一提供这种技术的超大规模云提供商。

当你以同样的方式从 on-prem 中提取应用程序并将其放到云中时,你不过是将平台的问题转移到了其他地方。

Anthos Migrate 为客户提供了一种直接将工作负载 (物理服务器、on-prem 环境中的 vm、Google Compute Engine 和 / 或其他云) 迁移到 Google Kubernetes Engine (GKE) 中的容器的方法,GKE 中的容器是一种现代化的环境。在 Beta 版中,Anthos Migrate 可以在几分钟内将有状态的工作负载迁移到 GKE 中的容器中,自动将工作负载转换为 Kubernetes pod 中的容器,从而有助于降低项目现代化过程中的风险、工作量和停机时间。

一旦迁移并升级到容器环境中,工作负载在 GKE 中就可以通过 CSM、Stackdriver 日志记录和监视等附加服务以及来自 GKE Marketplace 的其他 OSS 和第三方解决方案进一步现代化。

InfoQ:Eric Brewer 和 Jennifer Lin 编写了关于 Anthos 的白皮书。这篇文档的基本原则之一是解耦。你能分析一下应用开发和 Anthos 之间的关系吗?Anthos 项目是否只针对云本地应用程序? 除了 Kubernetes 提供的应用程序可移植性之外,Anthos 项目如何简化应用程序开发?

Manor:Anthos 允许消费者跨环境构建和管理现代化的混合应用。非云原生的工作负载也可以利用 Anthos。Anthos 通过服务网格和迁移能力来处理已有的应用程序,并且不限于云原生应用。Anthos 由 Kubernetes 和来自 Google 的其他业界领先的开源技术提供支持,它会改变客户的架构方式,让他们专注于创新,并且能够让他们在不损害安全性、增加复杂性或降低开发人员生产力的情况下比以往更快地做出反应。它允许客户以 on premise 的方式或在云中对应用程序进行现代化。他们能够使用新的或现有的硬件,而 Google Cloud 为它们的应用程序提供托管环境。这样就能实现更快的上市时间,更低的管理开销,以及更强的创新能力。Anthos 为客户提供了一个可以在任何地方运行的平台,可以查看在不同环境中发生了什么。它建立在 Google 创建的开源技术之上,因此它是可移植的、一致的、可扩展的,因此能够有助于对未来的投资。Anthos 通过与 Cloud Run 集成(对 Kubernetes 进行了抽象),并借助市场(marketplace)和多集群、多云管理平面,简化了无服务器(serverless)应用程序的开发。

InfoQ:在部署到各种地方方面,虽然无状态应用程序相当“简单”,但是在跨云时,信天翁总是面临存储、网络和身份的问题。我想再问一下在虚拟座谈会中提出的问题: 在 Kubernetes 真正实现多云之前,需要解决的主要技术挑战 (如果有的话) 是什么?

Manor:最终,Kubernetes 和构建在其上的平台,比如 Anthos,将直接运行客户或其他供应商提供的应用程序。客户必须处理相同的挑战,就像他们在类似的环境中运行这些应用程序,但是没有 Kubernetes 的辅助一样。好消息是,Kubernetes 实际会让一切变得更简单,通过一个标准的控制平面和 API,我们发现客户能够在多个位置更容易地运行核心工作负载,比如身份识别系统。Google 在大规模运行分布式系统方面的经验表明,我们有一个模式库来帮助解决运行这些服务相关的问题,而我们的客户可靠性工程(Customer Reliability Engineering)哲学能够让我们扩展 SRE 团队,与我们的客户共享对这些服务的责任。(SRE 代表站点可靠性工程,更多关于 SRE 的信息可以在 这里获取 。)

InfoQ:你能否简单谈一下 Anthos 利用 Kubernetes 社区的前景,以及 Anthos 的近期和长期路线图吗?

Manor:Kubernetes 社区从 Google 对 Borg 和 Omega 的开创性工作中得到启发,开发了一组非常棒的原始构造,如 pod、Deployment、自定义资源定义(custom resource definition)。现在,我们看到越来越多的人关注于他们可以在这些基本构造的基础上能够构建些什么。像 Istio 这样的服务网格让开发人员关注应用程序业务逻辑,而不是运行它们的基础设施。我们很高兴地看到,在我们减少早期用户的生产复杂性和提高易用性的同时,它的实际采用在持续增长。

同样,在 Knative 项目中,我们与行业合作伙伴一起创建了一组标准的无服务器基础构建块,这意味着每个供应商都可以更加关注如何为终端开发人员带来更好的体验。Anthos 以一种易于使用和支持的管理方式打包了许多云原生技术,另外还将多个合作伙伴产品作为解决方案的一部分或提供在了容器市场中。

我相信社区未来会有很多的机会,进一步自动化和加速软件工程。Google 的工程师长期以来拥有强大的内部平台和工具链来开发、构建、测试和发布代码,从而加快开发速度和生产力,我们正在努力为社区带来最好的功能。

综上所述,Anthos 项目是一个从 Borg 到 Kubernetes 再到多云的多阶段演化过程。它的目标是应用程序开发和管理的 一次编写,到处运行 ,主要要靠 Kubernetes 平台来实现。

Google 员工 Eric Brewer 和 Jennifer Lin 编写的 白皮书 谈到了通过 Kubernetes 所实现的应用现代化。

关于 Anthos 的更多细节信息可以参考 其文档

查看英文原文: Q&A with Google VP Eyal Manor about Anthos, Kubernetes, and Multicloud