Application Transformer for Taznu 可帮助组织发现应用程序类型、可视化应用程序拓扑、根据分数选择现代化方法以及容器化和迁移旧应用程序以满足业务需求。
Gartner在2010年就发布了“5R”模型,定义了将应用程序迁移到云上的所有可用选项。成为实现应用程序现代化框架指导。
Rehost(重新托管)是将系统/应用从本地迁移到云环境而不进行修改的方法。这是一种传统的搬家式(lift-and-shift)迁移方法。例如,应用程序原本在本地的VM(虚拟机)中运行,现在你需要将它重新部署到云服务环境中运行的VM上。如果企业希望快速上云或者有大型应用需要上云,直接迁移是最为合适和有效的一种迁移方法。
Refactor(重构:体系结构更改)是将非云应用转换为云上应用的方法。要求对应用进行彻底变革(重新设计),使其适应云环境。也就是将应用的架构和开发模式重建,实现云原生的应用服务。当现有的应用环境难以满足日后的使用,或性能和规模无法满足日后的需求,将采用“重新构建”这种迁移模式。“重新构建”相对其他几种方法,成本最高,但是从长远来看,更加满足未来的业务和系统的需求
Replatform(平台更改,包含少量修改的迁移)是按照系统的原有设计迁移,同时进行少量的版本更新,即在不改变应用核心架构的前提下,将数据和系统迁移上云时,对应用程序做一些简单的云优化,这种方法称为“修补后迁移”。大多数企业都会用这种方法来降低管理成本,并提高效率。
Retire(销毁)是在项目迁移上云过程中,可能会存在一些冗余的应用(多余的或非重要应用),可以将其关闭或不做迁移,以节省成本,也就是将必要的数据归档后,停用当前的基础设施。
Retain(维持现状)属于当本地业务系统进行过大额投资、系统处于活跃阶段、版本迭代快或是需要强大硬件支撑的系统(相比云上提供的资源,可能无法满足,也可能投入高于本地化部署),再者现有系统运行良好,企业数据不适合对外的系统。
随着容器与Kubernets 技术发展,5R 被赋予了新的内涵,Replatform模型加入传统应用的容器化场景。容器化是指将软件代码和所需的所有组件(例如库、框架和其他依赖项)打包在一起,让它们隔离在自己的"容器"中。这样,容器内的软件或应用就可以在任何环境和任何基础架构上一致地移动和运行,不受该环境或基础架构的操作系统影响。容器就像是一个气泡(或者是应用周围的计算环境),把应用和周围环境隔离开来。它相当于是一个功能全面、便于移植的计算环境。
根据调查企业应用现代化策略目前60%-%70在Rehost和Replatform两种模型。
如何实现传统应用(遗留程序)的容器化改造以及如何开发云原生应用。VMware Tanzu系列解决方案能够满足5R模型,帮助实现应用程序现代化。针对5R模型的不同场景,在遗留应用的改造以及现代化应用的开发领域都有对应的放方法论、产品和服务。
| 场景 | 5R 模型 | VMware 方案 |
|---|---|---|
| 迁移到容器成本高昂的应用 | Retain | 保持现状 |
| 整体上云,应用不做修改 | Rehost | VMC;ACVS;HCX |
| 开发/更新已停止应用 | Replatform | Application Transformer |
| 开发/更新要要继续的应用 | Refactor | Tanzu Build Service; Tanzu Application Platform |
| 频繁的开发/更新的应用 | Tanzu Labs ; Tanzu Application Platform |
Application Transformer for Tanzu介绍
Application Transformer 是一款应用程序现代化工具,将遗留(旧版单体)应用程序迁移到新的云原生平台。可帮助组织发现应用程序类型、可视化应用程序拓扑、根据打分选择现代化方法以及容器化和迁移合适的遗留应用程序以增强业务成果。
Application Transformer 将使用客户机操作来扫描 vCenter 以查找工作负载或虚拟机(及在其上运行的应用程序),并标识相应组件。Application Transformer for VMware Tanzu 支持向 vRealize Network Insight 注册以提取数据流,并设计分布在多个环境中的应用程序的拓扑。当前版本的 Application Transformer 支持从 vRealize Network Insight 和 vRealize Network Insight Cloud 收集流数据。
Application Transformer 支持对 Oracle WebLogic 服务器、Tomcat 上运行的应用程序以及对任何组件进行容器化,并将容器化的 OCI 映像推送到映像注册表。
Application Transformer for Tanzu 工作流程
发现:Application Transformer 扫描虚拟机,收集文件夹结构、资源池、应用程序名称和进程等信息。借助 vRealize Network Insight 集成,可以通过 vRealize Network Insight 流获得更多信息,例如虚拟机连接和应用程序依赖关系。Application Transformer 创建应用拓扑,使客户能够全面了解其应用环境。
分析与建议:基于有关应用程序组件和业务价值的详细信息的技术评分使客户能够就现代化优先级做出明智的决策。
容器化(转换):Application Transformer 为 Oracle WebLogic 和 Apache Tomcat 等应用程序创建符合 OCI 的容器映像。其他应用程序可以通过通用简单的步骤进行容器化。YAML 文件等 Kubernetes工件允许客户在 VMware Tanzu Kubernetes 或者其他kubernets集群中部署容器映像。

