小微技术团队的DevOps体系折腾之路(顺带发布52ABP新版本)

加个“星标”,好文必达!

本想纯粹说下52ABP新版本发布,但是写着写着,过去的时间更多折腾的是DevOps体系的建设。
这篇同样适用于小公司或者个人开发者脱离人肉运维的方法。

说下52ABP,我们发布了新版本,版本号3.1.0,看起来和.NET Core 3.1的版本号一样。
距离上个版本的时间比较久,是因为我们在等.NET Core 3.1的发布,当然它不是最重要的一个原因,它只是一个诸多的原因之一而已。

最大的原因我想是:

52ABP想做出来的东西具有通用性,我们自己能用,然后我们的客户能用,门槛还不能太高。

所以以后52ABP的版本迭代速度会加快了,因为CI CD已经被我们折腾好了。

DevOps选型折腾

首先我们为了搞DevOps走了不少弯路,比如刚开始跑去搞k8s,想一步到位,后来发现那个是真运维干的事情。作为开发人员, 对于我当前的客户和我们小团队而言最后还要维护这个东西还是算了吧,培养一个会K8S体系的程序员成本真心大。

还是回过头来看说DevOps吧。

DevOps要实现的几大要素:

  • 代码管理

  • 需求管理

  • 持续集成(CI)

  • 持续部署(CD)

然后我们对DevOps技术选择也加了几个要求

  • 足够便宜

  • 足够好用

  • 有一定影响力

  • 能持续更新迭代

所以我们一个个来找,代码管理工具尝试了,Gogs、Gitea 、Gitee、GitHub、Gitlab、Azure DevOps这些工具,这些工具在管理代码上以及需求上都是 大同小异,都能够满足需求。

CICD工具的选择

但是你想进一步尝试CI、CD的时候,你会发现你能选择的并不多。

虽然乍一看好像很多比如随便搜下:Travis CI、Drone、Jenkins、GitRunner、Bamboo等等,甚至有好事者统计了 GitHub 上使用最多的 10 个 CI 工具,做了个统计图。

通过添加的一个CI工具必选项,那就是私有仓库免费。这是因为我们穷所以付费的就不考虑了。

所以要自建那么CI工具可以选择的就只剩Drone、Jenkins、GitRunner。

这三款真的是各有千秋,就不细说了,最后我们选择了GitRunner。

DevOps落地方案

基本盘搭建好了之后,就是系统的考虑了。最开始是全Linux配合Docker,后来稍微做了一点小小的调查,发现又把战线拉长了。

最后的改了改部署结构变成了:

实际运行后的方案,真香。

所以我们当前的方案是:Gitlab+GitRunner。

承载它的环境是:

  • 一台Linux系统运行Gitlab

  • 一台windows系统运行GitRunner

  • 一台Linux系统运行GitRunner

持续部署方案

有了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之后真香,而且成本也低,基本无需维护。

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

我们对代码生成器进行了更新,之前确实太久没更新了这次一次性修复和更新了很多内容。

代码生成器新功能

真前后端页面的自动生成,重新调整了Readme文件,让大家配置起来更加的方便和运行.

下载地址: https://marketplace.visualstudio.com/items?itemName=werltm.52ABPCodeGenerator

  • 生成的代码遵循DDD(领域驱动设计)的规范

  • 自动生成单元测试

  • 支持实体生成导出Excel功能

  • 增强前端控件,支持如下类型

    • switch

    • checkbox

    • input 数字

    • input 小数

    • Enums

    • Radio

    • Select

52ABP的小社区


针对52ABP-Pro的客户,我们自建了 http://code.52abp.com/
之前我们采用QQ群和微信群进行问题的回答和解释,说实话,我们痛苦不堪,因为没有信息的留存。

如果您是52ABP-PRO的客户,请自行注册账号,然后添加微信号:wer_ltm,我会拉你进52ABP企业版的仓库。

