@levinzhang
2019-05-04T16:29:51.000000Z
字数 4915
阅读 697
by
InfoQ采访了Google Cloud的产品和工程副总裁Eyal Manor,作为他在Google Next主题演讲的后续报道,深入探讨了Anthos的架构。
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