DevOps - 代码与制品
2023-09-14 08:59:10 时间
一切皆代码!
从DevOps角度而言,软件开发过程中涉及的一切都可以用代码来表达
- 构建的应用程序
- 部署应用程序的基础设施
- 产品文档
代码
代码库
- SaaS: GitHub、GitLab、Bitbucket等
- 云提供商提供代码库
- 私有的内部代码库
源代码管理
- 源代码的历史版本存放在不同的档案中:分类的压缩包,提供下载
- 签入和签出的集中式源代码管理:修订控制系统(RCS)、源代码控制系统(SCCS)
- 集中式存储:提交之前需要合并,并发版本系统(CVS)、Subversion
- 去中心化存储:分布式版本管理系统(DVCS),例如Git
分布式版本管理系统
- 能够离线进行版本话管理
- 能够独立工作
- 可以同时和多个远程环境协同工作,避免单点故障
Git服务器
- 安装并配置:启用SSH
- 共享认证: LDAP或者SSO
- 与其他系统集成
- GitHub或GitLab是学习探索Git的捷径
客户端
- 不强制使用特定的客户端, 根据需要和喜好自行选择
- 推荐使用SSH命令行,简洁方便
- 编写并维护一份简单的使用说明,便于了解与熟悉
源代码管理系统迁移
- 在新旧系统迁移时,保持了历史记录完整性很重要,也很费时间和精力
- 对于VSS(Visual SourceSafe)和ClearCase,迁移成本巨大,建议保留旧系统在线
- 对于Subversion等,当前有合适的方式,不会牺牲历史记录
分支策略
- 需要遵守的约定或规则,描述应该何时创建分支、如何命名、分支应该如何使用等
- 分支策略:Gitflow模型,所有的发行版都从唯一的主干分支生成
代码审查
- 代码审查功能:pull request
- 基于Git的代码审查工具:Gerrit
文档
文档管理与访问,信息分享与获取
理想的情况是让所有角色都可以轻松访问文档。
文档应当集中式存放,除了分类排序建索引之外,还应该能够进行版本化管理。
例如,可以将所有文档以wiki或文本的形式存放在git仓库。
制品
制品版本命名
- 语义化版本:http://semver.org
- 所有可安装部署的制品都有一个合适的发布号和一个在代码库中相对应的标签
- 有些编译工具支持快照发布号,例如maven
相关文章
- 【华为云技术分享】云图说 | ContainerOps推出灰度发布模式,助力企业落地容器DevOps最佳实践
- DevOps on DevCloud|代码检查服务如何降低“Billion Dollar Mistake” NPE风险
- 【华为云动态】华为云DevCloud助力DevOps标准体系建设
- DevOps - Gradle
- [DevOps] CI/CD Benefits
- DevOps 工具-代码部署脚本
- DevOps - Cloud Foundry
- DevOps - 多功能命令行工具Cmder
- 【华为云技术分享】华为云 DevCloud 首席产品布道师:AIOps 不是 DevOps 的下一代
- DevOps on DevCloud|代码检查服务如何降低“Billion Dollar Mistake” NPE风险
- DevOps组织中应用架构师的新定位与实践
- 2015 DevOps状态调查报告
- SAST和DevOps/DevSecOps背景下最佳的静态代码分析器:Klocwork 2022.1 新增功能速递
- 支持DevOps和功能安全/信息安全的静态代码分析器 Klocwork——Klocwork的主要功能特性:基于SAST(静态应⽤程序安全测试)查找安全漏洞;支持DevOps;⽀持⾏业标准要求的编码规范
- DevOps敏捷60问,一定有你想了解的问题
- 云原生DevOps篇:使用Pipeline流水线将know-system项目自动化发版到Kubernetes集群
- 云原生DevOps篇:Jenkins Pipeline流水线语法基础与进阶
- 支持DevOps和功能安全/信息安全的静态代码分析器 Klocwork——Klocwork的主要功能特性:基于SAST(静态应⽤程序安全测试)查找安全漏洞;支持DevOps;⽀持⾏业标准要求的编码规范
- 支持DevOps和功能安全/信息安全的静态代码分析器 Klocwork——工具简介|原厂简介|客户列表