“ 低代码开发模式绝不是一个页面设计工具,而是一种“所见即运行”的应用开发交付新模式。Who Design,Who Build,Who Run!”
这几年运维能力平台化发展得特别快,基本上摆脱了过去的脚本时代和手工作业时代,大部分的工作都是依赖运维平台进行。无论是自建还是共建,都能看到运维能力平台化,逐渐成为主流。但我们不得不正视几个现实:IT变化特别快,业务所依赖的新技术不断涌现,由此运维平台的演进也要快速跟上,如监控领域的工具变化;运维平台的碎片化已经成为传统企业的痛点之一,能否提供技术解决方案实现能力的快速整合,挑战和必要性相伴相随;历史遗留平台不能直接废弃,如何把它们的能力糅合到整体体系中。
本文是作者过去十几年来运维工作经历(包括五年多的创业),糅合对运维的业务理解,以及运维开发的手段,提出了一个新的解决方案:低代码开发模式。低代码的更大价值,是需要和垂直平台进行结合,这一点和大数据平台的作用类似。来,一起看看什么是运维低代码开发模式!
01
运维开发的困境
从开发语言的角度来说,运维开发OpsDev也经历过几个阶段:
我们可以看到运维要掌握的语言越来越多,包括前端的Vue、React等框架,对于一个运维开发没有太多积累的团队来说,是个巨大的挑战。
今天大家非常强调平台的开放性,Restful API越来越多,OpenAPI成为开放标准(我们平台有上千个)。但我们不得不问,如何把这些API的能力转换成前端onsole能力?这依然还有不小的距离要走。回到前端开发,我想这更是运维的短板,虽然有一些前端模板提供,但是复杂的交互设计逻辑还是让运维望而却步。
还有很多细节层面上的问题,比如说前后端开发的沟通协作、API文档更新不及时、一个功能交付参与的IT角色非常的多(产品/交互/前端/后端/测试)、测试验证等等,毕竟复杂系统最后都要面临一个挑战——它本质上是个技术工程问题。
为了有效解决以上遇到的挑战,能否把门槛降低到人人都可以成为运维开发者?低代码!低代码!低代码!。
02
何为低代码
关于低代码,Wiki上给出的定义:A low-code development platform (LCDP) is software that provides a development environment used to create application software through graphical user interfaces and configuration instead of traditional hand-coded computer programming,A low-code model enables developers of varied experience levels to create applications。
但我觉得这份表述不好,没有道出低代码开发模式的本质,它依然围绕的是开发者,其实不然,来看下一段?
Low-code is a visual development approach to application development. Low-code enables developers of varied experience levels to create applications for web and mobile, using drag-and-drop components and model driven logic through a graphic user interface. Low-code platforms relieve non-technical developers from having to write code while still supporting professional developers by abstracting tedious plumbing and infrastructure tasks required in application development. Working together, developers in the business and IT create, iterate, and release applications in a fraction of the time it takes with traditional methods. This low-code application development enables production of a full range of app types for disparate use cases. These app types range from upgrading legacy applications to IoT-enabled smart apps.
低代码是用可视化开发方法来开发应用程序。低代码使不同经验水平的开发人员能够通过图形用户界面使用拖放构件和模型驱动逻辑为 Web 和移动创建应用程序。低代码平台通过抽象应用程序开发中所需的繁琐管道和基础架构性任务,使非技术开发人员不必编写代码,同时仍支持专业开发人员。业务和 IT 开发者协同工作,相对于传统方法,只是它时间的一小部分,就能创建、迭代和发布应用程序。低代码应用程序开发支持各种应用类型开发,包括升级旧版应用程序到新型 IoT 的智能应用。
那它和过去RAD(Rapid Application Develop,快速应用开发)有什么不同呢?
我们都知道在C/S时代,RAD的模式大行其道,Delphi、C++Builder等等,完全是可视化编程。可视化编程平台都提供了大量的控件,可以快速复用,可以说,它们是C/S时代C端的主要编程工具。后来随着互联网应用B/S架构的兴起,这些开发工具都退出了历史舞台,逐步由网页端开发工具(早期网页制作三剑客)。到后来出现的各种前端开发框架、JS/CSS等框架所替代,此时几乎看不到任何可视化编程的影子。但最近几年低代码又重新兴起。其实核心原因还是很多应用逐步切换到B/S模式下,特别是管理软件,个性化需求特别多,需要有更高效的解决方案。总结来说,核心的差别,其实就是不同应用架构下的开发模式。
据说微软公司内部有10万员工每天在使用低代码平台Power Platform,有超过8万个员工在使用Power Apps写基本的APP应用。Power Platform面向所有用户提供服务,无论是企业用户还是员工本人都能快速上手。
03
低代码平台的核心技术栈
低代码开发模式绝不是一个页面设计工具,而是一种“所见即运行”的应用开发交付新模式。为了实现这一目标,运维的低代码平台是如何保证的?从技术角度来说,一个完整的低代码开发模式包含四个核心能力模块:
作为一个数据提供者,从后端获取数据的模式就是API调用,但我们知道API经常变化,如何来协调前后端调用行为一致?此时必须借助一个API契约网关来完成:
利用这些构件,我们就可以做页面可视化编排了,路由、构件编排,最终生成一个应用,直接Build 发布,下图是一个完整应用的访问关系。
构件化开发的核心是设计、构建、运行等可视化!决不能变成简单的界面设计器。
04
低代码如何与垂直中台结合
在前面的一篇文章中介绍了【运维遇上中台,送分或送命?而我理解的运维中台是这样】,运维中台是把一个公司所需要的运维平台体现建设起来,但业务部门需求千变万化,个性化与快速交付只能由低代码来保证。运维平台Platform(中台)+Plugin(构件化平台)整体架构如下:
这个机制带来很多好处,比如中台能力保持稳定,不被个性化需求冲击;中台可以快速延伸,只要确保API开放就好;低代码开发能够弹性适应用户各类需求,以【微应用】的形式对外体现。
05
低代码模式带来的变化
低代码开发模式绝不是一个页面设计工具,而是一种“所见即运行”的应用开发交付新模式(第二遍)。模式变化了之后,有几个变化是自然而然的:
经过我们实际生产验证,一个微应用的开发,如果走传统模式估计要15天,而采用低代码开发模式则只需要3天左右的时间。需求响应从2-3天左右,缩短到3个小时以内。关键是一个交付工程师独立完成,而不是之前要依赖一个多角色完整的团队!
06
低代码真的是未来么?
低代码开发模式绝不是一个页面设计工具,而是一种“所见即运行”的应用开发交付新模式(第三遍)。“天下武功,唯快不破”!如若把产品放到更长的时间维度去看,需求错误是不可避免,而更重要的是如何错了快速调整。在DevOps里面有个重要的探讨课题——需求一致性,需求一致性就是不断快速迭代方能一致。甚至说需求在VUCA时代,变化和调整成为必然,前端变,后端IT变化如何快速跟上?今天的管理软件或者类解决方案软件,低代码开发模式才能在质量和效率、成本三者之间取得平衡。
低代码超出了语言、超出了工具,可以成为运维开发的新选择!实现每个运维人员的快速转型。