DevOps 工程师成长日记系列二:配置

DevOps 工程师成长日记系列五:部署 原文地址:https://medium.com/@devfire/how-to-become-a-devops-engineer-in-six-months-or-less-part-5-deploy-83e790545c23 原文作者:Igor Kantor 翻译君:CODING 戴维奥普斯 让我们简要回顾下我们的 DevOps 之旅: 在第一篇,我们介绍了 DevOps 文化以及相关的基... 阅读详情

图片

原文地址:https://medium.com/@devfire/how-to-become-a-devops-engineer-in-six-months-or-less-part-2-configure-a2dfc11f6f7d
原文作者:Igor Kantor
翻译君:CODING 戴维奥普斯

前情提要

在第一篇文章中,我对 DevOps 工程师的工作定义是搭建一个数字化的全自动流水线来高效地将代码从编写环节部署到生产环境中:《DevOps 工程师成长日记系列一:必备知识与技能组合》。

但是高效地完成这项工作首先需要有一定的基础,如下图:

图片

同时还要对各类工具和使用这些工具所需的技能有所了解,才能做到事半功倍。

温馨提示:我们的目标是快速地学习下图中蓝色部分的内容,按从左到右的顺序,然后开始学习紫色的部分,同样是从左到右。整个流程分为六个模块,顺利的话每个月完成一个模块的学习,刚好六个月学完。

图片

在这篇文章中我们会 cover 整个流水线中的第一部分:配置(Configure)。

综述

所以在配置阶段到底是要我们做什么呢?

简而言之,就是我们写的代码需要跑在服务器上,在配置阶段我们所要做的就是在服务器上搭建适合我们的代码运行的基础环境。

在过去配置基础环境的过程是一个及其冗长、到处是坑、重复性高的痛苦经历。

现在由于我们拥有了云服务器这种高级服务,所有的基础环境设置都可以通过点击完成,当然有时候可能需要很多次点击。

但是,我们发现通过点击来实现配置环境也不是一个好主意,因为同样的问题仍然存在:

  1. 还是到处是坑(human error 无法避免)
  2. 没法控制版本(点击没办法存储在 git 里)
  3. 重复性高(更多的机器 = 更多次的点击)
  4. 同时还没法测试(完全黑箱,不知道点击后会不会把所有东西弄乱)

想象一下,当你需要给你的 dev 环境、QA 环境、Staging 环境和各个地区不同的生产环境做配置时所需的工作量,而且这项工作很快就会变得非常烦人和冗长。

图片

所以我们就需要一种新的方式来完成这个工作,而这个新的解决方案就是 “基础设施即代码(Infrastructure as Code)“ 这也是本文关于 DevOps 中配置环节的重点。

基础设施即代码(Infrastructure as Code)的最佳实践即所有归为计算资源编排工具类的工作都必须使用代码来完成。这里的计算资源指的是为了让代码跑起来所需要的一切,比如:服务器、存储、网络、数据库等等。

此外,这意味着我们部署基础设施的方式从各种点击变为:

  1. 在 Terraform 中编写所需的基础架构状态
  2. 将其存储在我们的源代码版本控制中
  3. 通过正式的 Pull Request 流程征求反馈
  4. 测试一下配置
  5. 通过执行代码来配置所需的资源

为什么选用 Terraform 而不是其他的呢?

图片

你现在可能会问为什么要选用 Terraform 而不是 Chef 或者 Puppet 或者 Ansible 或者 CFEngine 或者 Salt 或者其他什么呢?

好问题,而且这个问题已经在各个社区翻来覆去讨论过无数遍了,简而言之,我认为你应该学习 Terraform 有以下原因:

  1. Terraform 现在很火,这代表着会有很多相关的工作机会
  2. 相对于其他的来说,它比较容易学习
  3. 它有跨平台支持

当然这绝不代表着你选择了其他的工具就没法玩转了,相信每个工程师都有着自己对于工具的理解和选择。

SIDE NOTE:这个领域正在经历迅速发展并且可能会让人困惑,所以我想花几分钟时间谈谈最近的一些历史,以及我看到事情在往哪里发展。

传统意义上来说,Terraform 和 CloudFormation 这类工具是用来编排基础设施的,而其他像 Ansible 这类的工具是用来做配置的。

你可以想像成 Terraform 是一个打地基的工具,然后 Ansible 在地基上盖房子,在帮助你的代码部署到相应的环境。

图片

换句话说,通过 Terraform 来创建虚拟机,然后使用 Ansible 来配置和部署应用,过去都是这么搭配操作的。

