TAP 系列文章 | Tanzu Application Platform 的技术概览

原创
05/26 15:55
阅读数 743

Tanzu Application Platform 致力于为开发团队、应用安全团队、应用运维团队打造一条简化的端到端开发运维体验的路径,以提升软件开发效率、加固应用安全、简化应用运维复杂度,从而加快应用上市时间。助力企业在 Kubernetes 多云环境中提供卓越的开发者体验。

随着各企业正加快其数字化转型,利用 Kubernetes 等云原生技术来部署和运行应用程序以成为大势所趋。诚然,Kubernetes 简化了运维团队的工作,加速了应用的部署上线。尽管如此,随着许多企业对 Kubernetes 的拥抱,大家正面临着驾驭庞大而复杂的云原生生态系统以及随之而来的陡峭学习曲线的挑战。尽管 Kubernetes 使基础设施和运维团队能够自动化应用程序部署和大规模管理容器,但它给开发人员带来了不同的挑战。


应对开发人员面临的挑战

开发人员必须在 Kubernetes 上构建他们的CICD流水线,将来自基础设施提供商 的底层基础资源与从云原生生态系统中获取的零散技术和工具相结合。将不同的开源工具用“搭积木” 的方式拼凑起来极具挑战和风险,首先,大量的开源工具很难设置和维护,通过分层建设的方式将它们连接到其他应用程序和基础设施非常复杂,势必迫使开发人员花费太多时间来应对底层基础设施,而不是专注于业务代码的编写。

在整个开发周期中,开发人员需要快速迭代他们的代码。开发人员通常会一遍又一遍地进行编码、运行、测试和调试的循环,我们将这个迭代过程的循环称之为“内循环”。可想而知,开发人员的大部分时间都是花在内循环上,因此内循环的时间越快,也就意味着迭代的效率越高。如今,大量微服务化、容器化的应用在开发过程中,我们会依赖于Kubernetes环境进行开发调试,势必这个内循环的过程变得更长,因为每次源代码的更改不仅需要重新构建、重新发布容器镜像,还需要重新部署 Kubernetes 资源,然后才能进行测试,这当然会大大降低开发人员的工作效率。

可以肯定的是,Kubernetes 是构建应用的绝佳平台,但它不应该是由开发人员去进行部署,也不应该由应用运维人员为应用程序来配置和实施 IT 和安全等基础要求。理想的状态,部署应用程序的Kubernetes 基础架构对于开发人员和应用运维人员应该是透明的,大家不必在此耗费时间与精力。


Tanzu Application Platform助力企业在 Kubernetes多云环境中提供卓越的开发者体验

为了帮助企业解决前文中提到的云原生应用开发过程中的种种挑战,VMware 在2022年1月正式发布了新一代PaaS平台Tanzu Application Platform。TAP是一个模块化的应用感知平台,它提供了一组丰富的开发人员工具和一条预先配置好可装配的生产流水线,在任何认证公共云或本地的 Kubernetes 集群上更快速、更安全地构建和部署软件,为开发人员提供卓越的开发体验。同时,Tanzu Application Platform还是一个可组合、可插拔的平台,因此企业团队可以根据其组织的偏好和不断变化的业务需求对其进行自定义。

TAP 通过定义一个 workload 抽象与开发人员进行交互,开发人员只需要关注到 workload 这个层面,workload 之下交给 TAP 自动化完成,从而为在 Kubernetes 上构建和部署云原生应用程序的企业提供卓越的开发人员体验,是面向开发人员的应用平台,它使应用程序开发团队能够通过自动化流水线更快地投入生产,并且它清楚地定义了开发人员和、安全人员、运维人员的角色,以便他们可以协作工作。


Tanzu Application Platform技术架构

