【AICon】探索RAG 技术在实际应用中遇到的挑战及应对策略!AICon精华内容已上线73%>>> 了解详情
写点什么

作为离“全栈”最近的 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:1213725

评论 1 条评论

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

知识库对企业的意义

Baklib

推荐 7 个学习 Web3 的开源资源

devpoint

blockchain Solidity web3 7月月更

Serverless实战——2分钟,教你用Serverless每天给女朋友自动发土味情话

Serverless Devs

#Serverless

经验分享|编写简单易用的在线产品手册小妙招

Baklib

五、HikariCP源码分析之初始化分析二

阿白

数据库 源码解析 HikariCP 源代码 连接池

leetcode122. Best Time to Buy and Sell Stock II 买卖股票的最佳时机 II(简单)

okokabcd

LeetCode 数据结构与算法 贪心算法

十一、HikariCP源码分析之HouseKeeper

阿白

数据库 源码解析 HikariCP 源代码 连接池

互联网基石:TCP/IP四层模型,由浅入深直击原理!

wljslmz

计算机网络 TCP/IP 网络技术 OSI模型 签约计划第三季

你想怎么使用 Serverless 函数计算?(评测赢好礼 )

Serverless Devs

活动回顾 | 大咖云集“开源安全治理模型和工具”线上研讨会

安势信息

开源安全 供应链攻击 SBOM SLSA 软件供应链安全

纯css实现:单行文本的打字机动画效果

南极一块修炼千年的大冰块

7月月更

一、HikariCP源码分析之获取连接流程一

阿白

数据库 源码解析 HikariCP 源代码 连接池

数据安全建设

奔向架构师

数据资产 7月月更

新型LaaS协议Elephant Swap给ePLATO提供可持续溢价空间

BlockChain先知

2022中国物流产业大会暨企业家高峰论坛在杭州举办!

联营汇聚

7 行代码搞崩溃 B 站,原因令人唏嘘!

Python猫

人社部公布“数据库运行管理员”成新职业,OceanBase参与制定职业标准

OceanBase 数据库

高性能数据访问中间件 OBProxy(三):问题排查和服务运维

OceanBase 数据库

八、HikariCP源码分析之ConcurrentBag一

阿白

数据库 源码解析 HikariCP 源代码 连接池

Apache Doris 1.1 特性揭秘:Flink 实时写入如何兼顾高吞吐和低延时

SelectDB

数据库 flink 数据仓库 Doris 数仓

面向大数据存算分离场景的数据湖加速方案

Baidu AICLOUD

数据湖 对象存储 元数据 存算分离 层级namespace

不要再用if-else!

Jackpop

六、HikariConfig配置解析

阿白

数据库 源码解析 HikariCP 源代码 连接池

SQL 改写系列七:谓词移动

OceanBase 数据库

九、HikariCP源码分析之ConcurrentBag二

阿白

数据库 源码解析 HikariCP 源代码 连接池

MIT TR50榜单公布 《麻省理工科技评论》评价毫末智行是AI自动驾驶界的颠覆势能

科技大数据

智能车

二、HikariCP源码分析之获取连接流程二

阿白

数据库 源码解析 HikariCP 源代码 连接池

三、HikariCP源码分析之获取连接流程三

阿白

数据库 源码解析 HikariCP 源代码 连接池

四、HikariCP源码分析之初始化分析一

阿白

数据库 源码解析 HikariCP 源代码 连接池

怎么实现您的个人知识库?

Geek_da0866

七、HikariConfig初始化分析

阿白

数据库 源码解析 HikariCP 源代码 连接池

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