随笔分类 - 持续交付/软件管理
软件管理
摘要:gradle全局配置: gradle user home目录结构: gradle project home 目录结构 build项目构建后生成目录,类似于target; build.gradle:类似于 Maven POM.xml settings.gradle 项目的配置 gradle.prope
阅读全文
摘要:部署与发布 部署和发布的主要区别是回滚能力.发布是可获取新版本,部署是部署新版本且要具备回滚的能力. 解决什么问题 自动化部署软件.避免人工操作引起部署异常. 怎么做 创建发布策略 项目启动时应确定的发布相关内容.这个需要项目启动时就要内部协商好,具体协商内容如下: 每个环境的部署和发布由谁负责 创
阅读全文
摘要:非功能需求测试 功能需求:指应用程序中定义的业务逻辑. 非功能需求:是相对于功能需求而言的,它主要指非应用程序中定义的业务逻辑,一般指容量,吞吐量,性能等测试. 性能:指处理单一失误所花时间的一种度量; 吞吐量:系统在一定时间内处理事务的数量,通常它受限于某个瓶颈; 容量:在一定的负载下,当每个单独
阅读全文
摘要:自动化验收测试 验收测试:用于验证一个用户故事或需求的验收条件是否被满足.验收测试可以分为:功能性验收测试和非功能性验收测试. 功能测试:实际应用业务功能相关的测试; 非功能测试:应用运行相关的容量,性能,可修改性,可用性,安全性,易用性等方面的测试. 验收测试和单元测试的区别: 验收测试针对业务;
阅读全文
摘要:提交阶段 提交阶段是持续集成的开始,也是持续集成的最小集.每次修改都会触发自动化构建,将构建的二进制包,执行测试和进行一些分析和后续环境准备操作; 解决什么问题 部署流水线的入口.确保项目花费最少的实践做代码级别的集成;它能驱动一些好的设计实践,并对代码质量和交付速度产生很大的影响; 具体处理事情:
阅读全文
摘要:构建和部署的脚本化 自动化部署:部署应用运行需要的环境.包括了配置应用程序,初始化数据,配置基础设施,操作系统,中间件,安装所需的模拟外部系统等. 脚本:指辅助构建,测试,部署和发布应用程序的指令集.持续交付中自动化脚本应该贯穿应用的整个生命周期. 构建工具:用于自动化构建的辅助工具.功能包括:初始
阅读全文
摘要:部署流水线 **部署流水线:**是一种软件自动化交付流程.采取一种更完整的端到端的方法来交付软件,即一键式部署.让团队可以同时得到软件功能和部署流程两个方面的快速反馈. 通过一键式部署,可以明确的知道某个部署环境部署的软件版本,出现的问题,关键度量指标(周期时间,吞吐量,代码质量等).所有人都可看任
阅读全文
摘要:测试策略的实现 测试策略的设计主要是识别和评估项目风险的优先级,以及决定采用哪些行动来缓解风险的一个过程.良好的测试可以赋予产品交付质量信息和交付信息,同时还可以约束开发行为,全面的自动化测试套件还可以作为产品说明文档使用,提供全局的标准. 业务导向且支持开发过程的测试(第二象限) 第二象限的测试通
阅读全文
摘要:持续集成 **持续集成:**个体不断向主干分支快速迭代的过程,强调开发的及时性,以保障局部和整体开发进度的协调,使软件随时处于可运行状态.同时避免像瀑布模型那样集中提交,引起大量冲突的情形;这里会执行单元测试.组件测试和功能性验收测试 解决什么问题 软件随时处于可工作状态,每次提交都会进行功能合格验
阅读全文
摘要:配置管理 **配置管理:**指将所有与项目相关的产物,及它们之间的关系都被唯一定义,修改,存储和检索的过程. 配置管理记录了系统及应用程序的演进过程;管理了团队成员协作方式. 解决什么问题 配置管理价值: 可以再现任何所需环境(包括操作系统版本及其补丁,网络配置,软件组合,相关软件及其配置); 轻松
阅读全文
摘要:持续交付 **持续集成:**个体不断向主干分支快速迭代的过程,强调开发的及时性,以保障局部和整体开发进度的协调,使软件随时处于可运行状态.同时避免像瀑布模型那样集中提交,引起大量冲突的情形;这里会执行单元测试.组件测试和功能性验收测试 **持续交付:**将持续集成的二进制包不断进行非功能性验收测试,
阅读全文
摘要:基础设施和环境管理 部署软件步骤: 创建并管理应用运行所需的基础设施 安装应用程序的正确版本 配置应用程序,包括数据和状态 **环境:**指应用程序运行所需的所有资源和它们的配置信息. **基础设施:**代表了你所在组织的所有环境和支持其运行的所有服务. 基础设施和环境管理方式: 使用版本库中的配置
阅读全文
摘要:数据管理 解决什么问题 企业中,数据是实际业务的核心是企业价值的体现.数据的管理也是非常重要的事情.实际数据的版本化管理可以有效的降低版本迭代风险.同时针对测试数据的管理,通过一些初始化数据来快速完成测试,可以有效的提高迭代效率. 怎么做 实际通过下面方式来进行数据版本管理: 数据库脚本化 增量式修
阅读全文
摘要:组件和依赖管理 构建系统的三个维度:部署流水线,分支和组件 解决什么问题 持续集成:解决在保障持续集成的前提下,进行大型重构和添加复杂新功能; 代码解耦:解决单体应用代码,在功能激增后的管理问题; 保证应用可发布 实际持续集成要求主干分支开发,详情见(持续交付2-版本控制).同时开发中如何保证服务的
阅读全文
摘要:版本控制 版本控制系统:用于维护应用程序每次修改的完整历史,包括源代码,文档,数据库定义,构建脚本,测试等. 解决问题:解决版本控制中,因为团队人数增加及功能增加引起的合并冲突问题. 分支与合并 分支的主要目的时帮助并行开发,而不互相影响. 团队中的分支使用情形: 物理上:因系统物理配置而分支,即为
阅读全文
摘要:持续交付管理 **持续集成:**个体不断向主干分支快速迭代的过程,强调开发的及时性,以保障局部和整体开发进度的协调,而不是像瀑布模型那样集中提交,而存在大量冲突的情形; **持续交付:**将持续集成的二进制包不断进行测试,优化的过程,使应用保证一种随时可交付使用的状态. **持续部署:**构建产品可
阅读全文
摘要:CI(Continuous Integration):持续集成.不断把本地代码汇集到软件整体的过程.简单说即:服务打包; 问题:单次构建单服务还是多服务? 多服务:构建简单,管理复杂,小修改全部要更新; 单服务:构建服务数量多,管理简单; CD(Continuous Delivery):持续交付.在
阅读全文