Tanzu Application Platform可以部署在Tanzu Kubernetes Grid以及Amazon Web Services、Microsoft Azure 和 Google Cloud Platform的托管 Kubernetes 产品 之上,在这些与社区版本保持一致的Kubernetes层之上构建现代应用程序。通过TAP企业就可以采用一致的开发环境和工作流程。

下图为核心组件与服务架构图,接下来将分层介绍下TAP各个模块的功能。

从下往上进行介绍

  • Tanzu Application Platform底层为一个Kubernetes运行环境,可以是任何经过认证的公有云或者私有云Kubernetes;
  • 运行环境层之上绿色部分是云原生运行时层,基于Cloud Native Runtimes实现的无服务器运行时,通过对底层基础架构运行环境的进行抽象,构成Tanzu Application Platform的先进的无服务器运行时架构;
  • 云原生运行时层之上紫色部分,是软件供应链层,实现应用Source to URL的全自动化流程;
  • 软件供应链层之上蓝色部分与灰色部分,开发者交互层,实现开发者与平台的交互,提供的开发组件,帮助提升开发者体验及软件迭代效率。灰色部分是API Portal, API消费者可以查看详细的 API 文档并对API进行调试,也可通过从源 URL 提取 OpenAPI 文档来组装其仪表板和详细的 API 文档视图。
  • 架构图左边橙色部分是应用服务目录及服务绑定,可在Tanzu Application Platform上轻松实现服务的上线、规划、消费和管理。

以上模块 Tanzu Application Platform基于成熟的 VMware 主力贡献开源产品以及开源生态构成,接下来的章节笔者准备采取一种新的思路重点结合Tanzu Application Platform的能力组件能为企业的开发人员,应用运维人员,应用安全管理人员带来的三大核心价值展开阐述。当然对于Tanzu Application Platform的各类能力场景及技术实现也至关重要,将在本公众号的后续多篇文章中进行深入解析,请各位读者持续关注。


价值1:多维度释放开发人员的生产力

  • Application Accelerators:受开源项目Spring Initializr的启发,编写代码不需要从零开始,开发人员通过Tanzu Application Platform可以快速开始使用Application Accelerators(又名应用程序启动模板)开发新应用程序。这 些模板由应用程序架构师构建并可供开发人员使用,由框架代码、配置和云原生模式以及组织的最佳实践和 安全策略组成,从而为开发人员节省大量启动新应用程序开发的时间。

  • Cloud Native Runtime:Tanzu Application Platform内置的Serverless抽象,即Cloud Native Runtime,可简化实现微服务和基于事件驱动架构等高级应用程序的运行复杂度,例如自动应用程序扩展和使用 API 连接到未在 Kubernetes 中运行的系统。
  • TAP GUI:Tanzu Application Platform提供一致的图形用户界面 (GUI) 来展示及管理应用服务和其 API,使其易于发现和集成,从而提高开发人员的工作效率。

  • 为 Kubernetes 工作负载提供抽象

workload.yaml:应用程序架构师构建Application Accelerators时,其中包含描述工作负载特征的声明性工作负载资源规范,即workload.yaml,这是开发人员唯一需要与之交互的 YAML文件。开发人员在workload.yaml中配置参数,例如工作负载的类型(web app, batch job, streaming function)、源代码的位置、它应该连接到哪些后端服务(例如,具有 10GB 存储空间的 PostgreSQL、RabbitMQ 集群保证 1,000MPS),以及它的资源利用率。即在Tanzu Application Platform中一键发布应用的过程中,workload.yaml发挥了巨大的作用,通过它将开发人员和运维人员之间建立了将源代码发布到相关环境并行程可被访问的URL(Source to URL)的契约。基于 workload.yaml定义的资源规范,Tanzu Application Platform在给定源代码位置的情况下执行与 Kubernetes 的底层交互以部署和管理 我们的工作负载。


价值2:Supply Chain Choreography快速建立可持续的供应链流水线

