优维于2018年底便在内部正式开始启动打造可完全开放的全功能多领域的DevOps及运维中台能力,其目标不仅仅为了提高内部研发效率,快速响应市场需求,更希望能将EasyOps整个运维体系的理念和能力赋能给优维的客户、合作伙伴、个人开发者等。
那我们到底该如何将全面的中台能力打造为一个个定制化、场景化的微应用呢?
优维EasyOps5.0推出全新的前端框架 Brick Next ,以构件化开发为思路,提供 Low-Code 的页面构件编排能力和标准化全功能域覆盖的构件库,帮助客户分钟级快速插件式开发出满足自己场景的微应用。
什么是Brick Next?
Brick Next是EasyOps的新一代前端框架,旨在提供风格统一、高度插件化、高度配置化的企业用户界面解决方案。
Brick Next 与一般插件化开发的区别
基于Brick Next的开发而来的产品,与 EasyOps 原生的页面无任何区别,直接继承登录态和权限等,同时也可以调整出厂内置的界面,有新的个性化调整可直接使用已有的各种 Brick 库。
很多平台产品号称提供灵活的二次开发能力,但实际上,仅仅提供基本后台框架(如Django)和各种API文档或SDK,众所周知,其前台页面是不支持更改和无缝对接的,在一定程度上,就是一个独立做的小外挂。
Brick Next 的基本原理
Brick Next主要由三部分组成:
Micro App (微应用): 面向用户真正界面使用的应用,是通过 Storyboard 定义该产品的用户界面的,这包括了路由的组织、界面使用的 构件(Brick) 及其相关的属性和事件配置。
Brick Package (构件包): 由一组 构件(Brick) 组成,其中的每个构件都有具体的业务属性的 UI 模块 。
Brick Container : 底层框架,根据 Storyboard 的配置信息,渲染对应的用户界面,并提供一些通用的公共依赖库。
拿积木类比:
• Micro App: 具体砌出的产品
• Storyboard: 对应产品组装说明书
• Brick Package: 能砌出Micro App的一套积木
• Brick Kit: 则是根据说明书自动挑选积木并组装成最终产品的机器人
Brick Next实战
两周快速搭建8个微应用
在Brick Next实际落地过程中,优维内部已经正式全面使用Brick Next来打造产品,如:持续集成流水线、容器部署、架构拓扑等重大产品功能都是通过构件化开发方式而来。
为了让开发者更加方便的基于Brick Next进行开发,EasyOps5.0 还提供了开发者中心:
• 带有示例的在线可视化原子构件库(类似常见的UI组件库)
• 带有示例的在线可视化业务构件库(带有功能场景封装的构件)
• 方便使用各大中台数据的Provider构件库
• 在线构件调试
• 场景使用实例
• 构件化开发文档指引
• API文档
图:开发者中心-构件化开发入门指引
在我们内部的实践过程中,最激动人心的一个案例莫过于我们只花费了两周时间便打造出8个不同的中间件资源管理微应用 ,下面就以 MySQL资源管理这个微应用为例,简单介绍下当时研发的过程。
Step 1:原型设计与构件分解
由于开发者中心已经提供了在线的构件预览(与平台其他功能使用的构件完全一致)和使用说明,因而原型设计也可以变得十分简单,业务专家/ 产品经理只需要截图便能拼凑出想要的页面,甚至可以通过构件在线调试直接预览。
图:在线可视化原子构件-统计卡片构件
在原型设计的过程中已经能快速验证设计的合理性与视觉效果,同时也能轻松评估将使用的构件和前端的开发工作量。
如:MySQL资源微应用的首页,共使用4种构件,全部是已带有接口template的构件,整个页面所需开发时间不到30分钟(如果没有对应数据接口封装的,只需要将原子构件和provider构件组装即可)。
Step 2:编写StoryBoard
在完成构件分解的工作后,整个产品的形态已经非常清晰。接下来首先需要完成每个页面的构件布局组织问题,布局本身也是一个构件,只需将原型中对应的显示构件放入到对应的位置中,即可完成页面布局。
图:开发者中心-布局构件-网格布局构件
图:使用布局构件代码示例
完成一个个页面的布局,接下来就可以配置页面的路由跳转配置了(包含侧边栏)。
图:MySQL资源管理侧边栏的代码示例
Step 3:微应用构建打包与部署
当开发完成,我们只需要利用EasyOps强大的流水线,打tag触发高质量完成微应用构建、打包并部署到研发环境整个过程。
图:MySQL微应用最终效果
两周8个微应用小结:
在两周时间内,团队完成了MySQL、SQLServer、Oracle、Redis、Nginx、Apache、Zookeeper、Kafka 8个微应用的上线。
图:已上线的8个中间件资源管理微应用
利用EasyOps 5.0 开发者中心基于 Brick Next 进行构件化开发,在原型设计上、构件使用上、页面组织上、甚至中台数据对接方式上都能做到极大的复用。同时这些微应用的所有页面或局部都能快速复用到其他微应用(譬如做一个MySQL的监控微应用需要MySQL资源的信息时,只需简单拷贝下资源管理的详情部分构件即可),充分体现了一整套构件化开发带来的工程效率提升。
基于EasyOps5.0
打造自由定制的运维平台
全新发布的优维EasyOps 5.0 以“大规模定制”为出发点,提供完整全面的IT中台数据服务、动作服务和监控服务,支持客户使用风格统一标准的构件,自由开发出完全个性定制化的前台微应用,将领先的优维专家经验与专业产品能力真正赋能给客户和合作伙伴。
接下来,我们团队将持续深耕高质量的专家级微应用,不断精进服务中台和技术中台,进一步助力客户基于EasyOps 5.0 打造自由定制的运维平台。