基础篇
第一章:软件交付的问题
第二章:配置管理
第三章:持续集成
第四章:测试策略的实现
部署流水线
第五章:部署流水线解析
第六章:构建与部署的脚本化
第七章:提交阶段
第八章:自动化验收测试
第九章:非功能需求的测试
第十章:应用程序的部署与发布
交付生态圈
第十一章:基础设施与环境管理
第十二章:数据管理
第十三章:组件和依赖管理
第十四章:版本控制进阶
第十五章:持续交付管理

文章作者: Michael Pan
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Michael Blog!
相关推荐
2020-05-20
持续交付发布可靠软件的系统方法(部署流水线)第七章:提交阶段
《持续交付发布可靠软件的系统方法》读书笔记 提交阶段的运行应该少于5分钟,一定不要超过10分钏提交阶段的首要目标是创建可部署的产物 提交阶段的原则与实践 提供快速有用的反馈 何时令提交阶段失败 编译错误 测试失败(包括单元覆盖率低于60%) 精心对待提交阶段 提交阶段中有构建用的脚本和运行单元测试、静态分析等脚本。 随着项目的进行,不断改进提交阶段的脚本的质量、设计和性能 确保将脚本做成模块化,将那些经常使用且很少变化的常见任务与需要修改的任务分开 将部署流水线中不同阶段所用的代码分别写在不同脚本中 不要写出与具体环境相关的脚本,即要把具体环境配置与构建脚本分离 让开发人员也拥有所有权如果必要的话,即使是很普通的变更也都应该由开发人员和运维人员来执行 在超大项目团队中指定一个构建负责人 监督和指导对构建的维护 鼓励和加强构建纪律 在团队开始接触持续集成时,构建纪律还没建立起来时,提醒作用 团队成员轮流当,比如每星期轮换一次 提交阶段结果提交阶段的输入是源代码,输出是二进制包和报告(测试结果和代码分析报告) 制品库 制品库仅保存某些版本,而不是全部。如果在部署流水...
2020-05-20
持续交付发布可靠软件的系统方法(基础篇)第四章:测试策略的实现
《持续交付发布可靠软件的系统方法》读书笔记 项目在一开始阶段,测试人员就会与开发人员及客户一起写自动化测试。这些测试应该在开发前就写好。以上这些测试仅仅是系统进行功能测试,容量、安全性及其非功能性试也应尽早建立,为它们写自动化测试套件。确保不符合需求的问题尽早暴露。 业务导向且支持开发过程的测试在开发一个用户故事之前,应写好验收测试,采取完美的自动化形式。系统的验收测试应运行在类生产环境(UAT)验收测试有价值的特性: 它加快了反馈速度 减少了测试人员的工作负荷 让测试人员集中精力做探索性测试和高价值的活动 这些验收测试也是一组回归测试套件 行为驱动开发,可以以这些测试中自动生成需求说明文档 并不是所有的东西都需要自动化。我们倾向于将自动化验收测试限于完全覆盖Happy Path的行为,并仅覆盖其它一些极其重要的部分。每一种测试都应该覆盖应用程序的80%验收测试一般都是端对端测试,但是这样很多时候验收测试的失败并不是因为真正的缺陷,而是因为界面的变更,这将导致增大了验收测试脚本的维护。有两种方法解决这个问题: 在测试与用户界面之间增加一个抽象层,以便减少因用户界面变更而...

2023-05-26
OpenResty
什么是OpenRestyOpenResty是一个基于 Nginx 与 Lua 的高性能 Web 平台,其内部集成了大量精良的 Lua 库、第三方模块以及大多数的依赖项。用于方便地搭建能够处理超高并发、扩展性极高的动态 Web 应用、Web 服务和动态网关。可用于实现: 路由控制 高并发入口 动态服务降级 动态负载均衡 WAF应用防火墙 安装OpenResty 二进制安装 123[root@localhost ~]# yum-config-manager --add-repo https://openresty.org/yum/cn/centos/OpenResty.repo[root@localhost ~]# yum install openresty -y[root@localhost ~]# systemctl start openresty Docker 安装 1docker run -e KEY_ENV --name proxy --rm -p 443:443 -p 80:80 -v ~/openresty/:/etc/nginx/ docker.io/op...

2020-05-20
系统性能测试与监测工具汇总
综合能力性能测试(Unixbench)1[root@localhost] $ ./Run 计算查看当前CPU负载(uptime)1[root@localhost] $ uptime 测试单cpu计算能力(bc)1[root@localhost] $ time echo "scale=5000;4*a(1)" | bc -l -q 内存查看当前内存使用的情况的状态(free)1[root@localhost] $ free -m 进程对内存的占用情况(pmap) 1[root@localhost] $ pmap -d 35713 # 查看进程35713占用内存的情况 磁盘磁盘IO测试(dd)测试磁盘的IO写速度 1# time dd if=/dev/zero of=test.dbf bs=8k count=300000 oflag=direct 测试磁盘的IO读速度 1# dd if=test.dbf bs=8k count=300000 of=/dev/null 表示每次写入/读取8k的数据,执行300000次 实时查看各磁盘的io(iostat)...

2024-08-16
Lego签SSL证书
HTTPS已经成为当今网站的标准配置,为网站提供加密和身份验证功能。但是申请和维护SSL证书一直是一个繁琐的过程。幸运的是,Lego这个强大的工具可以帮助我们轻松地自动化获取和更新Let’s Encrypt免费SSL证书。 Lego 简介Lego是一个用Go语言编写的Let’s Encrypt客户端,它可以帮助我们自动化完成SSL证书的申请、验证和更新过程。相比于其他工具,Lego的优势在于: 支持多种验证方式,包括HTTP和DNS验证 集成了众多DNS服务商的API,可以自动完成DNS验证 使用简单,只需几个命令即可完成证书申请 支持通配符证书 安装 Lego mac 1brew install lego docker 1docker run goacme/lego -h 签发rout53证书 配置AWS密钥 123export AWS_ACCESS_KEY_ID=xxxexport AWS_SECRET_ACCESS_KEY=xxxexport AWS_REGION=us-east-1 生成ssl证书 1lego --email xhuaustc@gmail...

2020-05-20
《启示录:打造用户喜爱的产品》读书笔记
好产品具备三个基本条件:价值、可用性、可行性,三者缺一不可。产品没有价值,开发团队再优秀也无济于事。 第一篇:人员现代软件产品团队成员 产品经理职责:评估产品机会;定义要开发的产品。 用户体验设计师交互设计师:负责深入理解目标用户,设计有价值的,可用的功能,以及用户导航和产品使用流程。视觉设计师:根据交互设计原型,制作美观的产品界面 项目管理人员产品经理完成产品定义后,开发团队开始开发产品。项目经理核心任务:制订计划和跟踪进度。 开发团队职责:负责产品的技术开发。 运维团队职责:互联网服务产品通常运行在服务器上,保证服务正常运行。 产品营销人员职责:负责对外发布信息、宣传产品,为扩展市场销售渠道、组织重点营销活动、促进产品销售提供支持 第二篇:流程11. 评估产品机会——确定待解决的问题只讨论待解决的问题,不应涉及具体解决方案。产品经理需要回答如下十个问题: 产品要解决什么问题?(产品价值) 为谁解决这个问题?(目标市场) 成功的机会有多大?(市场规模) 怎样判断产品成功与否?(度量指标或收益指标) 有哪些同类产品?(竞争格局) 为什么我们最适合做这个产品?(竞争优...
