运维架构是全站技术架构中不可分割的一部分

从这篇文章开始,准备从架构设计层面谈谈Dev和Ops的关系,而不是单纯从组织架构和协作模式上的Dev和Ops关系。

一、为什么要起这个话题?

上篇文章《如何打造一个以应用为核心的运维体系》中,隐含着一个很重要的观点,可运维性要在架构设计时就要统筹考虑,从一开始就得考虑进去,而不是到了运维这个环节再去考虑,否则就会出现很多的问题。但实际情况,很多技术团队在这一点上做的并不够,而是将全部的精力放到如何进行服务化或微服务的拆分上,放到分布式架构如分布式服务、分布式消息、分布式DB和缓存等等这些设计上,更多的是做了一些纵向的架构分解和技术钻研工作,但是架构的横向延伸和拉通考虑的明显不足。这样恰恰是忽略了整个软件生命周期中最长尾的运维环节,也反映出了很多公司对于运维这件事情的重视程度和理解深度不够。

二、出现的问题

从我个人经历的过程以及观察的情况看,通常的几个现象:

1、应用这个概念,在资源申请、域名申请、VIP申请、服务注册、发布部署、策略下发、监控等等这些环节不统一,各自独立一套;这个就是最典型的架构设计时,只考虑开发一个环节,没有将架构上拆分后的概念延伸贯穿到整个软件生命周期的问题。这个也将导致下面一系列的问题产生;

2、上面做不到,没有统一的标准和概念,各个平台之间就很难集成和打通,所谓的持续集成、持续发布、持续部署、持续交付等等这些环节仍然靠大量的人肉动作去做,还谈不上持续,效率自然上不去;

3、稳定性保障无从下手,大量的服务化应用,错综复杂的调用依赖,海量链路日志,问题排查困难,一个请求下来,到底跑到哪个应用去了都不知道;故障持续时间长,出现流量激增或基础部件故障,无法快速隔离、降级和恢复;

4、效率跟不上,还经常出问题,进而,团队协作效率降低,相互信任下降,就开始经常听到下面的言论:

开发抱怨:“运维做的不到位,申请个机器老半天,发布效率也提不上去,代码都写好了,上线咋这么费劲,严重降低了我们的工作效率,再有,出了问题还得我们上去定位,运维什么都帮不上。。。。。。。”;

运维抱怨:“开发的架构这么烂,配置五花八门,还得手工维护,我咋知道这些配置干嘛的,配错一个,就出故障,让我怎么自动化发布;日志放哪儿也不知道,一会这里,一会那里,出问题你说我咋定位。。。。。。;”

5、好了,出了问题,就开始撕逼扯皮,相互推诿,背了责任的一方又开始甩出背锅言论,感觉没有被公平对待。团队的氛围也开始出现bad smell。

三、问题出在哪儿了呢?

其实从开发的角度和运维的角度单独来看,双方的表达都没有问题,做的事情也都没有问题。但是双方都是只站在了自己的角度表达问题和情绪,恰恰都忽略了很重要的一点:运维和开发不是相互割裂的两个组织,运维的技术体系和全站整体的技术体系更是不可分割的,越是把它们割裂开看,越是站在各自的角度看问题,上面说的这些情况就越是无解,整个团队也会限于这种没完没了的、毫无意义的纠缠中,从长期看对团队和个人的发展都是很不利的。

所以根本原因,在于将开发和运维在技术和管理两个层面给割裂开了,详细描述如下:

1、运维阶段要面临的问题没想清楚,从一开始架构设计上就没有考虑清后续的运维阶段要面临的问题和事情,比如这么多应用,资源应该如何分配、发布的效率如何保障等等,而都是在考虑开发自身的需求和问题。不考虑运维面临的问题,这样实际就是把运维割裂在整个架构设计之外了。(这个责任在谁呢?)

2、运维团队的职责定位不清晰,整个技术架构朝着服务化的方向演进后,整个组织架构对于运维团队的定义也是模糊的,也就是运维到底要做什么,要承担什么样的职责,因为一个合理的架构落地,必然要有合理的组织架构去对应支撑才可以。运维定位不清晰,就相当于将运维团队给割裂在研发团队之外了。

四、未完待续:)

所以打算下篇就讲讲这个问题应该如何破局,在这样一个技术架构体系下,运维的角色应该要做什么样的转变,才能适应和支撑起对应的技术体系。(如果还是传统的硬件维护、网络维护、脚本编写这样的定位和要求,显然是跟不上技术发展的要求和节奏的。)

如果你已经有好的思路和建议了,欢迎先留言讨论。

原文发布于微信公众号 - Forrest随想录(forrest_thinking)

原文发表时间:2017-07-27

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏WeTest质量开放平台团队的专栏

手游精品化的第三年,谁在窃取手游开发者的利益?

手游市场从2015年开始渐渐趋于平稳,“精品化”概念已经成为手游重要的发展方向。国内手游行业存在着增速放缓、流量获取成本增高的情况。这种现状意味着,一旦手游质量...

1402
来自专栏ThoughtWorks

数字化企业的交付基础设施 | 洞见

在前文中我们说到,传统企业在逐步建设自己的数字平台过程中,需要抓住交付基础设施、API和架构治理、数据自服务、创新实验基础设施和监控体系、用户触点技术这五个支柱...

3825
来自专栏IT大咖说

DevOps在传统企业的落地实践及案例分享

摘要 在传统支撑模式无法满足业务价值快速交付要求的情况下,传统企业应该如何引入DevOps能力进行突破创新,本次分享将从以下几个方面具体探讨DevOps如何与传...

3859
来自专栏云计算D1net

精心策划和管理多云计算需求

当规划一个多云部署时,一定要考虑可能出现的各种管理和整合的问题。 多云计算是组织混合使用来自不同厂商的云计算服务,这提供了许多优点。但采用多云计算的用户也必须小...

37313
来自专栏海天一树

互联网创业技术团队需要多少人

这里所说的技术团队,指的是大技术团队,包括产品、设计、开发、测试等。互联网的产品通常会包括安卓App,iOS App,PC网站,手机H5。 最不可或缺的人,...

3305
来自专栏张善友的专栏

DevOps是云计算时代的开发与运营

DevOps(英文Development和Operations的组合)是一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运营和质量保障(QA...

2605
来自专栏云计算D1net

混合云计算vs雾计算

如今,许多行业厂商都在不断努力提高其经营效率,而希望实现这一目标的一个具体途径是投资新技术,更新软件,推进安全计划。随着技术领域的所有变化,网络安全是越来越难以...

3877
来自专栏企鹅号快讯

Python火爆的背后的应用领域是数据挖掘、大数据和人工智能的应用吗?

在数据分析和交互、探索性核算以及数据可视化等方面,Python 将不可避免地接近于其他开源和商业的领域特定编程言语/工具,如R、MATLAB、SAS、Stata...

2079
来自专栏WeTest质量开放平台团队的专栏

手游精品化的第三年,谁在窃取手游开发者的利益?

腾讯WeTest推出”手游一站式质量提升方案“,解决手游开发者难题......

2020

4个帮你拓展业务的流量获取工具

[本文作者Sydney Rootman。]

22911

扫码关注云+社区

领取腾讯云代金券