与遗留应用手工模式容器化步骤相比,Application Transformer具有路径短,自动化,标准化可视化的优势
下面将对Application Transformer for VMware Tanzu 进行测试,展现应用程序发现、分析、转换的全过程。
Application Transformer for Tanzu 测试
测试环境拓扑
| 角色 | 版本 | 备注 |
|---|---|---|
| vCenter | 7.0.3 | |
| TKGm | 1.6.0 | |
| vRealize Network Insight | 6.5.1 | 可选 |
| Application Transformer | 2.0 | |
| Harbor | 2.0 | |
| tomcat ubuntu | tomcat 9.0.65;ubuntu 18.4 |
测试内容

测试步骤
1
Application Transformer for Tanzu 部署
在DNS 服务器设置解析
从customerconnect.vmware.com 下载 application-transformer-2.0.0.1584-20091861.ova
从vcenter导入安装ova文件
设置密码,NTP

设置ssh 客访问,本次测试采用外部harbor,不需要安装,设置IP,网关、域名,完成导入
打开vm,web方式访问
2
Application Transformer for Tanzu 配置
管理凭据
1.进去发现菜单,设置凭据
2.增加vc 、harbor 、vrni的登陆凭据
vc
harbor
vRNI
增加linux root账号凭据
与vcenter集成
发现菜单,清单,vcenter,添加vcenter
输入vCenter IP ,上个章节创建的凭据,别名,不选自动扫描vCenter
接受不可信证书,添加成功,可以浏览vCenter 清单
与vRNI集成
vRealize Network Insight (简称vRNI)是一种网络监控工具,可帮助您跨各种云环境(包括NSX、VMware SD-WAN、vSphere、Kubernetes、AWS、Azure 和VMware Cloud 部署)构建经优化的、高度可用的安全网络基础架构。
详细vRNI 可以参考
https://docs.vmware.com/cn/VMware-vRealize-Network-Insight/index.html
Application Transformer 可以将来自 Application Transformer 发现程序的组件元数据与来自vRNI的网络流相关联,从而自动生成应用程序及其拓扑图。
与vRNI集成是一个可选操作。前提条件:1)确保已将 vCenter Server 添加为 vRealize Network Insight 中的数据 2)选择工作负载虚拟机连接到的所有 VDS。3)确保在 vCenter Server 上启用 NetFlow (IPFIX)
备注:在中文浏览器登陆Application Transformer添加vRNI 会报错导致无法成功添加,需要使用英文浏览器
发现菜单-设置-vRNI,添加vRNI
输入vRNI IP ,别名,凭据,关联之前加入的vCenter ,接受非信任证书
集成成功,如下显示
与harbor集成
安装过程中,没有选择内部安装harbor,需要与外部harbor进行集成
转换菜单-设置-映像注册标,添加注册表
输入harbor 名称,地址和凭据
harbor 集成成功
备注:可以集成多个harbor
与第三方工件集成
必须添加第三方工件(如 Oracle WebLogic 服务器或 Tomcat 安装程序、JDK 或 JRE),才能执 行容器化操作。
下载tomcat ,jdk等第三方工件
转换菜单-设置-第三方工件-上载第三方工件
本次测试上载tomcat 和jdk
4. 上载成功
启用CSA策略
VMware Cloud Suitability Analyzer会扫描程序源代码并生成技术分数(介于 1 到 10 之间),以快速确定每个应用程序的云就绪情况。
详细了解可以访问:https://tanzu.vmware.com/content/blog/cloud-suitability-analyzer-scan-score-apps-cloud-readiness
Application Transformer 具有与 Cloud Suitability Analyzer (CSA) 工具的内置集 成。必须启用该功能才能在应用程序中运行二进制分析。
目前,Application Transformer 支持对下列四种类型的组件进行二进制分析: Tomcat、JAVA、JBoss 和 Oracle WebLogic 服务器。
发现菜单-设置-策略-已启用CSA的组件
启用Java Tomcat 等CSA策略
3
Application Transformer扫描与侦测
Application Transformer 扫描虚拟机,收集文件夹结构、资源池、应用程序名称和进程等信息。借助 vRealize Network Insight 集成,可以通过 vRealize Network Insight 流获得更多信息,例如虚拟机连接和应用程序依赖关系。Application Transformer 创建应用拓扑,使客户能够全面了解其应用环境。
发现菜单-vCenter-选择需要扫描的清单,进行扫描
选择仅扫描,在发现菜单-活动-任务可以看到扫描结果
发现菜单-清单-虚拟机,选择需要侦测的虚拟机,更改凭据,使用之前创建的linux root凭据
对选择的虚拟机进行侦测
5. 发现菜单-活动-任务可以查询侦测结果,如果失败,可以重复发起侦测
查看发现的组件
4
Application Transformer发现拓扑
Application Transformer 可以将来自 Application Transformer 发现程序的组件元数据与来自vRNI的网络流相关联,从而自动生成应用程序及其拓扑图。
利用拓扑发现操作,可自动将已发现的组件分组到应用程序中,并使用来自 vRealize Network Insight 的网络流量数据在组件之间创建流量。
前提条件:确保选定的虚拟机扫描侦测,以及Application Transformer与vRNI集成完成
发现菜单-清单-vCenter 选中需要的pool,点击发现拓扑
查看发现拓扑任务是否成功,点击发现拓扑任务,查看详细
发现拓扑成功之后,将自动生成的应用程序
备注:由于应用名字是自动生成,可以删除,本次测试通过手动定义应用
5
Application Transformer定义应用
通过扫描 vCenter Server 以发现所有可用的虚拟机,或数据中心、文件夹、集群、资源池等清单中的虚拟 机。可以对已发现的虚拟机运行侦测进程以确定正在运行的组件。
可以定义应用程序并向其添加组件,作为分析和转换的基本单位
发现菜单-清单-组件,选择组件,确定是需要容器化的应用,本次测试选择tomcat ubutnu
点击组件查看组件详细,例如tomcat_ubuntu组件
发现菜单-应用程序-定义新的应用,本次测试tomcat on ubutnu
输入应用名字、关联的组件,标记选择转换平台(可以容器化转换)
目前,Application Transformer for VMware Tanzu 支持下列五个标记(对应5R):
RETIRE:可能不需要进一步监控的已过期应用程序或虚拟机。
RETAIN:很重要且不应从设置中移除的已过期应用程序。
REHOST:不应修改的应用程序,只需按原样移至云环境即可。
REPLATFORM:不应修改、但可以容器化的应用程序。
REFACTOR:需修改以进行革新的应用程序。
分析应用程序和执行转换(容器化),必须分配 REPLATFORM标记,如果不分配这些标记,则无法在分析菜单下看到该应用程序。
查看应用详细信息
查看应用拓扑 ,本次测试时单体应用,如果是多层应用,拓扑会更加清晰
6
Tomcat 应用容器化测试
进行容器化之前,访问tomcat ubuntu 在虚拟机上的应用,确定应用可以访问
由于定义新应用选择了REPLATFORM(转换平台)的应用,所以可以进入分析阶段。分析菜单-应用程序-tomcat-ubuntu,执行分析
发起分析任务,点击日志,可以查看分析任务是否成功,查看详细任务
分析成功之后,提升至转换高亮显示,点击可以进入转换阶段
点击转换菜单-应用程序,展开tomcat-ubuntu应用,点击容器化
目前Application Transformer 为 Oracle WebLogic 和 Apache Tomcat 等应用程序提供专用流程,创建符合 OCI 的容器映像。其他应用需要通过通用模式。选择之前创建相应的第三方工件和OS基础镜像。点击继续。
可以查看到扫描和侦测发现的web应用程序war包,可以更新tomcat 配置
查看生成的docker file文件
确定目标harbor 以及符合OCI标准的镜像标记,开始容器化
发现菜单-任务,查看容器化任务。构建镜像和推送镜像,可以点击查看详细信息
容器化成功之后,在应用程序,可以查看镜像和工件文件(artifact)位置
登陆harbor 查看镜像和 工件(artifact)
点击工件(artifact),可以下载工件文件
解压查看工件文件
打开Deployment 文件,根据环境修改 --FIX ME---为真实值
登陆到tkg集群(可以是其他k8s集群),部署应用,并暴露服务
1)创建ns
kubectl create ns tomcatubuntu
namespace/tomcatubuntu created
[w01-admin@w01|at] [root@tanzu-cli ~]# kubie ns tomcatubuntu
2)修改deployment 文件
apiVersion: apps/v1
kind: Deployment
metadata:
name: tomcatubuntu
labels:
app: tomcatubuntu
spec:
replicas: 1
selector:
matchLabels:
app: tomcatubuntu
template:
metadata:
labels:
app: tomcatubuntu
spec:
containers:
- name: tomcatubuntu
image: harbor.huaruicloud.cn/tkg/tomcatubuntu-0909
ports:
- containerPort: 8080
env:
- name: JAVA_OPTS
value: "-Djava.security.egd=file:///dev/urandom -Djava.awt.headless=true -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Dorg.apache.catalina.security.SecurityListener.UMASK=0027"
3)部署tomcat应用
# kubectl apply -f tomcatubuntu.yaml
deployment.apps/tomcatubuntu created
# kubectl get all -n tomcatubuntu
NAME READY STATUS RESTARTS AGE
pod/tomcatubuntu-5777dc4697-r8j9d 1/1 Running 0 21s
NAME READY UP-TO-DATE AVAILABLE AGE
deployment.apps/tomcatubuntu 1/1 1 1 21s
NAME DESIRED CURRENT READY AGE
replicaset.apps/tomcatubuntu-5777dc4697 1 1 1 21s
4)使用LoadBalancer类型,创建服务
# kubectl expose deployment.apps/tomcatubuntu --name=tomcatubuntusvc --protocol=TCP --port=80 --target-port=8080 --type=LoadBalancer
service/tomcatubuntusvc exposed
# kubectl get all -n tomcatubuntu
NAME READY STATUS RESTARTS AGE
pod/tomcatubuntu-5777dc4697-r8j9d 1/1 Running 0 2m11s
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/tomcatubuntusvc LoadBalancer 100.70.156.128 10.105.148.123 80:31735/TCP 13s
NAME READY UP-TO-DATE AVAILABLE AGE
deployment.apps/tomcatubuntu 1/1 1 1 2m11s
NAME DESIRED CURRENT READY AGE
replicaset.apps/tomcatubuntu-5777dc4697 1 1 1 2m11s
访问容器化部署tomcat应用
通过Application Transformer自动化发现、分析和容器化过程来简化和加速应用程序转换之旅的工具。可以帮助企业应用容器化,实现以下目标
通过 CLI/API 使用组件和依赖项等信息创建可视化拓扑。
消除了繁琐的手动流程,例如、组件清单和 VM 映射。
允许客户根据分配的分数从 5R模型中选择最佳操作。提高敏捷性和上市速度。
缩短了应用程序现代化过程的时间并减少了工作量。这样做有助于缩短新软件和服务产品的上市时间,并提高开发人员的工作效率。
未完待续,下期分享Application Transformer 虚拟机容器化(V2C)之旅。
要想了解联邦学习、隐私计算、云原生和区块链等技术原理,请立即长按以下二维码,关注本公众号亨利笔记 ( henglibiji ),以免错过更新。

1321

被折叠的 条评论
为什么被折叠?



