Appearance
基础设施即代码-模型启动的 DevOps
腾讯云推荐的基础设施即代码,也不怎么样
在四月的某一天,我看公众号“腾讯云开发者”有个荐书活动,其中有一本《基础设施及代码-模型驱动的 DevOps》标题比较有趣,也符合想要研究的方向(网络设备以及服务的自动发现和管理)。于是就买了这本书,结果买了之后发现大失所望
这本书是在京东买的,原价我记得差不多 50 多还是 67?原本以为是一个大部头的使用手册,结果发现是一本翻译劣质的小说。一眼丁真,鉴定为《凤凰项目》看多了,只会逮着一个模板抄。比起副标题点名就是介绍一个故事而且比较明确的借鉴意义的《凤凰项目》,这本书大概更像是一个劣质模仿者
故事梗概
以下每一段都是一章的内容
鲍勃是 ACME 公司(我还以为是签发证书的那个公司)的一个网络工程师,他因为使用传统的网络管理方式和缺少足够的设备来搭建测试环境,导致升级割接和回滚均失败了
关键网络设施的操作不应该依赖某个关键的“英雄”工程师(怎么这么像防御性编程),应该将这种关键业务操作瓶颈进行 DevOps 改造
基础设施的改造通常非常的麻烦,因为需要在数千台设备的维度上整合串口、CLI、API 等多种操作方式
对于规范审计检查等负责的整改标准,传统的使用文档记录的方式难以维护和执行。最好通过代码来描述,并且通过 ansible 等自动化工具来执行变更
但是将基础设施通过代码管理有一个巨大的安全风险,错误配置的代码会以惊人的速度瘫痪整个网络。所以在 DevOps 改造中需要做好审查和测试,最好使用网络模拟软件先验证一遍,同时变更也需要做好性能监测
推荐使用 GitHub 来管理基础设施的代码,并通过 Action 来自动触发部署和测试,但是由于网络模拟软件在私有网络内部,因此需要注册自托管 runner,通过 Action 运行在私有机器上的方式来实现私有化环境自动化测试(宁是本地连个代码仓库都没有的吗?)
DevOps 需要有一套新的组织和领导者来引导这个过程,并且使用自动化的文档管理、项目管理、代码管理工具来提升效率
优点
先说优点,根据我在相关行业的经验,这本书的内容网络设备的日常维护工作基本一致(就是这么大个公司居然没人审核,也是比较搞笑),而且比较的通俗(没有易懂)
缺点
这本书虽然看起来把整一套基础设施即代码串起来讲,但是只是在配置方面做了主要的说明,也没有介绍书中以来的 ansible、jinja2、yaml 等工具或代码的具体使用方法。像是文中提到的项目管理如何进行监测都没有说,全书大部分的笔墨都落在了大段大段的配置文件展示上
看上去给了非常详尽的配置,但是仔细想想,这本书里完全没有提到“你”该如何配置自己的系统,毕竟你不是“鲍勃”,没法直接用书中的代码配置自己的基础设施。如果想要调整书中的代码做适配?对不起,做不到
我其实非常的不理解,ansible,数据模板化、openconfig 都是网络运维行业中经常接触的内容,如果是面向传统网络行业的读者,那么本书介绍了大量的基础内容。如果是充当一本工具书,这本书里既没有设计规范,也没有用到的工具的使用指南
把公司内部私有网络配置和代码放在这种非常高危的风险点我就当是演示需要,不做过多批判。实际生产环境中这些都是属于机密信息,应该仅限内网存储!
还有很多不应该的翻译问题,且不提很明显的文字内容输入错误和类似“我要用靴子来狠狠踢你的屁股”这类的翻译腔,随便列举几个。还有一些暴露出对提到的工具完全不理解的地方,比如说 python 的 docstings 不是能够自动生成文档的工具
- 开关:Switch 不只是指老任的游戏机,还有一个更加令人熟悉的名字,交换机
- 名称服务器:暂且不提已有明确的 DNS 缩写,你给一个配置文件翻译什么?
- Cisco 建模实验室:中文名是思科建模实验室(Cisco Modeling Labs),在文章中,这个半翻译的名称和 CML 共同出现
- “自托管”运行器:Github 用户自己提供的 runner(Action 运行于 runner 上),这翻译看得一头雾水
点评
原本我打算找一个关于基础设施即代码的规范类书籍作为参考,结果看了腾讯云的推荐买了这本书之后大失所望。这本书不像是《凤凰项目》那样,教会你怎么做,如何做
它似乎把全流程都介绍了一遍,但是仔细想想又没说什么有价值的东西,就仿佛你吃了一个纸糊的面包,白吃了。这和我看到的很多内容劣质的《凤凰项目》模仿者一样,不知所云
这本书我准备放到工位上的书架充门面,等下次搬位置嫌太沉了再丢掉。要不是 59 买的,我早就把这玩意扔垃圾桶了
注:工位塞不下了,准备用来折磨碎纸机了。还是网页版书籍好啊,家人们