誉天程序员-瀑布模型-敏捷开发模型-DevOps模型比较

文章目录

2. 项目开发-开发方式

由传统的瀑布开发模型、敏捷开发模型,一跃升级到DevOps开发运维一体化开发模型。

2.1. 瀑布开发模型

大而全,流程界限明显,团队庞大隔离分工明确,沟通成本大,效率变低。

2.2. 敏捷开发模型

将庞大的小组分成多个小组,每个小组形成快速迭代,打破部门边界,以项目模块为核心组织人员。沟通效率,开发效率显著提升。

2.3. DevOps开发模型

而开发运维一体化是敏捷开发的更深入的延续,同时最大特点是基于约定大于配置的思想,利于很多新兴的开发工具,形成一套自动化的体系。利于自动化极大减少了人力成本和沟通时间。所以开发效率又一次有了质的飞跃。

GitLab(Gitee)形成代码仓库。Junit实现单元测试。Maven实现一套编译、测试、打包、发布、部署的命令集,并按约定形成一套自动执行命令的机制。Docker实现一套容器化机制,其效率高过VM虚拟机百倍甚至更高。K8s实现Docker的编排,使其实现分布式、高并发、高可用集大成的平台。这些各自领域的精英通过Jinkens的监控和调配,将整个软件开发过程实现,同时实现闭环自循环。

开发者提交代码到GitLab上,Jinkens设置hook钩子,对代码进行监控,发现开发者更新了代码,就调用Maven的compile编译命令,先进行基础语法的检查,编译通过后,调用Maven test命令,自动调用开发者所写的单元测试类,测试每个类的每个方法,同时可以结合mock技术实现供给模拟数据。单元测试通过后,继续调用Maven package打包命令,完成项目的发布。通过Jinkens调用Dockerfile实现docker的自动化部署和运行。Docker运行后形成web环境,用户可以直接访问网站去执行某个服务。可以看到这个流程非常复杂,但功能特别的强大。特别再配合SpringCloud微服务架构后,直接可以升级到大型架构,轻松支持百万级、千万亿,甚至亿级的超大型并发项目的实现。

2.4. 区别

自增主键策略

1、数据库支持主键自增

不同的数据库实现方式不同,SQL标准没有定义,都是数据库厂商自己扩展。

例如:mysql 它 auto_increment,自增主键,在数据库中对每个表的自增主键都会单独维护一个值。

每插入一条数据,它的值+1。

它在大型的项目中,或分布式项目中有问题。

1)值范围可能溢出,out of value

2)自增并发容易出现,产生了相同的值,sqlServer。不适合高并发。

3)分布式合并统计时,先把表的数据合并起来,然后进行统计。

都是按序号自增,两张表合并时,无法合并。

新的方案:字符串,特点:唯一性(主键、合并表)

1)UUID,32位,以16进制来表达

UUID:机器码(网卡)-唯一性+时间戳(纳秒)+顺序号(理论上唯一)

SELECT UUID(),LENGTH(UUID())

表达范围2^32长度,唯一性

自增和uuid方案优缺点

1)自增int/long,运算速度快

2)uuid相比太长32位,字符串速度慢

mybatisplus采用新的uuid策略,雪花snowflake算法。

相关推荐
用手码出世界34 分钟前
【Linux】信号
linux·运维·服务器
网硕互联的小客服43 分钟前
服务器操作系统时间同步失败的原因及修复
运维·服务器
陈哥聊测试1 小时前
开发认为测试不及时,测试吐槽工作量太大?
后端·测试·devops
中国lanwp1 小时前
Pingora vs. Nginx vs. 其他主流代理服务器性能对比
运维·nginx
YUELEI1181 小时前
Centos9安装docker
运维·docker·容器
Lilith的AI学习日记1 小时前
n8n 中文系列教程_05.如何在本机部署/安装 n8n(详细图文教程)
运维·windows·macos·ai编程·n8n
庸子1 小时前
Docker镜像与容器概念解析
运维·docker·容器
Zz_waiting.2 小时前
网络原理 - 6
运维·服务器·网络·tcp