一次性介绍VMware Tanzu Application Platform 的OSS!
你好!我是TUNA-JP的管理成员@hirosat。
实际上,去年我们也举办了”TUNA-JP Advent Calendar 2021″,
我负责了第一天、第十二天、第二十四天(第二个日历)、第二十五天和第二十五天(第二个日历)!
这篇文章是“TUNA-JP Advent Calendar 2022”中第二天的参与记录。
这篇文章的要点是什么?
- VMware Tanzu Application Platform (以下、TAP) には、いっぱいOSSが使われているよ!のご紹介
顺便问一下,您知道TAP吗?
就像名字所示的一样,VMware Tanzu 是提供的应用平台。
首先,简单来说,VMware Tanzu 是关于 Kubernetes 的产品系列之一,它属于 VMware 公司的产品。
而我们今天介绍的 TAP,则是在 Kubernetes 上构建的平台。
那么,Kubernetes到底是什么?根据官方网站,它是一个可移植且可扩展的开源平台,旨在促进声明性的配置管理和自动化,并管理容器化的工作负载和服务。
听到这些,会有人想:“咦?这是什么意思?”对吧?
没错。Kubernetes是一个平台,但在其之上还要构建另一个平台。
为什么要这样做?
在这里,我们将为您介绍一条很好地表达了这个解答的推文。
这条推文是在Kubernetes开始流行的时候变得著名的,翻译过来就是说,Kubernetes是用来构建平台的平台。它不是最终目标,而是更好的起点。
这真的很好地描述了Kubernetes。Kubernetes本身作为一个容器化平台非常有用,但要实际应用于生产环境,需要结合各种开源软件来构建和部署应用程序以提高效率。TAP将成为实现这一最终目标的平台。
TAP的整体情况
我参考了组件文档,并总结了整体架构。
需要注意的是,这是基于TAP1.3版本的构成,未来的版本可能会有所改变。
另外,尽我所能地写了下来,但可能没有完全涵盖所有功能。
我粗略地将TAP的内容分为了三个部分。
-
- Software Supply Chain: いわゆるCI/CDパイプラインであり、TAPの心臓部
-
- 開発支援ツール: Software Supply Chain を使った開発の時に役立つツール郡
- デプロイ支援ツール: Software Supply Chain でデプロイされたAPPを外部公開するために必要なもの
构成软件供应链的开源软件
在软件供应链中,一个组件中可能会出现两个开源软件,但并不同时使用。它们是可互换的组件,由用户自行选择使用与否。预计可互换的组件将在将来的版本升级中不断增加,从而支持更多的开源软件。
地图绘制者 (链接)
TAP是由VMware开发的开源软件,它是软件供应链的核心功能。通过在流水线的每个部分中使用此开源软件来定义输入和输出以与前后部分进行协作,从而实现了可互换的流水线,不受任何软件限制的影响。
通量 (链接)
如果想在Kubernetes中使用GitOps,这个开源软件非常有用。TAP通过使用其中的Flux CD controller功能,允许用户将指定的源代码导入TAP中,检测Git仓库的变化,并自动更新应用程序。
網絡指責 (鏈結)
OSS是一种利用Anchore提供的SBOM(软件组件清单)进行快速扫描的产品。在TAP中,该产品用于扫描源代码和构建映像。目前的TAP版本只支持该产品作为扫描源代码的唯一选择。
铁匠(链接)
Tekton是用于在Kubernetes上实现CI/CD流水线的工具。Tekton本身具有广泛的功能,但现在TAP仅支持用于源代码的测试。
Jenkins链接
这是一款历史悠久的CI工具,众所周知。和Tekton类似,目前主要用于源代码的测试。可以与Tekton互换使用,选择您熟悉的工具来使用。
背包(kpack)
这是一个用于在 Kubernetes 上使用 Cloud Native Buildpack 的开源软件。Cloud Native Buildpack 能够自动识别所需的中间件,并在不使用 Dockerfile 的情况下将源代码内容转换为容器。
看一看 (链接)
Kubernetes提供了一种开源软件,可以使用Dockerfile进行容器镜像构建。VMware推荐使用kpack(Cloud Native Buildpack)工具,但也提供了kaniko供希望使用Dockerfile进行容器化的用户使用。
Snyk(链接)
在扫描容器镜像的部分,您可以选择使用Snyk。默认情况下,使用Grype,但根据要求可以使用Snyk。
卡维尔工具(链接)
这是一套像十得刀一样的工具集,用于在Kubernetes上辅助构建、配置和部署。以前称为k14s,现已更名。我将简要介绍每个工具。
-
- ytt: Yaml Template Toolsなので、yttです。yamlファイルに値を代入(templating)したり、元のyamlファイルをいじらずに特定のデータを書き換える(overlay)ことができます。
-
- kbld: packageの元となるBundleと呼ばれるOCI準拠のデータの作成をサポートするツールです。イメージの参照情報をダイジェスト形式に変換したり、メタデータにその情報を格納してくれます。
-
- imgpkg: Bundle情報からレジストリ上へのイメージの配置をサポートします。また、レジストリ間のイメージの再配置にも利用することができます。
-
- kapp-controller: APP packageのデータをKubernetes上にデプロイ・管理することができます。
-
- kapp: APP形式のリソースの操作を行うCLIです。
- secretgen-controller: Kubernetes標準のSecretリソースのデータ形式を拡張します。
Knative(链接)
主要包含Serving和Eventing这两个要素。
-
- Serving: 既存のServiceリソースよりも高機能なサービス公開を可能にします。例えば、リクエストを受けるまでPod数0の状態をキープしたり、しばらくアクセスがなかったら、再びPod数を0にすることができます。
- Eventing: Event-drivenなマイクロサービス間連携を可能にします。
在用于开发支援工具的OSS中使用
幕后 (链接)
在TAP GUI的背后运行,并提供GUI门户功能。
倾斜 (链接)
为了实时更新Kubernetes内的应用程序,TAP是一个支持以下要求的应用程序,它可以在本地更改源代码并提供实时更新和调试功能。
-
- クライアント: Windows/Mac上のVS Code
- 対応言語: Java / Spring Boot
教育(连接)
用Kubernetes创建学习网站的开源软件。之前以eduk8s的名字展开开源软件,但现在更名为Educates,并且目前开源软件开发已经停止。可以使用TAP创建独立的学习网站。
作为部署支援工具被使用的开放源代码软件
轮廓(链接)
Kubernetes中提供L7负载平衡功能的开源软件。除了常规的入口资源外,还提供了更高级别的可定制化选项,如httpproxy资源。
证书管理器(链接)
这个开源软件可以帮助为应用程序添加SSL证书。
附言 (fù
安装了TAP后,您可以将这么多开源软件一次性集成在一起并使用。作为一个喜欢开源软件的人来说,TAP是一个非常有趣的产品。此外,尽管您不需要了解每个开源软件的知识,但如果您有一些开源软件的知识,那么在需要定制时会非常有帮助,所以请务必记住!
「TUNA-JP Advent Calendar 2022」的第三天活动,我们将使用各种不同功能的TAP,重点介绍它能做到什么样的事情。
感谢您的阅读!