如何成为DevOps工程师(初学者必读)

  • DevOps
    • 什么是DevOps工程师
    • 概念 & 工具
    • 如何学习一个新技术(举例)

比起前后端,或者软件工程师,DevOps工程师的入门难度较大的原因之一是繁杂的DevOps工具。初学者的感觉可能是“选择太多,无从下手”。那么如何正确的学习这些技术呢?

DevOps

什么是DevOps工程师

DevOps工程师工作内容

  • 维护当前CI/CD管道:结合代码、应用程序维护和应用程序管理(点这里看小学生都能懂的CI/CD)
  • 积极了解新型技术,寻找优化的可能性
  • 使用DevOps的脚本,使流程自动化,模块化和可重现
  • 使开发团队的开发和部署更轻松,更高效(比如:前端工程师只需专心在前端的开发,不需要担心部署的问题)

最低的DevOps入门要求相对较高,因为DevOps是一个完整的软件开发和部署创建(CI/CD Pipeline)流程。而创建这些流程涉及许多工具。然而,对这些工具的学习不应该是相互独立的,而是应该将他们组合到一起进行学习。

概念 & 工具

当我们谈论DevOps领域的开发时,我们需要学会区分概念工具。在了解工具之前,我们应该先弄懂概念

  • 概念是DevOps流程的基础,回答:
    • 概念的目的是什么?
  • 工具则是实现某概念的技术,回答
    • 如何解决某问题?

以下是一些常见概念工具的例子:

概念英文工具
操作系统系统OS SystemsLinux
网络与安全Networking & Security
脚本ScriptingPython
CI/CDCI/CDcircleci, GitLab CI/CD, Jenkins, Tekton
云供应商Cloud Providers, Google Cloud, Microsoft Azure, AWS, IBM Cloud
容器ContainersDocker
容器平台/系统Container OrchestrationKubernetes, Openshift(基于Kubernetes)
监控Monitoring
将基础设施当做普通代码来写Infrastructure as Code(IaC)Ansible
版本控制Version ControlGit(Github, Gitlab)

如何学习一个新技术(举例)

当面对一个新技术的时候,回答DevOps灵魂三连问

  1. 所属概念
  2. 概念的目的?
  3. 工具是如何实现所属概念的?

举例:学习Ansible

  1. 所属概念
    将基础设施当做普通代码来写(Infrastructure as Code(IaC))
  2. 概念的目的?
    把Infrastructure当作普通代码来维护。如果写一个前端App,那么我们大概率会把代码都放到一个github repo里面,要运行App时跑npm start即可。同理,我们把infrastructure相关的代码也放到一个github repo里面,这样一来我们可以实现版本控制,自动化,共同编程和可重现性。
  3. 工具是如何实现所属概念的?
    Ansible将infrastructure的命令都写进yaml文件里。比起手动的写infrastructure(比如,在终端中运行docker container create来新建容器并跑一个前端App),我们把所有配置都写在一个yaml里,比如容器的内存大小,容器所用的镜像(Image)。然后用Ansible来执行该配置。

持续更新中,有什么流行或者新兴技术,欢迎补充 👏

更多推荐

如何成为DevOps工程师(初学者必读)