然而,工具发展到现在,其实 Ansible 能干的事 Terraform 基本上也能做了,反之亦然。不过也别让这些事儿烦你,只需要知道现在 Terraform 已经是这个领域最重量级的选手,所以强烈推荐从 Terraform 开始学习。

事实上,Terraform + AWS 已经成为最火的技术需求之一了。

不可变基础设施(Immutable Infrastructure)

实际上,我预测 Ansible 这类配置管理工具的重要性会降低,而 Terraform 或 CloudFormation 等基础设施编排工具的重要性将会提高。

为什么呢?正是因为不可变基础设施(Immutable Infrastructure)概念的出现。

不可变部署是指永不改变已部署的基础架构的做法。换句话说,你的部署单元是 VM 或 Docker 容器,而不是一段代码。因此,你不会将代码部署到一组静态虚拟机,而是部署整个已经编译了代码的 VM。

不可变基础设施中所谓的不可变,即安装一次,不做修改,用过即扔。有点像一次性产品,或者可以称为即抛型。

不再需要给生产环境中的机器打补丁,直接部署一个新的已经打好补丁的机器就好了。

也没有必要区别生产环境和编译环境中 VM,所有的机器在不可变基础设施概念下都是一样的。

实际上,您可以安全地禁用对所有生产环境机器的所有 SSH 访问,因为已经没有任何事情可做 - 没有要更改的设置,没有要查看的日志。

如果能正确的使用,这是一个非常强大的模式,所以我强烈推荐!

