刚刚52ABP发布新版本了,谈谈小微技术团队的DevOps体系折腾之路
52ABP框架的前端(SPA)是采用蚂蚁金服体验技术部提供的Ant Design设计体系,它是基于『确定』和『自然』的设计价值观,通过模块化的解决方案,降低冗余的生产成本。
文章目录
本想纯粹说下52ABP新版本发布,但是写着写着,过去的时间更多折腾的是DevOps体系的建设。
这篇同样适用于小公司或者个人开发者脱离人肉运维的方法。
说下52ABP,我们发布了新版本,版本号3.1.0,看起来和.NET Core 3.1的版本号一样。
距离上个版本的时间比较久,是因为我们在等.NET Core 3.1的发布,当然它不是最重要的一个原因,它只是一个诸多的原因之一而已。
最大的原因我想是:
52ABP想做出来的东西具有通用性,我们自己能用,然后我们的客户能用,门槛还不能太高。
所以以后52ABP的版本迭代速度会加快了,因为CI CD已经被我们折腾好了。
1.DevOps选型折腾
首先我们为了搞DevOps走了不少弯路,比如刚开始跑去搞k8s,想一步到位,后来发现那个是真运维干的事情。作为开发人员, 对于我当前的客户和我们小团队而言最后还要维护这个东西还是算了吧,培养一个会K8S体系的程序员成本真心大。
还是回过头来看说DevOps吧。
DevOps要实现的几大要素:
- 代码管理
- 需求管理
- 持续集成(CI)
- 持续部署(CD)
然后我们对DevOps技术选择也加了几个要求
- 足够便宜
- 足够好用
- 有一定影响力
- 能持续更新迭代
所以我们一个个来找,代码管理工具尝试了,Gogs、Gitea 、Gitee、GitHub、Gitlab、Azure DevOps这些工具,这些工具在管理代码上以及需求上都是 大同小异,都能够满足需求。
2.CICD工具的选择
但是你想进一步尝试CI、CD的时候,你会发现你能选择的并不多。
虽然乍一看好像很多比如随便搜下:Travis CI、Drone、Jenkins、GitRunner、Bamboo等等,甚至有好事者统计了 GitHub 上使用最多的 10 个 CI 工具,做了个统计图。
通过添加的一个CI工具必选项,那就是私有仓库免费。这是因为我们穷所以付费的就不考虑了。
所以要自建那么CI工具可以选择的就只剩Drone、Jenkins、GitRunner。
这三款真的是各有千秋,就不细说了,最后我们选择了GitRunner。
3. DevOps落地方案
基本盘搭建好了之后,就是系统的考虑了。最开始是全Linux配合Docker,后来稍微做了一点小小的调查,发现又把战线拉长了。
最后的改了改部署结构变成了:
所以我们当前的方案是:Gitlab+GitRunner。
承载它的环境是:
- 一台Linux系统运行Gitlab
- 一台windows系统运行GitRunner
- 一台Linux系统运行GitRunner
4. 持续部署方案
有了DevOps技术方案,还要有技术规范,毕竟DevOps可以干的事情那么多。
就选一个项目部署来说吧。
在一家正常的软件公司中,都会有几种不同的软件开发环境。
他们通常具有以下开发环境:
开发环境–Development
演示(模拟、临时)环境–Staging
生产环境-- Production
那么就产生一个疑问,为什么我们需要那么多不同的开发环境呢?
额。。如果你回答不上来这个问题,建议看看我的 ASP.NET Core基础视频,里面有教程,B站直通车地址
https://www.bilibili.com/video/av48164112?p=16
我们是ASP.NET Core 作为后端开发环境,可以做到无缝兼容,不得不说.NET大法就是好。
而前端选择的是Angular,作为一个走在面向未来的前端框架,虽然还可以,但是在环境配置上需要通过编写脚本命令来判断,而不是系统判断,这个稍微弱了点。但是好歹能满足我们的条件。
最后我们实现的效果是无须修改任何的配置文件
开发环境即可在本机完成
Staging环境部署到Pro.52abp.com中
Production环境则部署到www.52abp.com中
不得不说有了 CI CD之后真香,而且成本也低,基本无需维护。
5. 52ABP-PRO 3.1.0 更新内容
现在我们来说说52ABP-Pro框架这次更新的内容吧
- 支持集成.NET Core 3.1.1
- 支持 Angular 8.2.3
新增功能
- 支付宝支付Demo
- 用户批量导入
- 地址选择组件
- Markdown编辑器
- 富文本编辑器
补充了部分单元测试
- 增加 用户管理的单元测试
- 增加角色管理的单元测试
- 增加组织单元管理的单元测试
- 增加多语言管理的单元测试
功能增强与修复
- 适配最新版代码生成器
- 加入监控页面支持Hangfire与Swagger
- 在Debug与Release环境下均支持注释
- 修复了API中枚举无法转换为string类型的问题
- 修复Angular的Dockerfile包文件
- 时间选择器集成Moment.js
- 补充Excel模板接口暴露问题
- 修复已知的Bug
我们对代码生成器进行了更新,之前确实太久没更新了这次一次性修复和更新了很多内容。
6.代码生成器新功能
真前后端页面的自动生成,重新调整了Readme文件,让大家配置起来更加的方便和运行.
下载地址: https://marketplace.visualstudio.com/items?itemName=werltm.52ABPCodeGenerator
生成的代码遵循DDD(领域驱动设计)的规范
- 自动生成单元测试
- 支持实体生成导出Excel功能
- 增强前端控件,支持如下类型
- switch
- checkbox
- input 数字
- input 小数
- Enums
- Radio
- Select
6. 52ABP的小社区
针对52ABP-Pro的客户,我们自建了 http://code.52abp.com/
之前我们采用QQ群和微信群进行问题的回答和解释,说实话,我们痛苦不堪,因为没有信息的留存。
如果您是52ABP-PRO的客户,请自行注册账号,然后添加微信号:wer_ltm
,我会拉你进52ABP企业版的仓库。
官方网站:https://www.52abp.com/Purchase
仓库地址:http://code.52abp.com/52abp/pro/52ABP-Enterprise/
52ABP-PRO是一个快速响应,移动优先的符合现代UI设计和SOLID架构的强力开发框架,它是您进行商业电子快速落地实践的完美完美起点。为您的商业点子带来无限可能,使您的网站在网络上脱颖而出。
我们欢迎第三方开源组件提供自己的解决方案,我们将会测试并集成到 52ABP 中。
7.52ABP框架的架构设计准则
52ABP框架的整体遵循领域驱动设计的最佳实践和约定!同时我们采用大家熟悉的工具并围绕它们进行最佳实践,提供符合SOLID原则的开发经验。
52ABP框架的服务端是基于ABP(ASP.NET Boilerplate),它用于创建现代Web应用程序的完整体系结构和强大的基础架构!
52ABP框架的前端(SPA)是采用蚂蚁金服体验技术部提供的Ant Design设计体系,它是基于『确定』和『自然』的设计价值观,通过模块化的解决方案,降低冗余的生产成本。
关于Vue
我想如果您可能要问Vue模板,说实话,我们也做了个Vue的前端模板。
但是讲道理没有TS的前端真的不香,加了TS之后又没有Angular香。
想了想还是等Vue3.0 我们才正式出商用的Vue模板吧。
更多推荐
所有评论(0)