如果您想购买52ABP-PRO版本

官方网站:https://www.52abp.com/Purchase

仓库地址:http://code.52abp.com/52abp/pro/52ABP-Enterprise/

52ABP-PRO是一个快速响应,移动优先的符合现代UI设计和SOLID架构的强力开发框架,它是您进行商业电子快速落地实践的完美完美起点。为您的商业点子带来无限可能,使您的网站在网络上脱颖而出。

我们欢迎第三方开源组件提供自己的解决方案,我们将会测试并集成到 52ABP 中。

52ABP框架的架构设计准则

52ABP框架的整体遵循领域驱动设计的最佳实践和约定!同时我们采用大家熟悉的工具并围绕它们进行最佳实践,提供符合SOLID原则的开发经验。

52ABP框架的服务端是基于ABP(ASP.NET Boilerplate),它用于创建现代Web应用程序的完整体系结构和强大的基础架构!

52ABP框架的前端(SPA)是采用蚂蚁金服体验技术部提供的Ant Design设计体系,它是基于『确定』和『自然』的设计价值观,通过模块化的解决方案,降低冗余的生产成本。

关于Vue

我想如果您可能要问Vue模板,说实话,我们也做了个Vue的前端模板。
但是讲道理没有TS的前端真的不香,加了TS之后又没有Angular香。
想了想还是等Vue3.0 我们才正式出商用的Vue模板吧。

转发至朋友圈,是对我最大的支持。

朕已阅 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/311645.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

word List44

word List44 如果存在什么问题,欢迎批评指正!谢谢!

python序列数据类型_Python 数据类型 之 序列类型

序列:表示索引为非负整数的有序对象集合,所有序列都支持迭代 序列类型有:字符串,列表,元组 三种 字符串也是一种序列 列表和元组是任意python对象的序列或叫有序集合 字符串和元组不可变序列,列表支持插入、…

word List 45

word List 45 One of the pressing problems our nation faces today is how to strike a balance between economic development and environmental protection. 我们国家当今面临的最紧迫的问题之一就是如何平衡经济发展和环境保护之间的关系。 Corruption has existed since…

2020 年 中国.NET开发者调查报告

微信公众号dotnet跨平台2020年初做的一个关于中国.NET开发者调查收到了开发者近 1400 条回复。这份调查报告涵盖了开发者工具链的所有部分,包括编程语言、应用架构、应用服务器、运行时平台、框架技术、框架配置、IDE、.NET/.NET Core 发行版部署模式、构建工具和Ku…

列名无效如何解决_XSKY ClickHouse如何实现存算分离

在介绍ClickHouse之前,说一下OLAP。OLAP也叫联机分析处理(Online Analytical Processing)。OLAP系统以维度模型来存储历史数据,其主要存储描述性的数据并且在结构上都是同质的。01ClickHouseOLAP应用有如下特点:1、大多数的请求是读请求&…

word List 46

word List 46 如果存在什么问题,欢迎批评指正!谢谢!

.NET Core开发实战(第6课:作用域与对象释放行为)--学习笔记(下)

06 | 作用域与对象释放行为接下来&#xff0c;把服务切换为单例模式&#xff0c;通过工厂的方式services.AddSingleton<IOrderService>(p > new DisposableOrderService());启动程序&#xff0c;输出如下&#xff1a;1 2 接口请求处理结束可以看到代码实际上不会被释放…

C++实现邻接表存储的图及bfs遍历

#include <iostream> #include <queue> using namespace std; typedef char VerTexType; #define MVNum 100 typedef char OtherInfo; bool vis[MVNum];//邻接表 typedef struct ArcNode {int adjvex;struct ArcNode *nextarc;OtherInfo info; } ArcNode;//弧(边)t…

cmd小游戏_使用pygame制作Flappy bird小游戏

