背景
Tanzu Application Platform致力于为开发团队、应用安全团队和应用运维团队创造简化端到端开发运维体验的途径,提高软件开发效率,加强应用安全,简化应用运维复杂性。可见TAP产品覆盖面广:包括基于Kubernetes的Cloud Native Runtimes操作时;应用程序Source to URL软件供应链;为应用开发者开发插件、工具和仪表板App Live View;API Portal以及应用服务目录和服务绑定。应用开发和应用运维人员如何快速理解和掌握整个平台系统和动手实验?成为开发和运维团队领导关注的焦点之一。
是否有通用的学习框架和平台可以帮助团队更直观地掌握PaaS平台相关内容?如何更高效、更方便?TAP和K8S,培训容器平台用户?作为产品功能的用户和推广者,如何更直观地了解相关知识?hands-on向其他用户传授环境?TAP Learning Center目标是设计和解决这些问题。
传统PaaS复杂的类平台软件启动和学习过程
-
底层和协调底层IaaS环境;搭建和协调K8S集群环境;
-
安装相关的PaaS和组件;
-
学习环境资源的配置和分配;
-
创建和配置演示专有环境,保存模板;
-
用模版创建多套类似实验环境,分配给用户实验和演示使用,并维护多套环境的生命周期;
-
管理员定期检查确认上述环境是否在使用,并根据情况销毁实验环境和回收资源;
-
随机发生新的训练,自学实验,workshop、展览、演示等请求 ,申请并重复上述所有步骤;
-
很有可能时间紧,时间晚,延迟,或者需要连续加班填坑;
-
即使在大多数情况下,也没有实际的动手学习
-
…
问题和场景
PaaS类似产品的安装配置比较复杂,难以构造和使用。用户在早期阶段经常遇到以下类似问题(包括但不限于):
-
不同团队的合作伙伴希望每次演示和解释TAP,Tanzu K8S,TBS在建立临时环境时,需要提前花费大量时间,重复工作量增加。
-
不同团队的不同个人希望有自己独立的客户开发、测试、运维团队成员K8S或TBS,TAP自我操作和学习环境;每个用户使用的环境需要独立,以避免影响。但很难得到这样的支持。
-
对于上述相互隔离的环境,最好由Learning Center和Workshop管理员控制管理,如限制同时创建的独立学习空间环境数量,以限制Learning Center集群资源总量,保证服务质量。
-
在展商产品宣传会和演示活动中, 参与者希望通过简单的动手操作直观地理解Tanzu 产品特性。
-
学习中心内的学习单元也被称为workshop,可以根据用户独立创建、运行和销毁。Workshop环境完成后可以销毁释放Pod等待各种资源,但不需要销毁后台运营K8S集群。创建、运营和回收自助服务的实验环境。
-
… …
因此,我们需要更方便、更高效的施工和管理Learning Center解决上述问题的方法。
TAP 学习中心技术原理
-
—培训门户部署由管理员在集群中创建。Training Portal提供基础web用于注册和访问的界面Workshop。它还提供了一个REST API来请求对workshop的访问。
-
—提供workshop定义。它是由管理员预加载到集群中的workshop内容托管的位置和位置workshop容器图像包装在所需内容和其他工具中。
-
—由Training Portal触发为Workshop创建一个Workshop Environment。系统将为Workshop设置一个NameSpace,其中运行Workshop Session共享资源的部署。
-
—由Training Portal触发针对Workshop Environment的workshop实例。Operator设置特定于workshop session名称空间,并提前创建相应的额外资源。必要时也可分发,或根据需要创建资源。
Learning Center平台架构
依靠学习中心K8S Operator完成工作。Operator特定于学习中心的一组使用Custom Resources来控制。 如图所示,
-
创建培训门户Training portal;
-
然后该门户Training portal自动触发一个或多个workshop environments每个不同的安装和设置过程workshop都有一个workshop environment;
-
当用户访问培训门户时Training portal选择他们想做的,选择他们想做的Workshop培训门户Training portal根据相应的workshop environment分配和创建用户workshop session ;
-
并将用户定向相应workshop session实例。
Workshop session与Kubernetes Nampspace它是相关的,用于会话。应用于会话Account的 RBAC(基于角色访问控制),确保用户只能访问相应的访问NameSpace和资源。
TAP介绍学习中心的使用情况
1.在TAP Profile确认已安装Learning Center Packages
如图所示,通过tanzu package CLI查看Learning Center相应的安装Kubernetes正确的资源运行状态。
$tanzu package installed list -n tap-install $tanzu get trainingportals
2.通过Training Center链接打开Learning Center Workshop界面
点击相应的workshop之后,你可以看到新的workshopsession自动创建和正常运行资源。
:点击创建多次workshop时,会自动创建多个隔离的workshop,自动分配给用户。如下图所示,资源相互隔离Namespace: learninig-center-guided-w01-s010和learninig-center-guided-w01-s011。
3.浏览和使用Learning Center中TAP workshop
Workshop可以是一个Kubernetes workshop或TAP workshop。左侧为MarkDown风格指南可以显示在右侧Terminal终端、Console、IDE编辑器或者Slides PPT。
以Markdown或AsciiDoc以文件的形式指导用户完成Workshop。当指导说明书可以注明为可执行命令时Workshop单击仪表板时,它们会自动执行并显示用户在右侧的终端上的结果。文本被标记为可复制的,所以当Workshop仪表板上单击时,它会被复制到浏览器的粘贴缓冲区中,以便粘贴到终端或其他web应用程序。在web在浏览器中提供Workshop仪表板编辑器(VSCode IDE)的访问。提供访问基础web的控制台Shell和Console来访问Kubernetes集群。支持Kubernetes仪表盘或Octant的使用。能够在Workshop特定显示在仪表板上PPT幻灯片。
TAP Learning Center示例过程图:
a)点击workshop进入以下页面,左边是Workshop Overview说明向导,右侧包括Terminal/Console/IDE Editor显示页面。
点击进入本例Learning Center按钮,进入Application Accelerator页面。
b)点击左边的顺序MarkDown的向导链接link,Learning Center会帮你展示K8S resource,并自动打开Application Accelerator引导不同类型的应用程序代码框自动生成页面。
c) 通过Accelerator下载代码框架后,通过IDE Tools查看和编辑代码。
d)右侧嵌入式IDE编辑界面中,包含完整IDE刚刚通过编辑器自动打开Accelerator建的代码框架。
e)点击左侧说明向导中
Editor: Open file “spring-sensors/Tiltfile”
Editor: Execute command “tanzu.liveUpdateStart”
在右侧IDE Editor中看到,自动执行liveUpdate模式。 任何代码更新会自动进行重新编译、打包和部署的过程。
f)下一步,更新代码并submitting the build, git提交代码,并查看supply chain。
g)如图点击指导说明中的「App URL」,则自动打开浏览器展示TAP的应用界面和应用Supply Chain视图。您可以点击「结束workshop」终止并回收资源。
TAP学习中心总结
TAP学习中心帮助用户快速学习和掌握TAP,K8S,CNR,TBS等技术、产品和组件。提供一个通用的学习框架和平台,帮助团队更直观的掌握PaaS平台相关内容。大幅提升开发和运维人员掌握平台的效率。为演示和展台、活动等,提供灵活的产品和技术演示环境,自助式创建和管理资源。同时,TAP学习中心本身支持扩展和自定义Workshop内容和模块并支持扩展能力。请持续关注TAP并与TAP产品和服务团队联系使用TAP和学习中心。
作者简介
VMware资深云原生应用架构师,多年软件开发设计和产品管理工作。在VMware/Pivotal之前曾就职于IBM中国实验室、Oracle、Ericsson等IT企业,从事企业级平台和云计算相关软件的系统架构、产品管理和研发等工作。具有丰富的电信和银行、交通等行业经验。拥有Spring Core professional, Kubernetes CKA, AWS Solution Architect, Cloud Foundry和软件架构师认证,目前主要专注企业级PaaS,容器云平台产品及云原生微服务应用架构设计。