201810: devops 学习总结
Author:haifengrundadi Date: 2018.10.19
九月份入职,到现在差不多一个时间(除去国庆和团建),希望从开始就记录这条前行的路。
学习的主要内容
DevOps 相关的概念
之前在华为做开发,转到腾讯做 DevOps 相关的测试开发工作。在这之前,对测试开发还有 devops 也不是很了解,只是有点模糊的印象。在这一个月里,首先改变自己对 DevOps 相关工作的了解,认识到其的重要性。
简单总结: 利用平台打通开发,测试和运维等之间信息不流通问题,让大家可以看到各个环节的进度,并保证快速的迭代和集成,通过多次的迭代和集成,让问题及早的或者说平时就显示出来,不至于在最后阶段发生问题,影响交付(其实也让人疲惫)。这中间需要使用 CI 和 CD 的工具,还需要根据业务开发自己的业务。这也是符合敏捷开发模式。
相关的书籍:
- 《研发运营一体化(DevOps)能力成熟度模型 第 3 部分:持续交付》
- 《持续交付》在读中
- 《Jenkins 权威指南》在读中
- 《Docker 技术入门与实践》在读中
- 《Jenkins 官网上文章》在读中(强烈推荐)
- 《Testerhome 相关翻译文章》
设计的知识点
技术上
- 对 Jenkins 简单的操作有点了解,原理部分还在研读中。Jenkins 作为一款传奇的 CICD 工具,通过丰富的第三方工具以及活跃的社区,提供了目前我所能需要的各种场景。
- 对 Pipeline 的了解。主要学习了,如何编写 Jenkinsfile,以及在尝试写 Shared Library。目前,我这需求基本上,checkout 源代码, 设置相关环境变量,build,test,等几个步骤,如果把每一个步骤都抽象成一个函数,则可以实现类似组合的概念,从而提高效率。
- 对 Docker 相关知识的学习,很久之前用过一点点 docker,目前需要让代码在 docker 中运行,则需要自己写 dockerfile 搭建所需要的环境,根据业务类型,可以对一些共用的镜像,做成公共的镜像。这样其他相关的镜像就可以根据已有镜像进行制作。
- Shell 脚本以及 Linux 相关指令等,这个一块比较薄弱,目前所用到的东西都在 linux 上,对 shell 和 linux 相关知识的学习是下一个部分的重点。
亟待学习
- Jenkins 的熟练使用以及原理。--》jenkins 权威指南和官网
- Pipeline 的学习和熟练使用。 ---》Groovy 语言的学习
- Shell 以及 Linux 相关指令。 --》菜鸟私房菜
- 业务知识
其他感想
做 devops 需要打通开发,测试和运维,因而需要对三个部门有一定的了解,对各个项目有整体的了解。最好,能和各个部门的人都保持不错的关系,这样沟通起来也比较方便高效。其次,作为 devops 的开发者,需要掌握的内容比较多,如何掌握好每一个小部分的知识,是下一步自己也要考虑的。
既然走入这条路,就踏踏实实干两年。
最后一点
在查资料的过程中,发现虽然 CICD 发展了许多年,目前的资料还是比较少,希望能有一个社区或者微信群,供大家进行讨论。如果有人有类似的想法,加我微信。我建立一个微信群。