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

相关推荐
码农101号2 小时前
Linux中shell编程表达式和数组讲解
linux·运维·服务器
powerfulzyh2 小时前
非Root用户启动SSH服务经验小结
运维·ssh
云道轩2 小时前
升级centos 7.9内核到 5.4.x
linux·运维·centos
爱学习的小道长2 小时前
Ubuntu Cursor升级成v1.0
linux·运维·ubuntu
EelBarb2 小时前
seafile:ubuntu搭建社区版seafile12.0
linux·运维·ubuntu
402 Payment Required3 小时前
serv00 ssh登录保活脚本-邮件通知版
运维·chrome·ssh
小柏ぁ3 小时前
calico/node is not ready: BIRD is not ready: BGP not established with xxx
运维·docker·kubernetes
Mintimate3 小时前
云服务器 Linux 手动 DD 安装第三方 Linux 发行版:原理与实战
linux·运维·服务器
RussellFans3 小时前
Linux 环境配置
linux·运维·服务器
高冷的肌肉码喽4 小时前
Linux-进程间的通信
linux·运维·服务器