技术债务往往是企业中不被察觉的罪魁祸首,使试图现代化的公司陷入困境,因为它们意识到自己的技术栈中竟有如此之多的“遗留”内容。而正如大多数类型的债务一样,通常也需要支付利息。
这正是英国初创公司AppFactor致力于解决的问题。其平台帮助企业自动重构遗留应用程序,使其准备好部署到新的云原生环境中。
AppFactor于2021年中正式注册成立,首席执行官兼创始人Keith Neilson直到今年一月才开始全职投入该项目。最近完成的一轮种子前融资,金额超过100万英镑(130万美元)。
在TechCrunch Disrupt的Startup Battlefield环节登台亮相时,Neilson展示了AppFactor的技术,并阐述了这家初创公司的使命,指出这是一个亟待变革的空间。TechCrunch提前采访了Neilson,以了解在他看来问题的规模有多大,以及AppFactor究竟在采取什么措施来解决这一问题。
可见性
对于外部人士而言,一些技术债务可能通过暴露出的bug或卡顿的系统显而易见,或者体现为公司改进现有产品和引入新功能所花费的时间。
与此同时,内部人员可能通过发现IT预算支出不成比例地偏向维护而非打造全新事物,从而更好地了解自身的技术债务状况。咨询公司麦肯锡的数据表明,技术债务可能占企业总IT预算的高达40%;来自Stripe的另一份报告显示,开发人员平均花费三分之一的工作周来处理现有技术问题,而非编写新代码。
但由于技术债务可能跨越组织内的多个领域和部门,因此要清晰了解一家公司的技术债务程度并非总是容易的事。这种不透明的底层结构可能包括过于复杂、重复或极其糟糕的代码,缺乏自动化测试、安全漏洞以及普遍的设计不良等问题。
“企业面临的最大挑战是,它们在特定时间点构建并架构了企业级应用程序,而业务需求和流程会改变这些应用程序周围的环境,应用程序及其依赖关系也会随着时间的推移而演变。”Neilson说。
因此,正如麦肯锡所指出的那样,技术债务或许最好被视为一种“税”,即公司为所有专注于修复众多遗留技术基础设施的内部开发所支付的代价。这包括新的库和框架,或者随着公司微调其技术栈而产生的集成点和依赖关系变更。最终,它归结为一团复杂的混乱局面,并随时间推移雪球般越滚越大,形成难以管理的烂摊子。
一个典型的遗留企业应用程序示例可能涉及一个较旧的Microsoft SQL数据库、某个中间件层以及一个.NET前端,需要物理和虚拟基础设施的组合才能运行。运行进程、库、依赖项和渗透在整个应用程序及基础设施中的通用组件,在进行向更云原生形式的迁移转换时,仅为了弄清楚各个部分是什么,就需要大量的手动艰苦工作。
而这正是AppFactor致力于提供的服务。它扫描公司的IT环境,以识别所有应用及其各自的依赖关系,“剥离”托管在虚拟和物理环境中的应用与其当前环境的关联,并将每个组件和应用层重建为独立的容器,准备好迎接它们的新家园——无论是像Kubernetes这样的现代云架构,还是托管数据库服务。
“这一切都是由产品[AppFactor]生成和驱动的,因此你可以在几天内而不是几个月或几年内,快速将现有的应用程序资产迁移到最新的云技术上。”Neilson说。
底层机制
AppFactor由三个核心组件构成:部署到服务器以收集数据、从而揭示其应用程序和依赖项的扫描器/分析器;实质上控制着扫描器/分析器行为(包括IP范围和目标系统)的“编排器”;以及顶层的AppFactor SaaS平台,该平台处理所有数据分析、机器学习(ML)流程和服务,生成可视化映射、容器化任务等。
该公司表示已与一些商业客户合作,包括总部位于英国的企业软件公司Civica。迄今为止,其平台的“发现和评估”功能部分已商业化可用。然而,该公司也在准备于11月推出其“应用现代化”模块。这意味着客户不仅能够找到适合现代化的候选对象并提供相关的报告和数据分析,最终还能实施转型本身。
从功能角度来看,该平台更有趣的功能之一是一个工具,它使用户能够通过3D可视化引擎来可视化应用依赖关系,最终可用于可视化整个环境。
Neilson表示:“目前它更多是从基础设施和流程层面进行查看,但显然还有深入挖掘的空间,我们计划在这方面进行扩展。”
有趣的是,AppFactor还将其用于VR头显设备,该公司在TC Disrupt展位上通过Oculus演示了这一功能。
Neilson表示:“前期最具挑战性的活动之一是能够核算、查看和理解依赖关系——无论是跨基础设施、架构还是代码——这有助于降低任何[应用]变更的风险。这种视图旨在以一种细致且强大的方式查看并与我们的应用程序组合及其结构进行交互。其中一些系统极其复杂,通信、库、文件、服务、进程等在多个位置、跨多个环境中大量发生,因此这是一种非常强大的方式,可以直观地理解、验证和确认知识,从而赋能应用程序及其属性的未来演进。”
现状
当前的应用现代化工具主要是手动的,因此资源密集。它可能涉及使用像Docker这样的命令行工具,这需要大量的持续测试,即便如此,由于运行工具的手动性质,可能仍无法涵盖所有的依赖项。而诸如Google的Migrate for Anthos(源于五年前对Velostrata的收购)以及AWS的App2Container则使企业将虚拟机(VM)转换为容器变得相对容易。然而,这些工具仍然非常依赖手动操作和命令行,并不一定提供对依赖关系的广泛可见性,也不支持基于物理基础设施的应用。
市场上还有其他类似的服务,专注于帮助公司从单体软件过渡到微服务,例如获得风险投资的Vfunction。
这些服务的最终目标都是帮助企业减少技术债务并“与时俱进”,尽管它们在实现过程中采用了略有不同的方法。
Neilson表示:“我们认为技术债务有四大支柱——基础设施、架构、代码和依赖关系。”他还说:“我们也认为许多应用程序并不适合微服务架构,因此我们的愿景是让企业应用的特性决定最优的架构模式。”
AI因素
为实现这一目标,AppFactor表示正在开发机器学习分类模型,以帮助生成转换更复杂、“多主机”应用所需的模式。本质上,这是为了创建“指纹识别”技术,以识别复杂或定制应用的构成要素。
Neilson表示:“我们使用经过训练的数据模型来构建这一系统,它利用多种属性和数据点来帮助识别应用模式。”
此外,Neilson表示他们还在试验其他一些AI用例,包括使用大型语言模型(LLM)来生成YAML(一种用于创建配置文件的人类可读数据序列化语言),以便用于Kubernetes部署。
Neilson补充道:“我们在代码生成方面还有一些未来的用例,但我们尚未达到那个阶段。”

