写点什么

作为离“全栈”最近的 DevOps 人员,我们都该做些什么?

  • 2019-08-19
  • 本文字数:2829 字

    阅读完需:约 9 分钟

作为离“全栈”最近的DevOps人员,我们都该做些什么?

在本文中,我主要解释解释自己的日常工作有哪些内容。顺带一提,我在这一行做了快三年的顾问,但从来没有认真定义过自己的工作内容和角色定位。


DevOp 作为一个术语,承载着非常广泛的含义,不同的人或者组织而言对此也有着不同的理解方式。所以我不敢妄言 DevOps 工程师的所谓规范定义,或者是将其严格限定为某种工作角色/职位或者文化运动。

个人动机

之所以想起写下这篇文章,是因为有时候我发现自己也闹不清在工作里到底做了什么。因为我不是什么 Java 专家、不是一线开发者、不是系统管理员,也不同于大家所熟知的任何常见角色。另外,我甚至很难被准确划入任何一个严格限定的知识领域/单一专业方向(在这方面,我可能跟系统管理员有点类似)。


我在 Reddit 网站的 DevOps 频道中看到过一篇文章,受此启发,我想试试能不能通过一篇博文说清自己的工作到底是什么。好了,下面进入正题。


作为 DevOps 顾问,我到底在做什么

背景说明

在正式加入目前这家公司之前,我曾在 IT 领域拥有一些短期从业经历——前后大约 7 个月。在这轮夏季实习当中,我拿出了 4 个月左右积累自己的全栈开发经验,包括使用 APS.NET 框架以及 Razor 后端模板,外加 kickout.js 以及使用 svn 作为 SCM 等等。在此之后,我把另外 3 个月花在初级研究员职位上。最终与虚拟化建立关联,是在一个研究项目当中,当时我们利用西门子的 Jailhouse 项目探索虚拟化技术在 RTOS 中的影响。该项目能够提供虚拟化单元(这是我们自己起的名字),用以访问无法在其它单元之间共享的硬件。这是我第一次接触管理程序,了解它们的类型以及工作方式。在后来真正走上 DevOps/基础设施岗位之后,凭借着实际体会,我坚信虚拟化将成为其中的关键概念。

我的 DevOps 发展路线图

目前,我在一家咨询企业负责改进开发流程与工作流程,我们通过基础设施自动化与整体思维方式的转变帮助 IT 企业客户改善组织流程。


自从接触工业物联网环境以来,我获得了更灵活的施展空间,包括随意选择语言、框架——总之,只要对业务架构以及业务需求具有实际意义,我都可以做出自己的决策。


在项目当中,我最终使用 python 配合 flask,这也是我第一次接触 Docker;此外,我还负责管理网络、工业协议、面向 arm 设备的交叉编译、RAM 资源优化,以及思考如何加强软件项目对物理环境下各类挑战的抵御能力(例如断电、网络中断等)。与此同时,我还利用 Open ERP 开发出一个内部项目(名为 ODOO),并利用 Python 脚本对其进行自动化配置(ODOO 同样使用 Python 编写而成)。


从这里开始,我转向咨询岗位,并由此接触到配置管理以及 Ansible。此外,我还利用 Vagrant 配合 LXC(而后转向 Docker)以及 Ansible 配置机制,确保不同开发结果能够在开发人员的机器上拥有相同的运行状态。

配置管理

很多朋友可能拥有配置管理经验。但为了避免没接触过这方面工作的读者搞不清状况,这里我多解释几句。在编写这类任务时,我们需要拥有完整的基础设施与开发环境,同时具备操作系统知识、了解其特性、熟悉其脚本(从 bash 等 powershell 等等)。而最重要的,无疑是软件架构的全面知识,这是一切 DevOps 岗位的必然要求。另外,熟悉最新工具——虽然简历里说要求什么五年的工具使用经验,但实际上好多工具正式推出才一年左右。当然,大家明白其中的意思就行,包括熟知软件应该如何工作、了解其已知模式以及工具语法等。


