最近老板问我Build & Release Engineer(发布工程师)到底需要做哪些工作?他们的工作职责和要求是什么?
结合项目和自己的经验说说我对发布工程师的工作职责和要求的理解。
工作职责
1、维护和管理代码仓库。创建dev/release分支,关注各个仓库和分支及仓库的设置,hook的设置。
2、从CI或手动构建所有平台的发布版本,放到指定位置,例如Artifactory。
3、快速定位日常构建过程中出现的错误,找到破坏构建的责任人,快速修复构建失败。
4、与开发团队紧密合作,确定优先级,确保关键问题按时发布
5、与DevOps、测试、自动化团队紧密合作,来实施项目的持续集成和持续发布工作流。
6、调查和开发产品发布脚本,实现自动化发布。
7、研究工具和过程,提高构建的可靠性、稳定性和效率。
8、积极主动、自我激励、愿意改进现有流程。
具体要求有如下
要求熟练掌握编程语言及平台
1、良好的脚本语言开发能力,比如Linux shell,bash,Python,Pert等等
2、良好的编程能力,掌握主流开发语言C/C++,Makefile,Python,Java
3、熟练掌握Windows、Unix两大主流平台使用。
要求熟练掌握DevOps工具
1、环境配置
2、主流DevOps工具: Ansible,Docker,Jenkins/Bamboo,Artifactory,等。
熟悉自动化和工作流
1、熟悉主流的自动化测试框架。
2、熟悉JIRA,Git,CI,CD工作流。
良好的沟通能力
1、制定和分享、实施最佳实践给团队。
2、良好的沟通,负责产品发布时相关工作的协调。
学习新工具新技术
1、关注新工具和新技术的动向。
2、通过学习新工具和技术推动发布流程改进。
谁适合做发布工程师?
如果你不想做测试(躲避点点点),也不想做开发(避免压力大),发布工程师很适合适合对熟悉自动化的测试和不想压力大的开发的同学来转型。
做好一名优秀的发布工程师要求还是非常多的,满足以上要求基本上就可以做DevOps工程师了。