《Google Anthos in Action》第一章:Anthos概述

274 阅读12分钟

本章内容包括:

  • 现代应用程序的结构
  • 使用Anthos加速软件开发
  • 使用Anthos在规模上实现标准化运维
  • Anthos在Google的起源
  • 如何阅读本书

软件已经运行世界一段时间了。作为消费者,我们已经习惯了那些能让我们更快、更智能、更高效地完成诸如叫车或存取薪水等任务的应用程序。越来越多的领域,包括健康、教育、娱乐、社交生活和就业都受益于现代软件应用程序的提升。在这些应用程序的另一端,是一系列大大小小的企业,它们提供了这些改进的体验、服务和产品。现代应用程序不仅部署在消费者手中,也在企业供应链的各个环节上。许多传统行业(如零售、媒体、金融服务、教育和物流等)中的主要交易系统正在逐渐被现代微服务所取代,这些微服务具有频繁自动更新、高效扩展和更多实时智能的特点。新的数字优先创业公司利用这个机会来颠覆传统商业模式,而企业老牌公司则正急于现代化他们的系统,以便竞争和避免被颠覆。

本书将带领您深入了解Anthos的构架——平台、开发环境、自动化和扩展的要素,以及与Google适应现代软件开发卓越的模式的连接,适用于任何行业。每一章都包含了如何使用该平台的实际示例,并且其中一些章节包含了实践练习来实现这些技术。

现代应用程序的构成

什么是现代应用程序?当你想到那些改善你生活的软件时,也许你会想到那些交互式、快速(低延迟)、联网、智能、具备上下文感知能力、可靠、安全且易于在任何设备上使用的应用程序。随着技术的进步,现代应用程序的能力,如安全性、可靠性、感知能力和智能性,也在不断提高。例如,新的开发框架,如React和Angular,极大地增强了应用程序的交互性,而像Node.js这样的新运行时则增加了功能。现代应用程序的特点是通过频繁更新不断变得更好。在后端,这些应用程序通常由许多服务组成,而所有这些服务都在不断改进。通过打破旧的“单块”应用程序编写模式,现代应用程序实现了模块化。在旧的模式中,各种功能都紧密耦合在一起。

将应用程序编写为一组模块或微服务具有几个好处:组成服务可以独立地演进或在时间上被其他更可扩展或更优越的服务所替代。此外,现代的微服务模式更好地区分了各种服务之间的关注点,并在服务之间建立了合同,使得检查和修复问题更加容易。将应用程序编写、更新和部署为可以共同使用但也可以独立更新、扩展和调试的微服务,是现代软件开发的核心。在本书中,我们将这种模式称为“现代”或“云原生”应用程序开发。这里使用“云原生”一词,是因为微服务模式很适合运行在分布式基础设施或云上。微服务可以逐步推出、扩展、修订、替换、调度、重新调度,并在分布式服务器上紧密地绑定,创建出高效、可扩展、可靠的系统,响应迅速且频繁更新。

现代应用程序可以从头开始编写(绿地项目),也可以通过遵循一组架构和运营原则,对现有的传统应用程序进行重构(棕地项目)。应用现代化的最终目标通常是加速收入增长,这通常涉及到IT以外的业务部门,如业务线(LOB)单位。在大多数传统企业中,IT部门过去一直专注于降低成本和优化运营。尽管成本降低和优化运营可能是应用现代化的副产品,但它们并不是最重要的好处。当然,现代化过程本身需要前期投资。Anthos是Google Cloud在混合云和多云环境下的应用现代化平台。它提供了实现高回报率的应用现代化所需的方法和技术基础。强调通过API、微服务和云可移植性实现模块化的IT战略,结合开发者平台自动化重用、实验和成本效率扩展以及安全、可靠的运营,是成功应用现代化的基本关键前提。

Anthos的一个方面是现代化的开发者体验,可以加速业务应用程序的开发。它针对重构棕地应用程序以及编写微服务和基于API的应用程序进行了优化。它提供统一的本地、本地和云开发,以及从源代码到生产的事件驱动自动化。开发人员可以使用现代语言和框架快速编写代码,并进行本地仿真和测试以及集成的CI/CD。Anthos支持快速迭代、实验和高级发布策略。Anthos开发者体验强调云API、容器和函数,但企业平台团队也可以自定义它。Anthos开发者体验的一个关键目标是使团队每天多次发布代码,从而提高速度和可靠性。Anthos具有内置的速度和回报率指标,帮助开发团队衡量和优化他们的性能。基于数据的基准指标结合预打包的最佳实践蓝图,团队可以部署以实现下一层次的性能。

Anthos的另一个方面是面向中央IT的运营员体验。Anthos在多个云上运行操作的方式是独一无二的、可扩展的和简化的。这一功能是通过过去20年来在Google上运行服务所发明和完善的技术基础实现的,这些服务具有极高的可靠性,运行在相对低成本的基础设施上。通过使用一层抽象,包括Kubernetes、Istio、Knative和其他几个构建块,以及针对自动化配置、安全性和运营的Anthos特定扩展和集成,对基础设施进行了标准化。Anthos运营员体验提供了先进的安全性和策略控制、自动化的声明式配置、高度可扩展的服务可视化和运营、以及自动化的资源和成本管理。它具有广泛的自动化、度量和故障避免功能,用于实现高可用性、安全的服务管理,覆盖云端、本地、边缘、虚拟化和裸金属基础设施。