由于 DevOps 岗位跨越整个组织结构,因此我们必须同时了解如何编程、了解网络原理、了解虚拟化知识、了解软件等等。在日常工作当中,我还把很大一部分时间投入到代码粘合当中。

CI/CD

使用 CI/CD(持续集成/持续交付)工具,并在源代码管理方面获取 IAC(基础设施即代码)以及应用程序代码。为了实现这一点,我需要经常用到 git 以及大量相关工作流程,同时利用 groovy 构建同事们易于理解的 yaml 配置,进而实现 Jenkins 的自动运作与配置。这实际是 DevOps 工作中的一大日常组成部分,虽然我已经不再像过去那样经常使用 Ansible,CI/CD 工具及其流水线仍是个需要经常复习提升的技术方向。

安全与访问控制

最后,我还经常需要面对身份验证、授权、使用 LDAP、Keycloak(及其所有集成,、SAML、Oauth 等);虽然有很多替代性工具,但 Keycloak 仍然非常重要。毕竟三个 A(即授权、认证与访问管理)解决方案,特别是 keycloak,绝对是一类不可或缺的常备工具。

基础设施即代码

除了 Docker、Vagrant 以及 Ansible 等,我最近也开始拉钩 eTerraform,并短暂使用过一阵子 DloudFormation。而且除了使用 ESXi 的内部环境之外(我还没对其进行自动化升级),总有某些云基础设施需要实现自动化,在这方面我的职能角色开始变得比较模糊。不少企业需要 Terraform 专家,或者是 Azure DevOps 管理员乃至 AWS 负责人之类;但这些都不是最重要的,这些具体的某一种技能不会是 DevOps 职位的全部。否则,我们需要的只是 Terraform 专家/Azure 管理者这类类似于云系统管理员的职位,而不是真正的 DevOps 角色。

负载均衡器与反向代理

再有,大家应该熟悉 Nginx、HAProxy 或者 Traefik 的配置方法,及其实例(Docker 或其它)格式或安装技能。我曾经配置过不少负载均衡器,大多数作为反向代理使用,但我目前还没遇到过成规模的 ELB 或者是其 Azure 配置任务。


哦,对了,在这方面,证书管理也是一类躲不开的常见工作。

应用程序开发

最后但同样重要的,自然就是开发工作了。我目前在使用 Java 与 JavaScript 进行全栈开发。我认为作为一名 DevOps 人员,再加上完整解决方案这一需求背景,我必须成为一名出色的工程师加程序员。毕竟 DevOps 的原则就是“谁构建,谁运行”——也就是说,我需要编写应用代码行、支持基础设施代码、打理负载均衡器、完成应用程序的部署与 QA 流水线构建工作。

数据库

好吧,差点忘了数据库这码事。ElasticSearch、PostgreSQL、MySQL 等都很常见。虽然我不是什么数据库管理员,但最终还是得接手相关配置工作,包括管理其连接、ACL、备份等等。当然,我还远远称不是 SQL 专家,而且也会尽量避免在数据库或者 AWS 专家这些方向上把路走窄。

员工心态

到目前为止,我已经谈到很多语言与不同的环境。但在大多数情况下,除了编码工作之外,我还是得跟同事们打交道。我的一部分重要工作,就是帮助其他工程师建立起 DevOps 思维模式、简化工作内容、让他们的生活更轻松并在整个组织之内运行他们的应用程序,最终弥合开发人员与运营团队之间的差距。

内容总结

如果大家不想浪费时间从头读下来,那一句话总结:DevOps 人员,需要什么技术都懂一些。正因为如此,DevOps 有时候会被称为万金油或者架构大师。当然,我觉得自己完全称不上什么大师,在成长方面还有很长的路要走。


希望大家喜欢这篇文章,也希望它能帮助大家解决“DevOps 人士到底在做些什么”这个难题。当然,如果各位已经是这个岗位上的一员,那么您可能正与我经历类似的工作体验。


