配置管理(devops)
配置管理(Configuration Management,CM)是通过技术或行政手段对软件产品及其开发过程和生命周期进行控制、规范的一系列措施。配置管理的目标是记录软件产品的演化过程,确保软件开发者在软件生命周期中各个阶段都能得到精确的产品配置。
简而言之,就是管理配置的。
配置管理的作用及其意义
现在是个讲究效率的时代,配置管理这个岗位主要是通过使用devops平台来提高研发效率。配置管理就是研发运维一体化的桥梁。能够很好的起到降低发布风险,确保软件版本稳定,保障项目过程稳定,对于大型项目是不可或缺的一个岗位。
配置管理相关术语
环境管理:对开发测试环境进行的资源调配、日常维护、状态保证、技术支持等活动的总称。
组织级配置管理:对制定配置管理规范,提供配置管理培训和技术支持,定制配置管理活动工具以及进行配置审计工作的组织的总成。
项目级配置管理:对项目内部代码、文档的版本进行维护及版本变更过程进行管理的活动。
配置库:用于保存、管理软件资产,具有记录修改信息,管理历史版本等功能的工具。
制品:应用程序源代码构建生成的可用于安装部署的二进制包或镜像文件。
基线:源码在特定时间的一个稳定版本,它是进一步开发的基础。
产品缺陷:已发布的产品在使用过程中由用户反馈的缺陷。
二方包:公司内部的依赖库,一般指公司内部的其他项目发布的jar包。
三方包:公司之外的开源库,比如apache、ibm、Google等发布的依赖包。
私服:在局域网内架设的nexus仓库服务,代理广域网上的远程仓库,供局域网内的用户使用。
持续集成(CI):频繁的将代码集成到主干,通常每人每天至少集成一次代码。
持续部署(CD):在持续集成的基础上,代码通过评审后,应用自动部署到生产环境。
持续交付(CD):软件不管怎么更新,都可以随时随地进行交付。
配置管理需要掌握的技术
推荐掌握git/svn等版本管理工具,python/shell/perl等脚本工具,linux的了解,熟悉使用三剑客(awk,grep,sed)以及了解各种配置文件,有java/C编程经验更好。
docker
先来说说git/svn,首先你要知道两个工具的区别。面试必问!!!
GIT | SVN |
分布式 | 集中式 |
按原数据存储 | 按文件存储 |
没有全局版本号 | 有全局版本号 |
在offline状态下可以看到所有日志 | 不可以看到所有日志 |
不用先update才能提交 | 必须update之后才能提交 |
可以有无限个版本库 | 只能有一个指定的中央版本库 |
本地开放无限个分支 | 一个完整的目录 |
可以没网 | 必须有网 |
git/svn你需要掌握基础的使用,建议学习时用命令行。
能看懂脚本,编写工作常用脚本,比如启停脚本,安装软件脚本等等。
linux高级命令的掌握使用,比如awk,sed,grep,crontab,setfacl等等
学习路线建议
版本管理 | git,svn,gitlab等工具 |
构建工具 | maven,ant,IDE |
数据库 | redis,mongodb,mysql,oracle |
持续集成 | Jenkins,aws,阿里云,华为云等平台 |
制品库 | nexus |
虚拟化与容器 | docker,k8s,vmware |
架构 | 云原生 |
注:个人意见,仅供参考