Supply Chain Choreography:Tanzu Application Platform包括整个端到端流水线供应链Supply Chain Choreography,经过预先设置的组件,可以开箱即用地无缝协同工作,TAP提供一系列强大的开箱即用供应链,可以释放团队在从 Kubernetes 生态系统中的数千种技术组合选择出可用的流水线方案的巨大工作量。

首先,我们来回忆在 Kubernetes 上部署工作负载通常涉及以下一系列典型步骤,显而易见这个流程极其复杂,每一步流程都是易错环节,并且要求应用运维人员具备相当深厚的技术功底。

但借助 Tanzu Application Platform,部署工作负载对比之上的流程,应用运维人员的工作将会变得尤为简便轻松,从 Application Accelerators提 供 的 框 架 代 码 开 始 ,运 行 单 个 CLI 命 令 “tanzu apps workload create ‑‑ file workload.yaml”就能在几分钟内将工作负载部署在 Kubernetes 集群上运行。 Tanzu Application Platform通过自动化的安全软件供应链工作流程Supply Chain Choreography自动化整个应用程序部署过程,将大家从容易出错的编辑“YAML ”的过程中解脱出来。

  • 在Supply Chain Choreography供应链中引入企业受信的组件

尽管Tanzu Application Platform提供开箱即用的供应链流水线,但如果 VMware 选择某组件并不能满足企业当前的设计或选型,那么企业的平台工程师和应用运维团队可以根据其组织的要求和偏好灵活地更换组件。Tanzu Application Platform在设计时就考虑到了模块化,可组合可插拔的,以满足运维团队可以根据内部组织的意见设置相应的供应链组件。换句话说,企业可以在Tanzu Application Platform通过适配器轻松替换单个组件,从 CI 到容器镜像的构建,开发人员可以使用由企业内部定义和选型的组件。

  • Supply Chain Choreography供应链可视化能力,保证团队实时了解工作负载状态

Supply Chain Choreographer (SCC) 工作负载可视化功能使用户能够查看开箱即用供应链的执行状态,使用户可以轻松查明问题并快速采取补救措施。以下是Tanzu Application Platform GUI 在 SCC 插件中可视化开箱即用的测试和扫描供应链的图示。

此视图中有两个部分可简化用户体验:

  • 图表视图(顶部)显示了此供应链使用的所有已配置自定义资源定义以及作为供应链执行输出的信息
  • 阶段详细信息视图(底部)显示您在图表视图中选择的供应链的每个部分的源数据。

价值3:在协调开发和运维工作的同时提高工作效率

我们将作为软件生产者的应用开发团队的工作组织成内循环和外循环。内循环由共享或本地开发环境 组成,开发人员可以在其中自助访问相应的资源和云原生应用程序模式。外部循环指的是由 DevOps、平台运维和安全团队相互合作并与开发团队一起将应用程序部署到生产环境并对应用进行运维。Tanzu Application Platform通过围绕内循环和外循环进行协调 促进开发部门、运维部门、安全部门之间的协作 。

  • 创建无缝的内循环体验

在快速启动新项目后,开发人员进入迭代编写代码、构建、部署和测试代码更改以及调试的内循环周期 ,内循环的工作需要在开发人员的集成开发环境 (IDE) 中完成,以保证开发人员继续遵循他们熟悉的开发工作流程。

VMware Tanzu Developer Tools:Tanzu Application Platform提供VMware Tanzu Developer Tools, 包括 IDE 插件和扩展,因此开发人员可以在其内循环环境中轻松地与平台或其开源组件进行交互,供开发人员调试正在运行的容器,避免重新构建、重新发布和部署容器的步骤来缩短代码更改的实时更新路径,而不是直接将更新的代码注入到正在运行的容器中,意味着开发人员可以在迭代代码时立即测试代码更改。VMware Tanzu Developer Tools 提供VS Code Plugins,带有用于 IntelliJ 的插件,Eclipse 即将推出。