感谢大家的宝贵时间和耐心:)


下面是我整理出的,优秀 DevOps 人士的发展路线图:



原文链接


What do you do as a DevOps?


2019-08-19 16:1213833

评论 1 条评论

发布
用户头像
轨迹竟然高度相似!!!
2019-08-21 17:26
回复
没有更多了
发现更多内容

阿里云发布《升舱-数据仓库升级交付标准化》白皮书

Lily

IReport导出PDF字体加粗失效

源字节1号

软件开发 前端开发 后端开发 小程序开发

可观测性提升软件工程质量,观测云出席2022 QECon全球软件质量&效能大会

观测云

TiFlash 源码阅读(五) DeltaTree 存储引擎设计及实现分析 - Part 2

PingCAP

TiDB TiDB 源码解读

nacos注册中心之服务地址动态感知

急需上岸的小谢

7月月更

2022第十四届南京国际智慧城市|物联网|大数据博览会

AIOTE智博会

南京智博会 物联网展览会 智慧城市展览会

人工智能展会|2022第十四届南京国际人工智能展览会

AIOTE智博会

人工智能展览会

智慧灯杆展会|2022南京国际智慧灯杆及智慧路灯展览会

AIOTE智博会

AntDB数据库产品入选中国信通院《全球数据库产业图谱(2022)》

亚信AntDB数据库

国产数据库

兼容认证|青云QKCP与观测云完成产品兼容性互认证,携手打造云原生可观测能力

观测云

RKE vs. RKE2:对比两种 Kubernetes 发行版

Rancher

Kubernetes k8s rancher

云生态大会,随“峰”而来!

天翼云开发者社区

设计微服务安全架构

Damon

7月月更

【等保常见问题解答】等保测评机构能帮忙做等保整改吗?

行云管家

网络安全 等保 等保测评 等保整改

2022第十四届南京国际智慧工地展览会|智慧工地展

AIOTE智博会

智慧工地展览会

百度工程师眼中的云原生可观测性追踪技术

百度Geek说

Java 云原生

精品方案|海泰云密码应用服务解决方案 打造安全合规的云上应用

电子信息发烧客

绿色低碳天翼云,数字经济新引擎!

天翼云开发者社区

云计算 大数据 AI 数字化转型

开源demo| ARCall 小程序开源示例发布

anyRTC开发者

小程序 音视频 视频通话 开源demo ARCall

IT运维管理指什么?如何建立有效的IT运维管理系统?

行云管家

运维 IT运维 服务器运维

iOS中内存管理(ARC)

NewBoy

ios 前端 移动端 iOS 知识体系 7月月更

超实用转型攻略!《2022央国企云原生落地实用指南》重磅发布(附下载链接)

York

云原生 系统架构 数字化转型 信创 国资委中央企业

从0到1 拿下C语言—程序结构及使用示例

一碗黄豆酱

最右×微帧,高质量的HEIF图片编码压缩技术

微帧Visionular

计算机视觉 HEIF 视频编解码 图片压缩 WebP

C#/VB.NET在 Word 中插入水印

Geek_249eec

C# word 添加水印 VB.NET

数据治理笔记

老猎人

2022第十五届南京国际工业自动化及工业机器人展览会

AIOTE智博会

如何提高LED显示屏清晰度?

Dylan

LED显示屏 led显示屏厂家

CentOS 8里的这个功能,天翼云SFS弹性文件校准了

天翼云开发者社区

Centos 7 CentOS 8 弹性文件

云原生平台,让边缘应用玩出花!

天翼云开发者社区

CDN 云平台

算法题每日一练---第3天:一步之遥

知心宝贝

算法 前端 后端 云开发 7月月更

作为离“全栈”最近的DevOps人员,我们都该做些什么?_DevOps & 平台工程_André Ilhicas dos Santos_InfoQ精选文章