技术运营的初入指南
什么是技术运营,从字面上来说,就是使用利用技术做服务的人,或者是说直接能操作技术的人。他们不是开发,开发是创造技术的人,他们在工作中,可能是DBA,可能是运维,可能是SA。他们是上层的技术使用人员,他们不编码创造实际的技术,但是他们懂得维护,使用,规划,让技术能够被使用,服务于更上层的设施。随着时代的发展,技术运营也在不断的改变着,可能现在大家说云时代,云原生,技术运营是不是没用了,必然不是,只是技术的升级,让我们面向的技术发生了改变。我们必然要顺应的时代的潮流,构建新时代的技术运营之路。
本文只阐述业务运维的技术运营初入
技术运营之路的发展
谷歌SRE 现代技术运营之路的圣经
谷歌SRE 讲述了谷歌到现在为止,是如何支持谷歌全球系统的模式和方法。让我们知道了在一个复杂系统的公司中,该如何去构建我们的技术运营之路。
谷歌SRE虽然详细的阐述了谷歌在技术运营道路上的探索和实践,但确是大部分公司不太能够复制的。
谷歌SRE有两种人员
- 全职的开发人员
- 一半开发,一半负责运营事务的人员
也就是说要构建和谷歌一样的技术运营体系,我们需要将现有的运维人员体系升级,改头换面。这需要付出比较大的成本。特别是中国国内公司大部分的技术运营部门,主要以运营事务为主,基本没有成体系的开发能力。难以构建出类似的SRE体系。
为什么我们讲技术运营而不是技术运维
两者的区别关键
运营 | 运维 |
---|---|
主动的 | 被动的 |
长期可持续的 | 短期不可持续 |
积极前进 | 稳定固守 |
改进 | 维护 |
长期以来,传统运维一直有着右边的缺陷,因为大部分的运维部门一直是执行的角色,很难有主观性,
- 按操作手册执行
- 不出事就行
- 固步自封
- 更新迭代缓慢
长期的刻板印象,导致大部分人对这一领域存在偏见。
但是其实从谷歌SRE的输出来看,技术运营其实是公司长效运营的重要支撑领域, 我们可以更好的维护系统,以及如何做到更加稳定更加高效的持续运营之路。
所以我们更应该转换我们的思维方式,发挥我们的长处。从被动向主动,更加积极的从业务出发,发展迭代处于自己的技术运营之路。
- 贴近业务
- 宏观上的了解
- 底层上的领悟
运维的时代挑战
每个时代都有各自时代的挑战。
物理机时代
其实我们的一开始的运维人员都是直接面对机器,操作的机器都是实体机器而去都是物理机器的时代,我们面临的就是
- 利用率不高
- 难以合理自动化
- 机型差异大
- 需要关注硬件状态
虚拟机时代
随着时代的发展,我们已经意识到物理机的缺陷,所以开始发展出了虚拟化技术,即一台物理机器可以运行多个操作系统,而且能够共享资源。这样就带来了
- 利用率开始提高
- 需要关注不同虚拟化的差异
云计算时代
云计算时代的目标,就是将我们的计算和存储做到按需使用,即水和电一样,用到多少,付费多少。单其实一开始的云计算目标,也还是我们虚拟化技术的发展导致的,我们将单机的虚拟化技术升级到集群,机房级别的虚拟机调度,创建,共享。
- 按需使用
- 云上共享资源的问题
- 潜在的性能问题
云原生时代
在云原生的时代,关注已经从机器资源脱离,我们需要面对更加抽象的目标 计算,存储,应用,发布模式也随着转变
- 不在面向机器运维
- 面向更加抽象的目标 应用 容器 serverless等
- 声明式描述
- 不可变基础设施
技术运营(运维)之路的发展方向
本章我们将阐述,技术运营在未来的发展方向。
持续交付&持续部署(CD)
这些工作其实一直是我们的核心工作,我们一般的流程就是开发构建交付产物之后,我们能够高效快速的部署到服务器上面。
基于虚拟机&物理机
基于虚机的交付方式,一般要求我们的构建产物为可执行的实际二进制等。我们需要将对应的产物分发到我们的目标机器上。然后进行批量的启动,reload
, 或者重启等操作。或者就是向我们的目标客户交付我们包装过的安装包等。
我们需要面对的是
- 产物分发
- 配置管理以及下发
- 更新方式
- 进程管控
- 版本管理
- 流量控制
云原生时代的交付
云原生的交付,一般交付的产物就是容器镜像,以及对应的声明式配置。
- 需要规范镜像tag的版本交付
- 云原生的发布方式
DEVOPS
DEVOPS是现在非常火的一个概念
以及上述我们所讲的谷歌SRE体系其实就是devops在谷歌的实践之路
但是我们其实对DEVOPS一体化存在许多的理解
DEVOPS左移
开发开始负责运维的工作,即团队内不存在运维,其实就是我们需要构建一个一体化的发布流程。我们只需要简单的推送代码,构建,灰度,点击发布,就ok,不在需要关注实际的机器。这个只存在于基础完全标准话的公司,有着标准的体系。
DEVOPS右移
即运维开始开发,运维开始开发,就是做一些辅助性的系统,或者是工具,即我们在脱离繁琐的体力工作之后,我们就可以极高的提高沉淀我们的生产力
- 作业系统
- 发布系统
- 代码检查
- 流程系统
- 等
但是运维做开发,有一个前提,就是我们需要一个完善的paas平台帮助运维去快速构建应用系统,减轻心智负担,才能很好的做到运维向开发的转型。
海量自动化
海量自动化,其实该如何理解,其实就是我们拥有将工作当初所遇到繁琐,体力性的工作转变为自动化的能力,这是我们技术运营的核心能力之一。其实在AWS每年都有要求提高多少自动化的指标。
- 不需要人的地方,机器完成
- 需要人的地方,用机器辅助人完成
我们自动化的目标遵循以上原则。
不管我们面对什么样的流程,或者是工作形式,只要你能快速的去构建自动化的能力,那你就是非常流弊的存在。
AI&DATA OPS
我们运维人员,相对于其他的岗位来说,其实我们是非常贴近业务的,我们知道业务的核心指标,核心数据,而且我们又比数据分析人员,更加的懂相关的技术,所以我们能够去分析业务上的问题,给业务作出参考。
AIOPS
AIOPS是现在技术运营领域一大挑战,随着我们数据和基础的沉淀,我们可以利用相依的AI能力辅助我们的运营之路。
- 智能监控
- 根因分析
- 指标异常检测
- 日志聚类
- 智能预测
- 知识图谱
但是AIOPS对于我们的技术运营人员来说,存在着门槛过高,难以落地的问题。
DATA OPS
数据运营,意味着我们需要从数据的场面出发,去探索数据当中存在的价值,实现要求的是我们的技术运营同学,需要很输入的了解业务,知道哪些数据是有价值的,然后提炼出来,在借助企业的数据平台的能力,输出沉淀到对应的可视化平台。需要学习相应的数据分析和大数据使用相关的能力。
运营规划
运营规划其实是一个比较资深的发展方向,往这个方向发展,其实是需要你在这个领域长期不断的专研。
- 运营流程规划
- 运营标准规划
- 基础运营平台规划
- 基础成本核算
- 项目管理
云原生时代的技术运营挑战
时代不断的发展,我们已经来到云原生时代的发展。我们的基础设施已经高度的抽象,我们技术架构,运行架构也必须适应这个时代发展。
为什么上云
上云的优势,已经很多文章都列举了,这里不在论述。这里我们需要关注的就是我们技术运营需要关注的为什么上云。
- 成本上的考虑
- 不必要的裁撤成本
- paas化的平台体系
- 弹性的资源
- 开箱可用
我们需要学习什么
- 容器操作和管理
- K8s知识
- 微服务理论基础知识
- 网络方案的选型
- 服务治理方案
- 持续交付理论及开发团队的工作流程,研发效能度量方法论
我们在云原生上面可以做什么
发布模式的转变
我们从面向虚拟机的发布模式,需要转变为面相容器,面向应用的发布模式
- 不在关注机器
- 不关注底层配置
- 只关注抽象资源
- 产物发生改变
- 更加的版本化
可观测性建设
可观测性三架马车
- 日志
- 指标
- 分布式跟踪
由于云原生时代,我们的关注点发生改变,我们不在上以前那种直接观察机器,机器上的二进制的方式,我们构建需要在云原生的可观测性方式。