如何成为DevOps工程师(初学者必读)
- DevOps
- 什么是DevOps工程师
- 概念 & 工具
- 如何学习一个新技术(举例)
比起前后端,或者软件工程师,DevOps工程师的入门难度较大的原因之一是繁杂的DevOps工具。初学者的感觉可能是“选择太多,无从下手”。那么如何正确的学习这些技术呢?
DevOps
什么是DevOps工程师
DevOps工程师工作内容
- 维护当前CI/CD管道:结合代码、应用程序维护和应用程序管理(点这里看小学生都能懂的CI/CD)
- 积极了解新型技术,寻找优化的可能性
- 使用DevOps的脚本,使流程自动化,模块化和可重现
- 使开发团队的开发和部署更轻松,更高效(比如:前端工程师只需专心在前端的开发,不需要担心部署的问题)
最低的DevOps入门要求相对较高,因为DevOps是一个完整的软件开发和部署创建(CI/CD Pipeline)流程。而创建这些流程涉及许多工具。然而,对这些工具的学习不应该是相互独立的,而是应该将他们组合到一起进行学习。
概念 & 工具
当我们谈论DevOps领域的开发时,我们需要学会区分概念和工具。在了解工具之前,我们应该先弄懂概念。
- 概念是DevOps流程的基础,回答:
- 该概念的目的是什么?
- 工具则是实现某概念的技术,回答
- 如何解决某问题?
以下是一些常见概念和工具的例子:
概念 | 英文 | 工具 |
---|---|---|
操作系统系统 | OS Systems | Linux |
网络与安全 | Networking & Security | |
脚本 | Scripting | Python |
CI/CD | CI/CD | circleci, GitLab CI/CD, Jenkins, Tekton |
云供应商 | Cloud Providers | , Google Cloud, Microsoft Azure, AWS, IBM Cloud |
容器 | Containers | Docker |
容器平台/系统 | Container Orchestration | Kubernetes, Openshift(基于Kubernetes) |
监控 | Monitoring | |
将基础设施当做普通代码来写 | Infrastructure as Code(IaC) | Ansible |
版本控制 | Version Control | Git(Github, Gitlab) |
如何学习一个新技术(举例)
当面对一个新技术的时候,回答DevOps灵魂三连问:
- 所属概念?
- 概念的目的?
- 工具是如何实现所属概念的?
举例:学习Ansible
- 所属概念?
将基础设施当做普通代码来写(Infrastructure as Code(IaC)) - 概念的目的?
把Infrastructure当作普通代码来维护。如果写一个前端App,那么我们大概率会把代码都放到一个github repo里面,要运行App时跑npm start
即可。同理,我们把infrastructure相关的代码也放到一个github repo里面,这样一来我们可以实现版本控制,自动化,共同编程和可重现性。 - 工具是如何实现所属概念的?
Ansible
将infrastructure的命令都写进yaml
文件里。比起手动的写infrastructure(比如,在终端中运行docker container create
来新建容器并跑一个前端App),我们把所有配置都写在一个yaml里,比如容器的内存大小,容器所用的镜像(Image)。然后用Ansible
来执行该配置。
持续更新中,有什么流行或者新兴技术,欢迎补充 👏
更多推荐
如何成为DevOps工程师(初学者必读)
发布评论