Skip to content

DevOps工程师

DevOps工程师

1. DevOps工程师的任务是什么?

  • 设计、构建、测试和部署可伸缩的分布式系统,实现从开发到部署的自动化
  • 管理代码库(如Git、SVN、BitBucket等),包括代码合并与集成、分支与维护、远程库管理等
  • 管理、配置和维护基础设施
  • 设计数据库体系结构和数据库对象,并同步各种环境
  • 设计、实施和支持DevOps持续集成和持续交付pipeline
  • 研究和实施新技术和新实践
  • 将流程、系统和工作流文档化,更新操作手册
  • 使用行业领先的服务创建和增强动态监视和警报解决方案
  • 持续分析手动执行的任务,这些任务自动化
  • 创建和增强基于Docker和Kubernetes的持续部署自动化

2. 谁能成为DevOps工程师?

  • DevOps是一个涉及的知识面非常广。例如,您可能来自编码或测试背景,也可能是系统管理员、数据库管理员或操作团队。在DevOps方法中,每个人都可以扮演一个角色。
  • 如果你具备以下的知识和/或专长,你就已经准备好成为DevOps工程师了:
  • 你拥有学士、硕士或理学学士学位(最好是计算机科学、IT、工程、数学或类似专业)
  • 2年以上软件开发经验,熟悉SDLC生命周期和精益敏捷方法(SCRUM)
  • 有较强的Linux/Unix和Windows管理背景
  • 使用面向对象或函数式编程语言(如Python / Ruby / Java / Perl / Shell scripting / Groovy或Go)进行系统开发
  • 系统级了解Linux (RedHat、CentOS、Ubuntu、SUSE Linux)、Unix (Solaris、Mac OS)和Windows服务器
  • Shell脚本和自动化的例程,远程执行脚本
  • 具有数据库管理经验,熟悉Mongo/Oracle或MySQL数据库
  • 强大的SQL和PL/SQL脚本
  • 有使用Git、GitLab、GitHub或Subversion等源代码版本控制管理的经验
  • 熟悉云架构,特别是Amazon Web Services(AWS)或谷歌云平台或Microsoft Azure
  • 对docker/或Kubernetes的容器使用和实现有很好的理解
  • 有使用Jenkins和GitLab进行CI/CD pipeline的经验
  • 数据中心管理,系统管理,监控,网络和安全知识
  • 有使用Ansible, Puppet and/or Chef进行自动化/配置管理的经验
  • 了解如何使用配置监视工具(如Nagios或Prometheus)监视代码
  • 基础设施和网络方面的背景
  • 关于RESTful api的广泛知识
  • 对网络和核心互联网协议(如TCP/IP、DNS、SMTP、HTTP和分布式网络)有扎实的理解
  • 优秀的书面和口头英语沟通能力
  • 自我学习,团队合作,愿意学习新技术,独立解决问题和交付结果的能力。

3. 相关的工具

  • 编程语言(C、Java、Perl、Python、Ruby、Bash shell、PowerShell)
  • 操作系统概念(资源管理)
  • 源码控制(如Git、Bitbucket、Svn、VSTS等)
  • 持续集成和持续交付(Jenkins, GitLab CI, CircleCI)
  • 基础设施即代码(IaC)自动化(工具如Puppet、Chef、Ansible和/或Terraform)
  • 管理服务器(应用程序、存储、数据库、基础设施、网络、web服务器等)
  • 应用程序、数据库、Web服务器、存储、基础设施、网络服务器
  • 网络和安全
  • 容器的概念(Docker)
  • 持续监视(Nagios和Prometheus)
  • 云(比如AWS、Azure、谷歌云)

4. 软技能

作为一个DevOps工程师,你必须是一个积极的团队成员,需要有学习和成长的愿望,优化流程并找到更好的解决方案。 由于DevOps涵盖的范围很广,所以最好专注于您的关键技能,并根据需要学习技术和工具。 理解问题/挑战,然后找到一个与此类似的DevOps解决方案。