誉天程序员-瀑布模型-敏捷开发模型-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算法。

相关推荐
SelectDB12 小时前
Litefuse 开源并推出单进程轻量模式,25 秒就能跑起来的 Agent 可观测与评估平台
运维·后端·自动化运维
XIAOHEZIcode2 天前
Linux系统鼠标偏移常见原因以及修复方案
linux·运维·游戏
用户0328472220703 天前
如何搭建本地yum源(上)
运维
大树886 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠6 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质6 天前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
Inhand陈工6 天前
基于台达PLC与映翰通IG502的智慧水产养殖精准投喂与远程运维解决方案
运维·人工智能·物联网·阿里云·信息与通信
酣大智6 天前
ARP代理--工作原理
运维·网络·arp·arp代理
shushangyun_6 天前
2026年快消品B2B系统推荐:支持终端门店订货、促销政策自动化的工具?
java·运维·网络·数据库·人工智能·spring·自动化
施努卡机器视觉6 天前
SNK施努卡侧滑门锁上滑轮总成自动化装配线,从零件到组件,全流程精密制造方案
运维·自动化·制造