『Ops』运维基本技能树
这是昨晚例会上 ESON 的讲稿,然后我还康到了一本好书:https://book.hacktricks.xyz/
Ops
[TOC]
什么是运维
就是牛马, 当牛做马.
开发背锅侠, 生产事故擦屁股的
配环境的勾八
From WIki
是对技术类运营维护人员的统称。运维人员的职责是根据业务需要规划信息、网络、服务,通过网络监控、事件预警、业务调度、排障升级等手段,使服务处于 长期稳定可用状态。
基本技能树
Linux
这个还需要多说? 啥软件不是在服务器里的 Linux 的?
隔壁 Win Server 突然弹起
各种 Shell
各种命令
折腾 linux 基本上是运维入门的第一堂课
插播一条 如何 AddUser
到这个位置 基本就有一个 基础到不能再基础的 运行环境了
数据库
数据库基本逃不过 CRUD
高级点无非是 性能优化 建立索引 视图 等等
Mysql 关系型
会看 binlog 数据库数据恢复 备份 CRUD
Redis KV型
SET GET 查 烧操作很多 一般是作为后端第二个接触到的数据
MongoDB 文档型
文档 JSON 这玩意在你还不确定你的数据需要如何存储 或者设计表单的时候 非常好用
neo4j 图型
这种一般性开发是用不太到的 一般是专业需求
这里基本上你就可以调用这些存储资源 来进行最最基本的后端开发了
各类中间件
中间件是为应用提供通用服务和功能的软件。 数据管理、应用服务、消息传递、身份验证和API 管理通常都要通过中间件。 中间件可以帮助开发人员更有效地构建应用。 它就如同是应用、数据与用户之间的纽带。
Nginx Apache Tomcat等等
负载均衡
反向代理
证书校验
SSL
网关
Kong
消息队列
MQTT
其他设备
当你所具有的服务渐渐增加的时候 你会遇到这些问题
容器化
Docker
基本使用 审查处理
K8s 容器编排
这里挖个坑 有材料 而且很多
渐渐云原生…
云服务 云数据库
Serverless OSS 对象存储
你的服务渐渐增加 同时你所拥有的可支配资源也很多的时候
你需要你的服务可移植快速部署和统一管理的时候
当然 容器还有诸如
环境干净 快速启停 依赖少 方便移植 同时也惠及了开发
日志
可视化
管理平台
分布式收集 统一处理
经典 ELK
Grafana 经典数据可视化平台
这个阶段你所具有的服务已经非常成熟了 你需要更多的收集信息
然后对信息进行处理 比如 你需要对于一些细小的 Bug Error 进行排错 定位分析
对服务后台运行情况进行监控
与开发的交界处 Devops
Git
有什么好说的? 代码管理
当然不止 github
gitlab 自建 gitea 自建 等等
CICD
持续集成持续部署
一般这个玩意是要和自动测试一起服用的
不然就会产生类似 我本地就不跑了 我疯狂 Commit 代码 Push 上去服务器帮我搞 跑不起来就 再交
当然方便是方便
实现方法有很多
写 Github Action
Jenkins
DNS
域名管理 其实是负载均衡和服务发现的帮助者
就是来解决纯纯 IP 导致的一堆破事
CDN
加速 静态资源分发 源站隐藏 抗 DDOS CC
可不得推荐一手 Cloudflare?
包管理 依赖 镜像
maven pip 自建
docker 镜像 私有 image
虚拟化内网 以及接入
这里有点偏向于网工了
简单如 ZeroTIer TailScale Wireguard OpenVPN
如果都没用过 那么 学校 深信服 SSLVPN 就也是一个
复制如 RouterOS Cisco 产品 OSPF BGP …
公司体量足够大就会碰到这些 比如说 Google
与安全的交界处
代码静态审计 测试
CodeQL
SonarQube
其实是防止 仓库被提交 恶意代码 或者带漏洞的代码
身份验证 鉴权
IDaaS 身份验证即服务
Active Directory 活动目录
你的资产实在太多了 在公司体量下进行运作的时候 身份验证系统 和 资产管理 不可能每个资产就有一个 身份验证 更新也不会同步
这时候你就需要一个 类似于 目录的东西 可以查找 哪里哪里 有什么服务 有什么系统 谁访问什么 谁可以做什么
域
windows Domain
可以用 Samba 来使得 linux 加入该域
LDAP ; OAuth ; Kerberos; SSO
LDAP 轻量目录访问协议
OAuth 开放授权标准 做验证 提供信息 但是不提供密码的方案
Kerberos 基于票据系统 TGT 当然这玩意 是 MIT 的玩意
SSO 单点登录 将系统配置为信任另一个系统来进行验证 一个是 服务商 一个是身份服务商 可以和 OAuth 一起用
IR Incident Response 应急响应
硬件方向
IDC 机房管理
跳板机 防火墙 上网行为管理
JumpServer 运维跳板机(也有软件端的 No More SSH)
防火墙技术
服务器 交换机 路由器 三大件
未来企业 996 当牛做马的 程序员肯定不用学这个啦
世界的尽头
答案是 DevSecOps
如果你听完了上述这些
其实最后的最后
你会发现 就是完全是一个反复搭建 越建越大的过程
同时伴随着 分布式技术和统一管理 的一代代的革新
而归根到底为什么要用到这些东西
其本质原因就是 为了更好达到服务的长期可用