共计 6766 个字符,预计需要花费 17 分钟才能阅读完成。
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 云原生