TAP 系列文章8 | TAP 学习中心——通过动手教程来学习

背景

Tanzu Application Platform致力于为开发团队、应用安全团队、应用运维团队打造一条简化的端到端开发运维体验的路径,以提升软件开发效率、加固应用安全、简化应用运维复杂度。可见TAP产品的涵盖面很广泛:包括基于Kubernetes的Cloud Native Runtimes运行时;应用Source to URL的软件供应链;面向应用开发者的开发插件,工具和应用仪表盘App Live View;API Portal以及应用服务目录和服务绑定等。如何让应用开发和应用运维人员快速了解和掌握整套平台体系以及动手实验?成为了开发和运维团队领导者们关注的焦点之一。

TAP 系列文章8 | TAP 学习中心——通过动手教程来学习_第1张图片

有没有通用的学习框架和平台,帮助团队更直观的掌握PaaS平台相关内容?如何更高效、更方便的对TAP和K8S,容器平台的用户进行培训?作为产品功能的使用者和推广者,如何将相关知识,更直观的hands-on环境传授给其他用户?等等。那么,TAP Learning Center目标就是设计并解决这类问题。

传统PaaS类平台软件复杂的上手和学习过程

  1. 搭建和协调底层IaaS环境;搭建和协调K8S集群环境;

  2. 安装相关的PaaS和组件;

  3. 配置和分配学习环境资源;

  4. 创建和配置演示用专有的环境,并保存模版;

  5. 用模版创建多套类似实验环境,分配给用户实验和演示使用,并维护多套环境的生命周期;

  6. 管理员自己定期检查确认上述环境是否在使用,根据情况销毁实验环境和回收资源;

  7. 当随机发生新的培训、自己学习和实验、workshop、参展和演示等请求时 ,申请并重复上述所有步骤;

  8. 很可能时间紧、来不及而造成延期,或者需要连续加班来填坑;

  9. 甚至大多数情况是没有实际的动手学习

  10. … 

问题和场景

PaaS类产品的安装配置,构建和使用相对复杂难度较高。使用者初期经常会遇到下述类似问题(包括但不限于):

  • 合作伙伴不同团队,每次希望演示和讲解TAP,Tanzu K8S,TBS等产品时,都需提前耗费很多时间搭建临时环境,重复工作量加大。

  • 客户开发、测试、运维团队成员,不同团队的不同个人希望有自己独立的K8S或TBS,TAP的自我动手操作和学习环境;每个用户使用的环境需要各自独立,避免影响。但很难得到这样的支持。

  • 对于前述相互隔离的环境,最好可以由Learning Center和Workshop管理员进行控制管理,比如限制同时创建的独立学习空间环境个数,以限制Learning Center占有的集群资源总量,保障服务质量。

  • 在展商产品宣讲会和演示活动中, 参会用户希望通过简单动手操作,直观理解Tanzu 产品特性。

  • 学习中心内的学习单元-也称为workshop,可以根据用户独立创建、运行和销毁。Workshop环境完成后可以销毁以释放Pod等各类资源,但不需要销毁后台运行的K8S集群。需要自助式服务创建、运行和回收管理实验环境。

  • … …

所以我们需要一种更为便捷,高效的构建和管理Learning Center的方法来解决以上的各种问题。

TAP 学习中心技术原理

核心概念:

  • Training Portal—由管理员在集群中创建,触发培训门户的部署。Training Portal提供了一个基于web的界面,用于注册和访问Workshop。它还提供了一个REST API来请求对workshop的访问。

  • Workshop—提供workshop的定义。由管理员预加载到集群中,它是workshop内容托管的位置,以及将workshop所需的内容和其他工具打包在一起的容器映像。

  • Workshop Environment—由Training Portal触发为Workshop创建一个Workshop Environment。系统将为Workshop设置一个NameSpace,其中运行Workshop Session和部署共享资源。

  • Workshop Session—由Training Portal触发针对Workshop Environment的workshop实例。Operator设置特定于workshop session的名称空间,并预先创建相应额外资源。也可以在需要时分发,或者根据需要创建资源。

Learning Center平台架构

