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哈希算法,这能确保代码内容的完整性,确保在遇到磁盘故障时降低对版本库的破坏。
 
 

路飞学城Python-Day186的更多相关文章

  1. 路飞学城—Python爬虫实战密训班 第三章

    路飞学城—Python爬虫实战密训班 第三章 一.scrapy-redis插件实现简单分布式爬虫 scrapy-redis插件用于将scrapy和redis结合实现简单分布式爬虫: - 定义调度器 - ...

  2. 路飞学城—Python爬虫实战密训班 第二章

    路飞学城—Python爬虫实战密训班 第二章 一.Selenium基础 Selenium是一个第三方模块,可以完全模拟用户在浏览器上操作(相当于在浏览器上点点点). 1.安装 - pip instal ...

  3. 路飞学城Python爬虫课第一章笔记

    前言 原创文章,转载引用务必注明链接.水平有限,如有疏漏,欢迎指正. 之前看阮一峰的博客文章,介绍到路飞学城爬虫课程限免,看了眼内容还不错,就兴冲冲报了名,99块钱满足以下条件会返还并送书送视频. 缴 ...

  4. 路飞学城-Python开发集训-第3章

    学习心得: 通过这一章的作业,使我对正则表达式的使用直接提升了一个level,虽然作业完成的不怎么样,重复代码有点多,但是收获还是非常大的,有点找到写代码的感觉了,遗憾的是,这次作业交过,这次集训就结 ...

  5. 路飞学城-Python开发集训-第1章

    学习体会: 在参加这次集训之前我自己学过一段时间的Python,看过老男孩的免费视频,自我感觉还行,老师写的代码基本上都能看懂,但是实际呢?....今天是集训第一次交作业的时间,突然发现看似简单升级需 ...

  6. 路飞学城-Python开发集训-第4章

    学习心得: 学习笔记: 在python中一个py文件就是一个模块 模块好处: 1.提高可维护性 2.可重用 3.避免函数名和变量名冲突 模块分为三种: 1.内置标准模块(标准库),查看所有自带和第三方 ...

  7. 路飞学城-Python开发集训-第2章

    学习心得: 这章对编码的讲解超级赞,现在对于编码终于有一点认知了,但还没有大彻大悟,还需要更加细心的琢磨一下Alex博客和视频,以前真的是被编码折磨死了,因为编码的问题而浪费的时间很多很多,现在终于感 ...

  8. 路飞学城-Python开发-第二章

    ''' 数据结构: menu = { '北京':{ '海淀':{ '五道口':{ 'soho':{}, '网易':{}, 'google':{} }, '中关村':{ '爱奇艺':{}, '汽车之家' ...

  9. 路飞学城-Python开发-第三章

    # 数据结构: # goods = [ # {"name": "电脑", "price": 1999}, # {"name&quo ...

  10. 路飞学城-Python开发-第一章

    # 基础需求: # 让用户输入用户名密码 # 认证成功后显示欢迎信息 # 输错三次后退出程序 username = 'pandaboy' password = ' def Login(username ...

随机推荐

  1. Solr数据不同步

    Solr配置了集群,本地有253和254,2个独立的Solr服务.  同一个页面的图片,刷新2次,图片地址不一样,最后查明,后台数据源Solr1和Solr2的数据不一致.    第1步推测:本地缓存, ...

  2. ecshop 后台增加栏目

    ① 后台左侧导航添加菜单 Ecshop后台增加一个左侧列表菜单需要修改三个文件/admin/includes/inc_menu.php /admin/includes/inc_priv.php /la ...

  3. luogu P4238 多项式求逆 (模板题、FFT)

    手动博客搬家: 本文发表于20181125 13:21:46, 原地址https://blog.csdn.net/suncongbo/article/details/84485718 题目链接: ht ...

  4. owin-startup方法

    owin在根目录下有这个startup.cs文件,里面有个startup方法,这个和global.asax有什么区别呢? 测试一下执行顺序,是先执行了global.asax文件,再执行了startup ...

  5. Unix(AIX) set命令

    Unix(AIX) set命令,set命令是shell所具有的,不仅仅是aix自己有的: set -o vi  可以用vi方式操作,用来获取已经输入过的命令: 如果希望自动设置,可以在.profile ...

  6. Rails 异常处理 && 性能

    Rails 异常处理 的多种处理方法 1.  routes match '*path', via: :all, to: 'controller#action' 2.  application.rb 的 ...

  7. 驱动开发(8)处理设备I/O控制函数DeviceIoControl

    本博文由CSDN博主zuishikonghuan所作,版权归zuishikonghuan全部,转载请注明出处:http://blog.csdn.net/zuishikonghuan/article/d ...

  8. 使用filezella服务器安装ftp

    使用FileZilla配置FTP站点,可参考以下步骤: 1.打开Filezilla Server服务端: 点击[Edit]->[Users],或者点击如下图标新增用户. 2.添加FTP帐号后,设 ...

  9. Html+CSS基础之Html

    注:本文摘自慕课网http://www.imooc.com   HTML+CSS基础课程 本人有道笔记:http://note.youdao.com/noteshare?id=18fa811e9f9e ...

  10. 一个域名如何解析到多个ip地址

    一.域名解析多ip实例 简单一句话: dns 解析时多添加几个不同IP的A记录 例如: 上图中我给域名解析到两个不同的ip,大概等十分钟后我们ping 一下的结果如下 可以看到已经实现了一个域名解析到 ...