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

相关推荐
爱吃喵的鲤鱼1 小时前
仿mudou——Connection模块(连接管理)
linux·运维·服务器·开发语言·网络·c++
让子弹飞021 小时前
永久解决ubuntu网络连接问题
linux·运维·ubuntu
七七七七073 小时前
【Linux 系统】打开文件和文件系统
linux·运维·spring
ManageEngineITSM5 小时前
IT 服务自动化的时代:让效率与体验共进
运维·数据库·人工智能·自动化·itsm·工单系统
QotomPC5 小时前
软件定义的理想硬件平台:Qotom Q30900SE/UE系列在AIO服务器与边缘网关中的实践
运维·服务器
捷智算云服务5 小时前
H200服务器维修服务体系构建:捷智算的全链条保障方案
运维·服务器
hweiyu005 小时前
Linux 命令:mount
linux·运维·服务器
春生野草7 小时前
MobaXterm远程连接云服务器及配置jdk、Tomcat环境
运维·服务器
养生技术人8 小时前
Oracle OCP认证考试题目详解082系列第49题
运维·数据库·sql·oracle·database·开闭原则·ocp
wanhengidc9 小时前
云手机的挂机功能涉及到哪些内容
运维·服务器·网络·游戏·智能手机