背景
- 2023年年初起,运维部合并为服务端研发部的一个小组。作为部门负责人第一次接管运维部门,虽然对运维人员的定位和工作职责有一定了解,但仍存在不清晰的地方。因此,重新对运维部门的定位和工作进行梳理,以便后续更好的开展工作。
运维行业的核心问题
- 对运维行业而言,其所面临的问题本质上都是系统工程问题。是为了解决 IT 系统快速交付的问题、解决伸缩性的问题、解决稳定性的问题、解决运行维护成本不断提高的问题。
- 目前来看,云计算、微服务对于运维行业的改变,要比ChatGPT来的要更实质性一些。
运维部门的定位
- 在合理的成本范围内,最大限度的保障系统可用性和服务能力。
- 建立一套持续改进机制,不断提高运维效率,不断降低运维成本。
运维的工作职责
- 经典的运维领域,最主要的几个工作职责
- 代码发布和交付(delivery),做好最后一公里的价值交付;
- 提升架构的可伸缩性(scalability)并付诸实施;
- 保障系统的稳定性(reliability)并不断改善;
- 在满足前三项目标的同时,不断优化并降低系统的运行成本(finops);
- 如何度量运维的工作(目标设定)
- 针对代码发布和交付,可以简单的用发布次数来度量
- 发布频率:每10天一次,每日一次,每日10次
- 针对系统的伸缩性,可以用扩容的时效性来度量
- 扩容时长:10个pod扩容到20个,花费30分钟,花费10分钟,花费1分钟
- 针对稳定性,可以通过观察核心功能的不可用时长来度量
- 不可用时长,越小越好
- 服务恢复时长,越小越好
- 针对代码发布和交付,可以简单的用发布次数来度量
如何体现运维价值
观点:要做对公司和业务最有价值的事情。
- 如何把这个价值说清楚,我们从站位、目标设定、投入产出比上来分别着手分析。
- 首先,运维人要转变的是态度和立场:坚定和业务站在一起,争取共背业务目标。
- 其次,价值这个事情,永远都是和“成本投入”相对应的。你如果组建了一个很大的运维团队,人力成本在公司很显眼,那么你就很容易成为老板眼中的“重点关注对象”,也会受到业务方更苛刻的挑战,正所谓,楚人无罪怀璧其罪。客观上来讲,运维团队的资源投入,一定是要和业务收入相匹配的,过高过低都是不健康的,不利于团队发展的。所以,“运维的价值创造”最后会落到运维效率的竞争上来。
- 最后,关于价值,定量和定性的描述都得有。譬如和行业水平的定量对比,来自公司内业务部门满意度调查的定量数据。也要有比如对公司战略项目支撑中的“存在感”这些定性数据。
高效运维的要求:效率、稳定、成本、安全和体验
运维可以在哪些事情上发力,更好的呈现运维价值?
- 效率
- 运维自动化,目标就是解放运维的生产力,提升运维效率,降低人为失误,让运维的同学可以有更多的精力去做更有价值的事情。
- 如资源分配&回收、域名配置、VIP配置、持续集成&发布、应用部署、应用扩容&缩容等
- 开发环境和测试环境,由开发或测试发布新版本?
- 稳定(质量)
- 让业务运行更加稳定,目标是最大程度的保障系统的稳定和运行质量,即使出现问题,也能够快速发现、快速响应、快速(自动)恢复。
- 如监控(仪表盘)、全链路、强弱依赖、限流降级、容量评估、预案平台等
- 怎么保证比业务部门先发现问题?业务监控?短信、电话、飞书、钉钉告警?
- 成本
- 成本问题,也就是技术ROI(投入产出比)的问题,当系统规模和体量变大之后,掌控在运维手中的各类资源,将占整个研发团队支出的大头。如果没有很好的成本控制意识和策略,资源体量将会持续增大,甚至是翻倍或指数级的增长,对于公司成本会是非常大的负担和压力。
- 安全
- 安全是与运维同等级别的一块专业领域,但同时又是跟运维紧密相关的,运维同样要关注安全,因为安全出现导致的问题,往往也会给运维带来沉重地防护和修复成本。
- 如各类主机安全、DB安全、Web安全、应用安全等,与此相关的还有漏洞、DDos、CC等关键词。
- 体验
- 这里提到的体验,指的是终端用户的访问体验,非功能或产品使用体验,对于运维来说就是要关注访问速度。作为开发的同学来讲,可能更多的注意力会放在自己负责的代码以及该部分的性能问题,不会关注到端到端全流程的性能和体验。但是运维可以站在全局的角度来审视和治理整个端到端全链路的性能情况,并给出对应的性能优化建议。
运维应该具备的思维
-
对运维来说技术不是问题,重要的是思路上的转变。因为各种开源技术,各类商业软件,可供选择的余地非常大。
-
不要抛开实际问题和场景谈技术,这样的技术方案是没有意义的。一定是从问题和业务的角度出发,找到痛点所在,用合理的技术解决掉,而不是把技术强加到业务上,让业务来适配技术。
如何选择使用哪种技术呢?回答下面几个问题,基本就清楚了。
- 你的技术团队现在存在的最大或者最让人头疼的TOP的问题是什么(3或5个都可以)?
- 这些问题中你认为哪些是运维应该也可以解决的?
- 如果你认为有应该是运维解决的,那你觉得解决这个问题,应该采用什么样的方案?至少给出两个2备选
- 分别从方案的优劣和成本上评估哪个方案最佳
- 到了这个问题上,貌似用什么技术已经不是问题了吧
运维需要长期做的事情
-
就是不断的跟开发和业务团队去沟通,他们有什么问题?痛点在哪里?然后不断的思考,问题背后的原因是什么?我们应该怎么解决?业界是怎么解决的?什么样的方案最适合我们?
-
这些问题想清楚了,讨论清楚了,该做什么也就清晰了。
自动化运维是什么意思?
-
自动化运维简单来说就是把周期性、重复性、规律性的工作都交给工具或平台去做,把过去的手工执行转为自动化操作。
-
自动化运维是IT运维工作的升华,其不单纯是一个维护过程,更是一个管理的提升过程,也是未来的发展趋势。
自动化运维有什么作用?
- 1、提高IT运维工作人员工作效率,提升整体项目效率;
- 2、提升运维工作价值,管理更多资源,更多服务对象;
- 3、让运维工作更轻松、灵动;
- 4、减少人为误操作,让IT资产更安全;
- 5、事务留痕,方便跟踪,追溯;
- 6、方便信息传递,配置类信息聚合,信息链更完整。
对成本优化的理解
-
很多节省了上百万上千万的成本优化,可能在老板眼里就是应该的。以前浪费太大了,现在只是消除浪费,这自然就得不到价值认可。
-
因此,要用精益的理念去指导开展工作。精益有一个核心的理念,一切不产生价值的都是浪费,持续消除浪费, 这样在工作开展过程中,其实就不用搞运动式的成本优化。
-
成本优化实践过程中的几点总结
- 要用精益的理念去持续指导成本优化,而不是简单的运动式降本增效。
- 要拉齐价值共识,要和相关部门比如总办,财务等监管部门达成共识。
- 成本优化的计算模型不能太复杂,模型计算太复杂,很难去达成共识。
- 数据要统一按照财务口径进行核对,不能我们从技术角度想当然。