学习中心依靠K8S Operator完成工作。Operator通过使用一组特定于学习中心的Custom Resources来控制。 如图所示,

TAP 系列文章8 | TAP 学习中心——通过动手教程来学习_第2张图片

  • 创建一个培训门户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

TAP 系列文章8 | TAP 学习中心——通过动手教程来学习_第3张图片

2.通过Training Center链接打开Learning Center Workshop界面

TAP 系列文章8 | TAP 学习中心——通过动手教程来学习_第4张图片

 点击相应的workshop之后,可以看到新的workshop session资源自动创建并正常运行。

TAP 系列文章8 | TAP 学习中心——通过动手教程来学习_第5张图片

TAP 系列文章8 | TAP 学习中心——通过动手教程来学习_第6张图片

 :当多次点击创建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。

TAP 系列文章8 | TAP 学习中心——通过动手教程来学习_第7张图片TAP 系列文章8 | TAP 学习中心——通过动手教程来学习_第8张图片

 以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页面。

TAP 系列文章8 | TAP 学习中心——通过动手教程来学习_第9张图片

b)左侧顺序点击MarkDown的向导链接link,Learning Center会帮助您展示K8S resource,并自动打开Application Accelerator页面,引导自动生成不同类型的应用程序代码框架。

TAP 系列文章8 | TAP 学习中心——通过动手教程来学习_第10张图片

 TAP 系列文章8 | TAP 学习中心——通过动手教程来学习_第11张图片

 c) 通过Accelerator下载代码框架后,通过IDE Tools进行代码查看和编辑。

TAP 系列文章8 | TAP 学习中心——通过动手教程来学习_第12张图片

 d)右侧嵌入式IDE编辑界面中,包含完整IDE编辑器,并自动打开刚刚通过Accelerator创建的代码框架。

TAP 系列文章8 | TAP 学习中心——通过动手教程来学习_第13张图片

 e)点击左侧说明向导中

Editor: Open file “spring-sensors/Tiltfile”
Editor: Execute command “tanzu.liveUpdateStart”

在右侧IDE Editor中看到,自动执行liveUpdate模式。 任何代码更新会自动进行重新编译、打包和部署的过程。

TAP 系列文章8 | TAP 学习中心——通过动手教程来学习_第14张图片

f)下一步,更新代码并submitting the build, git提交代码,并查看supply chain。 

TAP 系列文章8 | TAP 学习中心——通过动手教程来学习_第15张图片

 TAP 系列文章8 | TAP 学习中心——通过动手教程来学习_第16张图片

g)如图点击指导说明中的「App URL」,则自动打开浏览器展示TAP的应用界面和应用Supply Chain视图。您可以点击「结束workshop」终止并回收资源。 

TAP 系列文章8 | TAP 学习中心——通过动手教程来学习_第17张图片

 TAP 系列文章8 | TAP 学习中心——通过动手教程来学习_第18张图片

TAP学习中心总结

TAP学习中心帮助用户快速学习和掌握TAP,K8S,CNR,TBS等技术、产品和组件。提供一个通用的学习框架和平台,帮助团队更直观的掌握PaaS平台相关内容。大幅提升开发和运维人员掌握平台的效率。为演示和展台、活动等,提供灵活的产品和技术演示环境,自助式创建和管理资源。同时,TAP学习中心本身支持扩展和自定义Workshop内容和模块并支持扩展能力。请持续关注TAP并与TAP产品和服务团队联系使用TAP和学习中心。

作者简介

TAP 系列文章8 | TAP 学习中心——通过动手教程来学习_第19张图片

VMware资深云原生应用架构师,多年软件开发设计和产品管理工作。在VMware/Pivotal之前曾就职于IBM中国实验室、Oracle、Ericsson等IT企业,从事企业级平台和云计算相关软件的系统架构、产品管理和研发等工作。具有丰富的电信和银行、交通等行业经验。拥有Spring Core professional, Kubernetes CKA, AWS Solution Architect, Cloud Foundry和软件架构师认证,目前主要专注企业级PaaS,容器云平台产品及云原生微服务应用架构设计。

来源|公众号:VMwareTanzu云原生

你可能感兴趣的:(TAP系列文章,学习,运维,kubernetes)