注意:不可变部署要求将配置与您的代码分开。请阅读 12 Factor App 宣言( https://12factor.net/ ),其中详细介绍了这一点(以及其他很棒的想法!)。这是 DevOps 从业者必读的内容。

图片

代码与配置的分离非常重要 - 你也不希望每次轮换数据库密码时还得重新部署整个应用程序堆栈。所以,请确保应用程序能从外部配置存储(SSM / Consul / etc)中提取这些配置。

此外,您可以很容易地看到,随着不可变部署的兴起,像 Ansible 这样的工具扮演的角色就变得不那么突出了。原因是,现在只需要配置一台服务器并将其作为扩展组的一部分进行多次部署就可以实现大规模的自动化配置了。

或者,如果您正在使用容器,那么你应该从内心渴望使用不可变部署的。你肯定不希望开发容器与 QA 容器和生产容器不同。并且希望在所有环境中使用完全相同的容器。这可以避免配置偏差,并在出现问题时简化回滚。

除了容器之外,对于那些刚刚开始学习的人来说,使用 Terraform 配置 AWS 基础设施是一个教科书级的 DevOps 实践模式,也是成长为 DevOps 工程师的必经之路。

但是如果我需要查看日志来解决问题怎么办?好吧,您将不再登录虚拟机来查看日志,而是查看集中式日志管理的基础设施来解决问题。这同样使得你可以完全禁用远程访问,让环境变得更加安全。

图片
看到我自信的微笑了么

总而言之,我们的全自动 “DevOps” 之旅始于配置运行我们的代码所需的计算资源。实现这一目标的最佳方法是通过不可变部署。

最后,如果你还好奇从什么地方开始的话,就去试试 Terraform+AWS 的组合吧,这将是一个很好的起点。

译后记

对于国内的开发者来说,可以选择 Terraform + 腾讯云的组合尝试,具体可以参考 https://cloud.tencent.com/developer/article/1067230 这篇文章中提到的方式。

我们相信,在企业数字化转型落地过程中,DevOps 是企业软件开发模式革新的重要支柱。
CODING 作为国内领先的 DevOps 解决方案提供商,支持从需求到部署的研发全流程管理,涵盖了项目管理、代码管理、持续集成、制品库管理、测试管理、部署管理、缺陷管理、知识管理,帮助企业轻松将创意转化为创收。CODING 也会持续关注并分享软件研发领域最新理念与技术,与 DevOps 工程师一起成长。

Django实习生30天工程化成长路线图:从Hello World到生产级PR Django作为主流Python Web框架,其工程化落地远不止于基础语法和ORM操作,更涉及容器化环境搭建、CI/CD流水线集成、数据库性能优化及团队协作规范等系统性能力。理解Django项目在Docker+GitLab CI+pre-commit组合下的真实工作流,是掌握现代Python全栈开发的关键入口。本文基于一线技术咨询公司的新人Onboarding实践,解析如何通过月度切片式学习,建立环境确定性、识别N+1查询等典型ORM陷阱,并在真实故障中锤炼调试与归因能力。内容覆盖Django开发、Dock 阅读详情

相关推荐

Hermes Agent:支持自我进化的AI智能体运行时

AI智能体是能跨会话维持状态、自主调用工具并理解复杂意图的可执行实体,其核心价值在于脱离Prompt工程依赖,实现真实工作流闭环。Hermes Agent作为轻量级Agent运行时(Agent Runtime),不修改大模型权重,而是通过感知→规划→执行→反思→沉淀五阶段闭环,在应用层持续沉淀可复用的函数式Skill,形成越用越准的自我进化能力。它原生支持本地、Docker、SSH等六种执行后端,适配开发、测试与生产全环境,特别适合需稳定交付、安全审计与长期演进的企业级AI助手建设场景。

weixin_30307921的博客 555

DevOps工程师主要负责哪些事?需要具备哪些技能?

1. 工具平台开发 2. 流程实践落地 3. 技术预研试点硬实力:DevOps 技能发展路线图,根据这幅路线图,你要从编程语言入手,理解操作系统原理、系统性能、网络安全、基础设施即代码、CI/CD、运维监控和云技术等等 图片来自:DevOps Roadmap: Learn to become a DevOps Engineer or SRE............

魏波 5651

开发者如何用Obsidian构建高效知识库:模板、工作流与实战指南

在信息爆炸的时代,高效的知识管理是开发者提升核心竞争力的关键。知识管理不仅关乎信息的收集,更在于通过系统化的方法,将碎片化的技术点、项目经验和学习心得,转化为互联互通、易于检索和复用的结构化知识体系。其核心原理在于利用原子化、双向链接等理念,构建个人知识图谱,从而打破信息孤岛,实现知识的有效连接与增值。从技术价值看,一套好的知识管理系统能显著提升学习效率、加速问题排查,并助力经验沉淀与传承。在应用场景上,它尤其适用于系统化学习新技术栈、深度复盘项目与故障,以及管理日常开发中涌现的碎片化信息与灵感。本文探讨的

weixin_42561249的博客 270

什么是devops工程师? 你如何成为一个?

简而言之,Devops是一种文化和哲学,旨在将以前分开的开发 (创建应用程序的人)和操作 (确保这些应用程序按应有的方式工作的人)的孤岛统一为一个团队。 该团队使用持续集成,持续交付和测试 ,将对现有代码库的频繁增量改进发布到生产环境中。 因此,从逻辑上讲,devops工程师是具备为这样的团队服务所需的技能的人。 但是,像所有开发人员一样,很难确定开发人员工程师的确切定义,而且有人认为“开...

cxu0262的博客 1716

Open UI5 源代码解析之1386:Editor.js

本文分析了SAP OpenUI5项目中Editor.js文件的核心功能与设计思想。该文件位于sap.ui.integration.editor模块,是一个负责卡片配置编辑的总调度器,主要解决以下问题: 处理多源配置(manifest、designtime、manifestChanges等)的层叠关系 动态生成不同类型字段的编辑界面 支持企业级场景下的多角色协作(管理员、内容编辑、翻译等) 文件设计特点包括: 依赖结构清晰,涵盖工具层、数据层、UI层和编辑器生态 通过metadata定义丰富的产品边界(模式切

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 996

电路仿真软件PSIM简介

PSIM的基本使用操作...

qq_55203246的博客 7175

2024年DevOps工程师入门指南_devops入门到精通(1),2024年最新字节跳动最新开源

如果你现在的公司没有使用这两个,那就创建自己的账户并开始使用你不需要了解所有可用的AWS服务,但是你确实需要了解足够多的基础知识来讲述它们。正在学习DevOps的人和正在实践DevOps的人之间的区别在于,一个人可以使用任何工具来编写可维护的代码。因为经过了解之后才会知道哪些配置可能经常更改或者不同的应用程序之间配置可能有所不同,这样你就知道在你的代码中哪些东西可以作为变量暴露出来,而哪些东西可以硬编码。我从中学到一个重要的道理,就是固执地决定你知道做某事的最佳方法,对大多数人来说,不会影响到改变。

2401_83621136的博客 1170

DBeaver 实战:手动配置 PostgreSQL JDBC 驱动的高级技巧

本文详细介绍了在DBeaver中手动配置PostgreSQL JDBC驱动的高级技巧。针对企业内网、多版本数据库兼容等场景,从获取官方驱动文件、创建自定义驱动配置,到使用Maven坐标管理、连接参数调优及解决常见连接问题,提供了完整的实战指南,帮助开发者实现对数据库连接环境的精准掌控。

apple5的专栏 836

接下来,90%的运维人要失业了|K8s、DevOps、AIOps 是新方向|未来20年稀缺人才

K8s 不只是“运维要会”,而是每一个与“应用上线、部署、性能”相关的技术人,都该掌握的通用能力。📢无论你是开发、测试、DBA、架构还是运维、产品、项目,只要你想走得远,K8s 这块“砖”,迟早要搬!记住K8s 不只是一个开源项目,更是你与“高薪岗位”之间的技能通道。扫码报名直播课免费听带你真正精通k8s、DevOps、AIops等云原生技术▲报名成功加助教老师微信、进班级群领取【课程资料+超值全勤奖】在这个快速发展的时代,掌握K8s意味着你已经站在了技术的前沿,拥有了无限的可能。

刘小爱的博客 1514

不止于HTTPS请求:用VS2022编译的libcurl玩转文件上传和代理设置

本文详细介绍了如何使用VS2022编译的libcurl库实现文件上传和高级代理配置。通过实战代码示例,展示了多部分表单上传、二进制数据上传以及各种代理设置技巧,帮助C++开发者提升网络编程能力。

weixin_28595749的博客 206

天线学习笔记——串馈网络设计

工程中通常更倾向于使用50Ω、70.7Ω、100Ω的固定阻抗的带宽,实际中可以分别使用固定阻抗的带宽和计算得到的带宽进行仿真,观察二者的性能,取性能更优者即可。本系列是一个记录天线设计的笔记,分享出来也希望能够帮助到大家,后续本系列文章还会不定期更新,如有需要可关注,任何问题均可在评论区或私信提出,看到必回。如果对大家有帮助可进行打赏哦~

Ethan的博客 7877

二蛋赠书六期:《Linux管理入门经典(第8版)》

主要内容 • 安装和配置Linux,包括Fedora、Ubuntu、CentOS、openSUSE、Debian和RHEL的z新发行版。 • 设置及管理核心系统服务、守护进程、用户和组。 • 从源代码或二进制包管理软件应用程序。 • 定制、构建或修补Linux内核。 • 理解和管理Linux网络栈和网络协议,包括TCP/IP、ARP、IPv4和IPv6。 • 最小化安全威胁并使用Netfilter(iptables和nftables)和Linux构建可靠的防火墙和路由器。 • 创建及维护DNS

二蛋的博客 9324

GVINS数据采集(u-blox fp9 + D435i)

1、配置千寻的RTK账号 采集数据当天购买千寻的RTK账号,然后在Window下,输入账号和密码 (具体的步骤如之前面连接所示),查看u-center软件上的信息,确保接收机可以收到RTK信息; 2、查看Linux系统下u-blox是否可以正常接受GPS信号和RTK数据流 1、GPS信号信息 // 打开端口 1 cd ublox_f9p/src // 或者在终端1下也可以 source devel/setup.bash r.....................

努力努力努力 2609

误泄公司代码、疫情被裁,一个程序员的生存日记

“我是如何从每一次失败中成长起来的。” 身为程序员,我们往往都了解大神级程序员的故事。比如很小就开始编程,在 11 岁时就创建了第一家能盈利的网站,16 岁上大学、17 岁成立公司、23 岁成为亿万富翁。 我们喜欢这些故事,喜欢这些英雄。 他们以高产的编程项目和引领潮流的方式激励着我们。从解决复杂的 NP 问题到筹集数百万的 A 轮融资,他们似乎从来不会失误。 不过,现实是这样的: 每一个开发者,甚至是这些超牛逼的大神级开发者,都会把事情搞砸,然后克服挫折。不同...

GTH07399的博客 529

SAP PCE 到底有没有 AI 能力:从标准功能、Joule、ABAP 扩展到项目落地的完整解读

摘要:SAP S/4HANA Cloud Private Edition(PCE)已深度集成AI能力,主要体现在三个方面:1)标准业务流程中的AI辅助功能(如财务分录生成、维修单据处理);2)通过Joule提供的自然语言交互入口,支持业务导航和部分事务处理;3)开发者可通过ABAP AI SDK与BTP平台集成实现扩展。PCE不是独立AI平台,企业级自定义AI需结合SAP BTP实现。AI能力已深度融入财务、制造等业务场景,但关键业务仍需人工审核。(149字)

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 330

