【51CTO.com快译】人们需要了解DevOps和低代码方法面临的挑战和具有的优势,并着眼于为企业提供更有效的解决方案。
在当今数字优先的世界中,企业对熟练的开发人员和IT专业人员的需求越来越高。根据Korn Ferry公司最近进行的一项调查,到2030年,由于缺乏熟练劳动力,全球可能会有超过8500万个工作岗位空缺。
有人提出了一个有趣的问题:低代码技术可以用来代替IT技术人才吗?如果可以代替人工编程,那为什么不使用基于GUI的平台来消除学习代码的必要呢?
从历史上看,“低代码解决方案”主要用于描述技术平台,这些技术平台使非技术用途能够在不知道如何编码的情况下创建新的应用程序。通过这种方式,低代码比DevOps相比更加接近敏捷理论的核心。低代码致力于通过应用程序加速交付业务价值,而DevOps的重点是应用程序构建之后的交付和维护。
如果非IT人员使用低代码应用程序开发平台,那么IT专业人员如何在DevOps中使用低代码解决方案?
对于许多核心的DevOps实践者来说,低代码的概念是DevOps的一种反模式。DevOps可能始于开发和运营团队合作方式的一种文化演变,但如今它已经演变成自动化管道和集成工具链的世界。
代码作为一种通用语言,使DevOps团队能够使用相同的工具和实践来交付和维护大量的应用程序和技术。DevOps团队使用代码,为负责交付和维护基础设施和应用程序的运营团队带来了与构建应用程序的开发团队相同的敏捷性水平。
要了解DevOps团队如何使用低代码解决方案,需要扩展思维,了解如何将低代码的原则应用于“基于代码”的解决方案,使其更易于学习、使用和维护。通过这样做,可以提出三种类型的低代码解决方案:
(1)低代码应用开发平台
(2)机器人流程自动化(RPA)平台
(3)低代码开发语言
以下了解当今DevOps中最流行的三种不同类型的低代码解决方案,以及每种解决方案的优缺点。
1.低代码应用程序开发平台
低代码应用程序开发平台如今已成为涵盖了全面行业分析师的标准技术集。Gartner公司为企业低代码应用程序平台发布了Gartner魔力象限,并预测2021年的增长率为23%。当今市场上采用最多的低代码平台之一可能是Salesforce Lightning Platform Mobile。
低代码应用程序开发平台不仅有助于解决开发人员的技能差距,而且使业务专家能够设计和构建满足其确切需求的系统,同时绕过使用IT定义需求并确定项目优先级的繁琐过程。一篇为“Salesforce移动应用程序开发的未来”博客文章引用了一个与Salesforce平台相关的示例,例如荷兰连锁超市集团Jumbo公司采用Salesforce平台,能够在8周的时间内构建内部协作和任务管理系统、客户营养应用程序和当天送货订单系统。
(1)优点
该领域解决方案的主要优点与易用性有关。非开发人员只需点击键盘和鼠标,就可以创建简单的应用程序、配置用户界面(UI)并部署到应用商店。低代码工具不需要或只需要更少的培训,可以使企业的业务更加敏捷,并对不断变化的市场动态做出更快的反应,从而提高竞争力。
(2)缺点
低代码应用程序开发平台通常采用瀑布式开发模式。一旦应用程序被创建以满足特定需求并交付,就没有了继续开发或增强的计划。其定制能力、灵活性和集成选项是有限的,并且也可能出现安全问题。
通常情况下,复杂的应用程序或具有高度安全问题的应用程序并不是很好的选择。如果不在企业级别进行管理,应用程序的长期所有权也可能是一个问题,并导致“应用程序蔓延”。
2.机器人流程自动化(RPA)平台
机器人流程自动化(RPA)程序通过使用记录器创建软件脚本,使企业能够使用重复的任务实现自动化。对于那些在Microsoft Excel中使用宏记录器的人员来说,这是一个类似的概念。
创建脚本之后,用户可以使用可视化编辑器修改、重新排序和编辑其步骤。UiPath公司在2021年4月21日首次公开募股(IPO),标志着这些解决方案的日益普及,最终成为历史上规模最大的软件IOP事件之一。
RPA程序的用例是无限的——任何通过用户界面(UI)完成的重复任务都是候选任务。在RPA领域中,人们已经看到业务用户设计的应用程序(UiPath和Blue Prism)与更传统的DevOps工具(特别是在测试自动化领域,例如Tricentis、Worksoft和Egglplant)以及新的基于对话的解决方案(如Krista)的交叉点。
在测试实现自动化的情况下,向用户提供轻量级记录器,他们可以记录业务流程。然后将记录反馈给自动化团队,自动化团队创建一个强化的测试用例,然后将其输入持续集成(CI)/持续交付(CD)系统。这消除了获取准确文档以构建测试用例的挑战,并使LOB订单能够确保将其最关键的业务流程作为任何变更的一部分进行测试。
像Krista这样的解决方案将在DevOps工具链中使用。人们需要考虑一个非常熟悉的问题,“将在哪里发布?”而使用Krista,可以向系统发送问题,Krista将通过结构化对话检索信息,以找出发布的位置并回复。
(1)优点
使用户只需记录他们的日常活动即可快速轻松地创建自动化。重复的任务可以轻松地实现自动化,并且可以消除相关的用户错误。RPA也非常适用于“一次性”项目,而在这些项目中,投资开发人员和资源没有意义。
(2)缺点
RPA构建的工作流程可以作为可能无法扩展的长期系统更改和更新的补充。此外,自动化长期维护的所有权可能会随着安全性和合规性要求而变得不明确。
3.低代码开发语言:编码命令
基于低代码开发语言的工具包括许多著名的DevOps工具,其中包括Ansible、Chef、Hashi、Puppet、Jenkins等。低代码开发语言符合这样一种基本信念,即“编码方法”并不意味着每个人都必须成为编码人员。
正如基于GUI的解决方案带有用于执行各种命令的“用户友好”按钮一样,这一类别中基于代码的解决方案带有预构建的命令、帮助程序和资源。
例如,Chef语言包括一组强大的技术无关命令,为配置、测试和验证系统提供强大的自动化功能。无论使用何种技术,其命令都保持不变。而使用这些命令,用户只需很少的代码知识就可以在大量设备上执行复杂的功能。
除了使用人类可读的语言、易于编辑的预填充自动化模板,以及与其他DevOps工具的一组强大的预构建集成之外,该领域的提供商还开始提供可视化仪表板和用户界面(UI)驱动的更多功能,以实现功能的监控部署并确保系统安全。Chef Infra Client 17就是一个很好的例子,其中向Chef Automate添加了新的基础设施管理仪表板和用户界面(UI)驱动的功能。
这种混合方法通过为用户提供易于学习的基于代码的平台,可以轻松与持续集成(CI)/持续交付(CD)系统集成,并为非技术用户和管理人员提供整个组织的可见性和分析,从而实现两全其美。
(1)优点
低代码开发语言提供更大的灵活性和可扩展性。由于它们基于Ruby、Python或Yaml等底层语言,因此可以轻松扩展和定制它们以处理最复杂的自动化场景。这些工具也是大型成熟生态系统的一部分,通常由社区驱动,因此有1,000多个预构建的内容模板和集成插件,可以轻松构建自动化并集成到持续集成(CI)/持续交付(CD)管道中。
(2)缺点
低代码开发语言仍然基于脚本,需要使用者对开发实践有基本的了解。其工具需要升级和维护,即使是自动化的工具也是如此。由于它们专为解决IT管理特定挑战而构建,因此它们不太适合非IT技术用户。
超自动化将成为低代码DevOps平台的下一个重要驱动力
由于受到新冠疫情的影响,企业对于提高数字运营效率的需求越来越强烈,他们需要在任何地方为客户和员工提供支持和服务。
满足数字优先世界日益增长的需求的唯一途径是实现自动化,这种自动化不仅需要易于创建,而且易于维护和扩展。DevOps领域的自动化提供商将继续向低代码解决方案迈进,使企业能够实现超自动化。也就是说,尽可能地将所有事情实现自动化。
原文DevOps, Low-Code and RPA: Pros and Cons,作者:Heather Peyton
【51CTO译稿,合作站点转载请注明原文译者和出处为51CTO.com】