App Live View:在对其代码进行迭代时,开发人员通常需要检查正在运行的应用程序以分析行为以进行故障排除、调试或微调应用程序的运行时配置。Tanzu Application Platform提供App Live View,一种诊断工具,供开发人员深入了解应用程序的运行时特性(例如,资源消耗或流量信息)。它还允许他们更改日志级别和环境属性等参数,以便对正在运行的应用程序进行故障排除。

  • 标准化的方式使用服务绑定

Service Binding:在Tanzu Application Platform上进行中间件的服务绑定,能够简化发现和使用以标准化方式连接到应用的服务的体验。结合服务工具包,它可以在该集群上或跨集群提供简单的企业管理和具有一致服务绑定体验。

  • 建立关注点分离

Tanzu Application Platform在应用开发人员和DevOps 工程师之间建立关注点分离。组织中的DevOps 工程师负责配置软件供应链工作流,以确保开发和生产环境之间的一致性。开发人员在开发环境中配置的软件供应链针对内循环工作进行优化,并使用相同的供应链工具将源代码部署到开发环境中。应用运维团队在两种环境之间建立的这种一致性能够使开发人员高度相信在他们的个人环境中开发的代码在生产环境中也能正常运行。Tanzu Application Platform 这样的设计机制让开发人员可以构建可移植的应用程序,并避免在生产环境中进行昂贵的调试。

  • 体验开发人员和运维人员之间的平滑切换

开发人员完成一次版本迭代后将代码提交到代码仓库,此时开发生命周期会从内循环(个人开发环境)过渡到共享的外循环环境,然后将其部署到生产环境。由于运维团队已将安全性和合规性要求配置到供应链中,因此将代码部署至生产的路径对于开发人员来说是无缝的。

开发人员和运维人员之间的这种平滑切换是将代码快速部署到生产环境中的关键因素。 Tanzu Application Platform使这种切换变得顺畅,因为TAP只需要开发人员提交他们的代码(例如, git push ),之后软件供应链会自动触发,从而提供连续的生产上线路径。

  • 遵循运行时最佳实践以实现高效的应用程序部署

Convention Service:在 Kubernetes 中部署应用程序时应该遵循一些最佳实践,如果没有这些最佳实践,部署的工作负载可能会出现不可预测的运行时异常,从而破坏业务连续性。但是,应用开发人员 他们不是 Kubernetes 专家,通常不会意识到这样的运行时最佳实践。 Tanzu Application Platform中的Convention Service(又名,工作负载的运行时配置约定),为运维人员提供了配置这些最佳实践策略并自动将适用的配置约定应用于工作负载。


如上所述,借助 Tanzu Application Platform,企业可以构建和部署云多云环境中 Kubernetes 上的原生应用程序, Tanzu Application Platform提高了开发人员的生产力,使开发团队能够在不中断他们熟悉的工作流程的情况下快速开发应用程序并允许 DevOps 专业人员和应用运维人员通过内置的安全性和合规性更快地将开发人员的代码部署到生产中。相信大家现在已经对Tanzu Application Platform的总体能力以及它能够为您带来的价值有了清晰的了解,那么接下来我们还为各位准备多篇对于各类能力场景及技术实现详细原理的介绍,请大家持续关注吧!

作者介绍:

肖林,VMware 现代化应用平台高级解决方案架构师,主要负责VMware Tanzu云原生技术解决方案的架构与设计;在此之前,在IBM任职负责大中华区云原生技术解决方案架构,主导了多个云原生解决方案的设计。个人从业16年, Cloud Native拥护者&Agile实践者, 在容器,大规模分布式服务及治理,应用现代化、Spring等领域都有技术积累,同时具备CNCF CKA、CNCF CKS、Spring Professional等认证。

来源|公众号:VMwareTanzu云原生

展开阅读全文
加载中

作者的其它热门文章

打赏
0
0 收藏
分享
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部
返回顶部
顶部