路飞学城Python-Day186

news/2024/12/5 11:35:44/

Evernote Export

持续集成
持续集成,简单的说就是持续集成频繁的将代码集成到主干,它的好处主要有1.快速发现错误,没完成一点更新,就集成到主干,可以快速发现错误,定位错误也会比较容易,2.防止分支大幅偏离主干,如果不是经常持续集成的目的,就是让产品可以快速迭代,同事还能保持高质量。
持续交付
持续交付指的是,频繁的将软件的版本更新,交付给质量团队,以供评审,如果评审通过,代码将进入生产环节。
持续交付可以看做持续集成的下一步,不管如何更新,都满足持续交付。
持续集成的一般流程
根据持续集成的设计,代码从提交到生产,整个过程有以下几步:
1.提交
流程的第一步,是开发者向代码仓库提交代码,所有后面的步骤都始于本地代码的一次提交
2.测试(第一轮)
代码仓库对commit操作配置了钩子(hook),只要提交代码胡总合并进主干,就会跑自动测试
3.构建
通过第一轮测试,代码就会合并进主干,就算可以交付
交付后,就先进行构建,再进入第二轮测试,所谓构建,指的是将源码转换为可以运行的实际代码,比如安装依赖,配置各种资源(样式表、JS脚本、图片)等
常见的构建工具jeknins、Travis、codeship
4.测试(第二轮)
构建完成,就要进行第二轮测试,如果第一轮已经涵盖了所有测试内容,第二轮可以省略,当然,这时构建步骤也要一道第一轮测试前面
第二轮是全面测试,单元测试和集成测试都会跑,有条件的话,也要做端对端测试,所有测试以自动化为主,少数无法自动化的测试用例就需要人工跑。
5.部署
通过了第二轮测试,当前代码是一个可以直接部署的版本(artifact)
将这个版本的所有文件打包存档,发到生产服务器
生产服务器将打包文件,解包成本地的一个目录,再将运行路径的符号指向这个目录,然后重新启动,这方面的部署工具有ansible、Chef、Puppet等
6.回滚
认识DevOps
DevOps一词来自于Development和Operations的组合,突出重视软件开发人员和运维人员的沟通合作,通过自动化流程来是的软件构建、测试、发布更加快捷、频繁和可靠。
目前对DevOps有太多的说法和定义,不过它们都有一个共同的思想,"解决开发者和运维者之间曾经不可逾越的鸿沟,增强开发者与运维者之间的沟通和交流"
DevOps是一个框架,是一种方法论,并不是一套工具,他包括一系列的基本原则和实践
核心价值:
更快速地交付,影响市场的变化
更多地关注业务的改进与提升
为什么需要DevOps?
1.产品迭代
在现实工作中,往往都是用户不知道自己想要什么,但是当我们设计完一个产品后,他告诉我们不需要什么,这个就需要产品的迭代,而且过程是曲折的,那我们有什么好的办法快速交付价值,灵活的响应变化呢?
答案就是DevOps
因为DevOps是面向业务目标,助力业务成功的最佳实践
2.技术革新
现在的IT技术架构随着系统的复杂化不断的革新,从最初的所有服务在一个系统中,发展到现在的微服务架构,从纯手动操作到全自动流程,从单台物理机到云平台。
落实DevOps指导思想
高效的协作和沟通
自动化流程和工具
迅速敏捷的开发
持续交付和部署
不断学习和创新
敏捷管理:一支训练有素的敏捷开发团队是成功实施DevOps的关键
持续交付部署,实现应用程序的自动化构建,部署、测试和发布。
通过技术工具,把传统的手工操作转变为自动化流程,这不仅有利于提高产品开发、运维部署的效率,还将减少人为因素引起的失误和事故,提早发现问题并及时解决问题
版本控制系统
常见的版本控制管理工具
SVN
集中式的版本控制系统,只有一个中央数据仓库,如果中央数据仓库挂了或者不可访问,所有的使用者无法使用SVN,无法进行提交或备份文件。
Git
用分布式的版本控制系统,在每个使用者电脑上就有一个完整的数据仓库,没有网络依然可以使用Git,当然为了习惯及团队协作,会将本地数据同步到Git服务器或者GitHub等代码仓库
Git
Git是一个分布式的版本控制系统,用于敏捷高效的处理和开发任何或大或小的项目
Git是Linux的作者为了帮助管理内核开发而开发的一个开放式源码的版本控制软件
Git与常用的版本控制工具CVS,等不同,它采用了分布式版本库的方式,不必与服务器端软件支持
Git与SVN的区别
1.Git是分布式的,SVN不是,这是Git和其他分布式版本控制系统,例如svn最核心的区别
2.Git把内容按元数据的方式存储,而SVN是按照文件,所有的资源控制系统都是把文件的元信息隐藏在一个类似svn,cvs的文件夹里
3.Git分支和SVN的分支不同,分支在SVN中是版本库的另外一个目录
4.Git没有一个全局的版本号,而svn有,目前为止这是svn相比git缺少的最大的一个特征
5.Git的内容完整性要优于SVN,Git的内容存储使用的是SHA-1哈希算法,这能确保代码内容的完整性,确保在遇到磁盘故障时降低对版本库的破坏。
 

 