Proxmox VE 9 更换源

创建一键更换Proxmox VE 9.0源的Bash脚本,实现快速替换软件源。脚本需包含订阅提醒关闭功能,兼容Proxmox VE 9.0系统,执行命令为bash /proxmox_9.0_Repo.sh。该工具可简化源配置过程,自动处理系统更新源替换及订阅提示屏蔽,适合需要快速配置Proxmox环境的用户使用。

极致,细节 4984

《凤凰项目》读书笔记(一)

这是学习笔记的第 2241篇文章读完需要9分钟速读仅需7分钟在Devops方向上,《凤凰项目》这本书无疑是一座灯塔。多年之前使用电子书看过一遍,只看了个热闹,没想到这几年时间忘记的干干净...

杨建荣的学习笔记 1534

验证 helm Chart 的正确性

验证 helm Chart 的正确性

小橙子的笔记屋 281

2025 年广东省职业院校技能大赛“云计算应用”技能测试样题(二)

某企业根据自身业务需求,实施数字化、智能化转型,规划和建设基础架构算力平台,平台聚焦“DevOps 开发运维一体化”和“数据驱动产品开发”,拟采用开源OpenStack 搭建企业内部私有云平台,开源 Kubernetes 搭建云原生服务平台,开源 KubeEdge 构建边缘计算、DeepSeek 开源大模型构建智能计算。基于数字化平台底座,面向业务开发边缘计算云应用与智能体应用。