原文链接&#xff1a;【Python】使用Pygame做一个Flappy bird小游戏&#xff08;一&#xff09;​mp.weixin.qq.com最近看到很多大佬用强化学习玩Flappy bird。所以打算也上手玩一玩&#xff0c;但是苦于没找到pc上的这个游戏&#xff0c;找了点资料&#xff0c;发现并不是很难…

word List 47

word List 47 如果存在什么问题&#xff0c;欢迎批评指正&#xff01;谢谢&#xff01;

使用BeetleX构建基础的SSL网络通讯

BeetleX的使用非常简单&#xff0c;通过Stream的数据流模式可以让你轻松处理网络数据&#xff1b;在处理SSL加密通讯的时候组件的使用也是非常方便&#xff0c;只需要简单的配置证书即可完成基于SSL的网络安全通讯&#xff0c;接下来介绍一下通过组件快速构建一个安全可靠的网络…

调用其他app 的lib_ButterKnife执行效率为什么比其他注入框架高?它的原理是什么...

面试官: ButterKnife为什么执行效率为什么比其他注入框架高&#xff1f;它的原理是什么心理分析&#xff1a; ButterKnife框架一直都是使用&#xff0c;很少又开发者对butterknife深入研究的&#xff0c;既然你是面试Android高级岗位&#xff0c;自然需要有相应被问到原理的准备…

算法---会议最大安排问题

算法—会议最大合理安排问题 参考&#xff1a;趣学算法 代码&#xff1a; #include <stdio.h> #include <stdlib.h> typedef struct meet {int beg;//开始int end;//结束int num;//会议编号 }meet; int cmp44(meet m1,meet m2) {//越早结束的越优先&#xff0c;…

小cookie,大智慧

Cookie是什么&#xff1f;cookies是你访问网站时创建的数据片段文件&#xff0c;通过保存浏览信息&#xff0c;它们使你的在线体验更加轻松。使用cookies&#xff0c;可以使你保持在线登录状态&#xff0c;记录你的站点偏好&#xff0c;并为你提供本地化支持。First-party cook…

java 最少使用(lru)置换算法_LRU算法详解及最简单的Java实现

更多内容&#xff0c;欢迎关注微信公众号&#xff1a;全菜工程师小辉~LRU(Least recently used&#xff0c;最近最少使用)算法根据数据的历史访问记录来进行淘汰数据&#xff0c;其核心思想是“如果数据最近被访问过&#xff0c;那么将来被访问的几率也更高”。LRU算法的表现新…

word List 48

word List 48 如果存在什么问题&#xff0c;欢迎批评指正!谢谢&#xff01;

一文读懂常用开源许可证

社区时常为流行产品中有争议的开源许可证而感到震惊&#xff0c;这引起各方关注&#xff0c;纷纷争论何为真正的开源许可证。去年&#xff0c;Apache 基金会&#xff08;Apache Foundation&#xff09;禁止使用 Facebook React 那些具有争议的专利组件&#xff0c;这引发了轩然…

[蓝桥杯2015初赛]手链样式-思维+next_permutation枚举(好题)

题目描述 小明有3颗红珊瑚&#xff0c;4颗白珊瑚&#xff0c;5颗黄玛瑙。 他想用它们串成一圈作为手链&#xff0c;送给女朋友。 现在小明想知道&#xff1a;如果考虑手链可以随意转动或翻转&#xff0c;一共有多少不同的组合样式&#xff1f; 输出 请你输出该整数。不要输出任…

word List 49

word List 49 如果存在什么问题&#xff0c;欢迎批评指正&#xff01;谢谢!

(四)开源C# WPF控件库《AduSkin – UI》

微信公众号&#xff1a;【Dotnet9的博客】&#xff0c;网站&#xff1a;【Dotnet9】&#xff0c;问题或建议&#xff1a;【请网站留言】&#xff0c; 如果对您有所帮助&#xff1a;【欢迎赞赏】。https://dotnet9.com追求极致&#xff0c;永臻完美A Beautiful WPF Control UI一…