转载于:https://www.cnblogs.com/pandaboy1123/p/10169587.html


http://www.ppmy.cn/news/419725.html

相关文章

路飞项目整体流程(三)

文章目录 一、前端全局样式与Js配置二、后端主页轮播图功能编写三、轮播图接口编写四、跨域问题详解 前后端打通1)CORS解决跨域方式一2)CORS解决跨域方式二 五、自定义配置六、Git安装1)Pycharm中配置git 一、前端全局样式与Js配置 我们前端创建完成是默认是有样式…

164-路飞05-git的使用

昨日回顾 1 首页轮播图接口-写model类,写了一个基类-abstract True # 不在数据库生成-写一个基类,model类继承写的这个基类,有一些方法-model类实例化得到的对象,也会有这个基类的方法,给对象扩展出一些功能-接口-继…

路飞学城之 drf

目录 路飞学城之 drf 相关内容复习DRF框架知识总览 接口开发阶段接口测试工具接口文档接口规范CVB vs FBVpip安装源 介绍永久配置安装源 WindowsMacOS、Linux配置文件内容DRF框架的安装图书资源准备基于restful接口规范的接口设计实现单查群查接口 小结二、内容大纲 Django配置…

Day06笔记 -路飞学城学员

数据类型(上) 分为五个维度:定义,独有功能,公共功能,类型转换,其他。 1.整形 1.1 定义 整形实质上是现在所有10进制数的集合 1.2独有功能 用于计算二进制位的多少,例如:…

路飞学城结算中心实现

路飞学城结算中心的优惠券表结构 # ########################### 优惠券 ################################ class Coupon(models.Model):"""优惠券生成规则"""name models.CharField(max_length64, verbose_name"活动名称")brief m…

路飞学城项目前端笔记

目录 路飞学城项1. 项目分析2. 项目搭建2.1 创建项目目录2.2 初始化项目2.3 安装路由vue-router2.3.1 下载路由组件2.3.2 配置路由2.3.2.1 初始化路由对象2.3.2.2 注册路由信息2.3.2.3 在视图中显示路由对应的内容3. 引入ElementUI3.1 快速安装ElementUI3.2 配置ElementUI到项…

路飞学城前端Vue

创建项目 首先我们要创建项目并安装相关的组件 1. vue init webpack luffy2. 安装依赖:cd luffynpm install vuex --save 用于:多组件之间数据共享npm install vue-cookies --save 用于:操作cookienpm install axios --save …

macOS图片编辑开发

最近实现了一个在mac系统上对图片进行编辑的程序,先给大家看一下效果 大家可以看一下这张图片里拥有那些功能呢? 可以看到的是这边有绘制箭头,椭圆,圆角矩形框,线条,马赛克(路飞的鞋底&#x…