我是网络安全兼技能大赛工程师,专注网络安全技术学习与技能大赛实战!持续分享最新的技术文章,帮你少走弯路,一起在技术赛道上进步~ 1125

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

2025 年广东省职业院校技能大赛“云计算应用”技能测试样题(五)

某企业根据自身业务需求,实施数字化、智能化转型,规划和建设基础架构算力平台,平台聚焦“DevOps 开发运维一体化”和“数据驱动产品开发”,拟采用开源OpenStack 搭建企业内部私有云平台,开源 Kubernetes 搭建云原生服务平台,开源 KubeEdge 构建边缘计算、DeepSeek 开源大模型构建智能计算。基于数字化平台底座,面向业务开发边缘计算云应用与智能体应用。

我是网络安全兼技能大赛工程师,专注网络安全技术学习与技能大赛实战!持续分享最新的技术文章,帮你少走弯路,一起在技术赛道上进步~ 1665

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

2025年广东省职业院校技能大赛“云计算应用”技能测试样题(四)

某企业根据自身业务需求,实施数字化、智能化转型,规划和建设基础架构算力平台,平台聚焦“DevOps 开发运维一体化”和“数据驱动产品开发”,拟采用开源OpenStack 搭建企业内部私有云平台,开源 Kubernetes 搭建云原生服务平台,开源 KubeEdge 构建边缘计算、DeepSeek 开源大模型构建智能计算。基于数字化平台底座,面向业务开发边缘计算云应用与智能体应用。

我是网络安全兼技能大赛工程师,专注网络安全技术学习与技能大赛实战!持续分享最新的技术文章,帮你少走弯路,一起在技术赛道上进步~ 1402

2025年广东省职业院校技能大赛“云计算应用”技能测试样题(三)

某企业根据自身业务需求,实施数字化、智能化转型,规划和建设基础架构算力平台,平台聚焦“DevOps 开发运维一体化”和“数据驱动产品开发”,拟采用开源OpenStack 搭建企业内部私有云平台,开源 Kubernetes 搭建云原生服务平台,开源 KubeEdge 构建边缘计算、DeepSeek 开源大模型构建智能计算。基于数字化平台底座,面向业务开发边缘计算云应用与智能体应用。

我是网络安全兼技能大赛工程师,专注网络安全技术学习与技能大赛实战!持续分享最新的技术文章,帮你少走弯路,一起在技术赛道上进步~ 1366

2025年广东省职业院校技能大赛高职组“云计算应用”技能测试样题(一)

某企业根据自身业务需求,实施数字化、智能化转型,规划和建设基础架构算力平台,平台聚焦“DevOps 开发运维一体化”和“数据驱动产品开发”,拟采用开源OpenStack 搭建企业内部私有云平台,开源 Kubernetes 搭建云原生服务平台,开源 KubeEdge 构建边缘计算、DeepSeek 开源大模型构建智能计算。基于数字化平台底座,面向业务开发边缘计算云应用与智能体应用。

我是网络安全兼技能大赛工程师,专注网络安全技术学习与技能大赛实战!持续分享最新的技术文章,帮你少走弯路,一起在技术赛道上进步~ 1483
上一篇: 如何使用 CODING 进行瀑布流式研发
下一篇: DevOps 工程师成长日记系列三:版本
腾云 CODING
博客等级 码龄8年 203粉丝 260原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值