无论是企业还是小公司,多云和边缘已成为他们的新现实,无论是通过有机增长还是通过收购。许多国家的法规要求能够在云之间迁移应用程序,并展示对主权的支持的容错能力。无需受监管的公司发现多云对于提供开发者选择和访问创新服务是必要的。在基础设施足迹上提供更多智能服务和更大的智能服务机会。一些IT组织通过自己构建跨云平台集成来应对这一挑战,但这个工作变得越来越困难。以可扩展和可维护的方式构建跨云平台非常困难,更重要的是,这种方法会削减宝贵的开发者时间,影响产品创新。

Anthos提供了一个解决方案,根植于Google在软件开发和可靠性工程(SRE)运营方面多年的经验和技术创新,同时结合了Google Cloud在为数百万企业客户管理现代应用程序基础设施的经验。Anthos在服务于LOB开发者和中央IT的需求方面是独一无二的,具有两个领域的先进能力。跨环境的开发者和运营者体验的一致性使企业能够在应用现代化方面获得Anthos的最大回报率。

加速软件开发

软件产品创新和新客户体验是数字经济中新收入生成的动力。但在创新过程中,只有少数想法能够成功地成为新产品;大部分都会失败并消失。随着每个行业向软件驱动型过渡,新产品创新取决于拥有高度敏捷和高效的软件开发流程。开发人员是新的决策者。如果没有敏捷高效的开发过程和平台,企业可能无法创新,或者创新成本非常高,甚至会出现负回报率。一项名为DevOps研究评估(DORA)的广泛研究调查了30,000多名IT专业人员,跨越几年的时间,涵盖了各种IT职能。调查结果显示,软件开发的卓越表现是业务成功的标志。鉴于现代应用在推动经济发展中的重要性,这并不令人意外。

DORA对这些好处进行了量化,显示“精英”(或最高绩效)软件团队在实现收入和业务目标方面的效果是低绩效团队的两倍。精英团队的显著特征是经常发布软件。DORA发现以下四个关键指标可以准确衡量软件开发的卓越性:

  • 部署频率
  • 变更的交付时间
  • 变更失败率
  • 恢复服务的时间

高绩效团队经常发布软件,例如每天几次。相比之下,低绩效团队每月发布不到一次。该研究还发现,经常发布的团队的软件缺陷率较低,并且能够比其他团队更快地从错误中恢复过来。因此,除了更具创新性和现代性外,他们的软件也更可靠和安全。DORA的研究结果还显示,越来越多的企业正在投资于能够实现卓越绩效的工具和实践。

为什么拥有更高开发速度的团队能够取得更好的业务结果?一般来说,更高的开发速度意味着开发人员可以进行更多的实验和测试,因此他们能够在同样的时间内得出更好的答案。但还有另一个原因存在。拥有更高开发速度的团队通常已经将编写和部署代码自动化,并且减少了开发工作的努力,这同时使更多的人可以成为开发人员,尤其是那些与业务更紧密结合的人,而不是工具。因此,高速开发团队拥有更多的业务思维和对最终用户需求的更深入了解。快速实验和对用户的关注相结合产生更好的业务结果。Anthos是横跨云的通用底层层,为加速应用程序交付提供了共享的开发者体验。

标准化大规模运维

开发人员可能是新的决策者,但运维团队是负责日常管理王国的团队。运维包括提供、升级、管理、故障排除和扩展服务、基础设施和云端的各个方面。通常,网络、计算、存储、安全、身份验证、资产管理、计费和可靠性工程都属于企业的运维团队。传统的IT团队通常有15%至30%的员工从事IT运维工作。这个团队并不总是直接参与与业务线的新产品引入,但它通常为业务选择云端、发布服务目录,并验证可供业务使用的服务。如果不投资于运维自动化,这个团队很容易成为瓶颈和固定成本的来源。

另一方面,现代化运维对于提高开发速度有着巨大的积极影响。现代应用开发团队通常由非常精简的运维团队支持,其中80%以上的员工从事软件开发而不是运维工作。这样的开发者为中心的比例只能通过现代化基础设施和规模化、自动化的运维实现。这意味着运维非常高效,并且使用广泛的自动化来快速引入新服务。也许Anthos的最大价值在于以开放云端的独特方式自动化大规模的运维工作,并在不同环境中保持一致,这得益于其源自谷歌自己基础设施的独特开放云方法。

源于谷歌

谷歌的软件开发流程经过多年的优化和调整,以最大化开发者的生产力和创新能力,吸引了世界上最优秀的软件开发者,并导致了软件和软件开发交付实践的创新良性循环。Anthos的开发堆栈是基于这些基础发展起来的,并构建在谷歌向行业推出的核心开源技术之上。

Anthos的核心是Kubernetes,这是一个广泛的编排和自动化模型,通过容器抽象层管理基础设施。Kubernetes上面的一层是基于谷歌的SRE(Site Reliability Engineering)或运维实践,用于在规模上标准化服务的控制、安全和管理。这一层服务管理是基于谷歌的Istio-based Cloud Service Mesh。企业策略和配置自动化是在这一层内使用Anthos Config Management构建的,以实现规模化的自动化和安全性。该平台可以在多个云上运行,并抽象出底层的不同的网络、存储和计算层(参见图1.1)。

截屏2023-07-21 17.13.42.png

在Anthos堆栈之上是开发者体验和DevOps工具,包括使用Knative的部署环境以及集成的Tekton持续集成和持续交付。

总结

  • 现代软件应用程序提供了许多业务优势,并推动了许多行业的转型。
  • 这些应用程序的后端通常基于云原生微服务架构模式,允许实现出色的可扩展性、模块化以及一系列适合在分布式基础设施上运行的运营和DevOps优势。
  • Anthos起源于Google Cloud,是一个用于托管云原生应用程序的平台,提供开发和运营优势。