【理念篇】运维的本质---可视化

没有比“可视化”更好的一个词能概括运维的本质,而“可视化”又应该分成两部分:可视化的服务交付可视化的服务度量!

第一部分:可视化的服务交付

早期的运维是从ITIL开始的,那个时候大家都不知道运维是什么,怎么做,幸好找到了一个IT服务最佳实践--ITIL。于是就开始了运维的摸索之路,从CMDB、服务台、事件管理、变更管理、可用性管理、容量管理等等逐步去了解,逐步建设自己的系统。但我们很快发现,这一完备的流程框架遇到了大规模运维的时候,就无法应对,或者说过多的聚焦于流程以及规范,我们发现很难提升运维敏捷度和精细性,并且我们还是不知道一个完整的IT服务边界在哪儿?如何实现它?

不过在ITIL的实践过程中,其实提出了一个很好的概念---IT服务对于运维来说,提供一种高效、一致性、透明化的服务是运维的成功所在,这样就要求服务提供者屏蔽其提供的所有服务细节,因为对于服务消费者来说,很难对专业的运维服务内部细节掌握和了解。就拿服务器资源交付来说,从早期的研发要关心配置、OS初始化、自己安装系统、配置网络到最后交付到手里即插即用,服务的自动化程度和完整性越来越高。其实也是一种“架构及服务”的思想体现,把之前早期交付功能变成了交付服务的模式。

另外从运维事务或者活动的角度来说,如何对其进行一次或者多次的组合封装,把它们变成一个完整的IT运维服务,是此时的运维自动化重点方向。毕竟繁杂的运维事务不进一步封装,对个人或者团队来说,都意味着很高的学习成本和事务执行成本。在传统的IT运维组织中,我们能看到彼此事务之间的割裂非常明显,比如说网络、机房、服务器、应用部署等等,都是在不同的团队完成,彼此工作独立进行。在大一点的运维团队中,可能会有一个专门的运维研发团队来给这些日常活动进行自动化的封装和实现。在大规模海量运维中,必须要求有一个集成的平台来实现把这些事务流调度起来,否则无法提高事务执行的效率和质量。

对于如何封装这些事务或者活动,从DevOps中可以找到一些答案。DevOps提倡自动化一切,其中一条核心的主线就是持续交付。我把持续交付分成两类场景:一种是持续交付基础设施,一个是持续交付软件。当然持续集成更多的是偏重于后者。

持续交付基础设施是目前IAAS平台要解决的,利用软件定义计算、存储、网络等技术来实现对上层应用所需资源的快速交付。其中虚拟化技术是IAAS层持续交付的一个核心技术,虚拟化能够快速的创建资源,交付资源,回收资源等等,在早期也有人错误的认为虚拟化就是云计算。最新的轻量级虚拟化技术更是热点,根本的原因是把应用的交付在镜像级别交付了,从而进一步降低了应用交付的成本。

持续交付软件从代码产生的那一刻就开始进行管理,到编译、到测试、到灰度环境验收到正式环境部署,并且希望这条主线完全的自动化。具体的持续集成最佳实践如下【具体请参见--持续集成:软件质量改进和风险降低之道】:

面向程序包的持续集成非常简单,现在有很多的开源解决方案来实现,jenkins、go平台等等,但有一种情况需要非常注意,就是程序包的配置管理问题,这个也往往是影响发布的重要环节。所以我们很多时候使用开源平台只是让他产生程序包即可,后续的包的管理和配置管理以及后续的实例化发布,特别是大规模集群部署,都是由单独的发布平台来解决,而非持续集成工具(虽然它们也支持)。

基于软件的交付解决之后,这个时候我们一定会想,如何实现全应用的交付,此时便有了PAAS平台和基于应用架构的可视化部署服务两种方案。这两种实现思路有很大的不同,我们知道完整的PAAS平台是提供了对底层服务的统一抽象,比如说数据库服务、存储服务、cache服务,但是对于许多开发者来说,好像又不愿意收到这么多的约束,这也是PAAS平台一直没有火起来的原因。PAAS平台最经典的实现应该是CloudFoudry了,国内很多PAAS平台基本上都是参考CF来实现。Cloud Foudry概念模型如下:

参照CF的基本架构,我们也有一个类似的PAAS平台实现(百度的PAAS平台也是如此),示意图如下:

而在现实的情况中,很少有公司有能力把Mysql、MC、Fastdfs封装一个服务供上层应用调用。在这种情况下,可视化的应用交付就会演变成可视化的全应用架构部署。像完成一个业务流程图一样,完成全应用的部署,在这个时候,我们也自然想到的是IDE编程环境。首先把我们架构中各个服务抽象一个对象(类似delphi环境中的控件),这些对象有相应的属性和状态,并且可以在线可视化编辑。把这些可视化的对象按照应用架构视图的模型构建出应用模板,点击模板进行实例化,此时翻译成各类的机器指令到相应的服务器上执行各类动作,这种实现便可以脱离某个服务的接口API约束。

综上所述,运维的自动化最终要实现可视化,IAAS和PAAS是可视化的一个高度体现。可视化是自动化的更高阶表现!

第二部分,可视化服务度量

在我的运维理念中,一直倡导数据驱动运维。有了数据,就有了事实判断的标准,就有了运维服务优化的方向。“除了上帝,一切人都必须用数据说话”,这是在运维工作中必须恪守的信条。在早期写过一篇完整的数据驱动运维文章【关于数据驱动运维的几点认识】。在文章里面体系化的介绍数据化运维的目的、数据的来源以及如何构建数据体系等等。

最近也在进行一个数据实践,就是建立端到端(立体化)数据分析体系,目标非常明确:*分钟发现问题,*分钟内定位问题。我们把数据建立一个标准化的分层体系,从基础设施、上层组件、到应用服务、到接口、再到用户侧基于应用的拓扑架构,收集各类指标,统一到一个分析平台中展现。如图:

基于这套分层化的数据体系标准,当前我们也有对应的系统实现,具体如下:

当我们形成标准之后,这套标准化的方案可以向其他业务不断去复制,大家只需要遵循一套数据标准即可,最后数据的采集、分析、展现和告警都是标准化完成。

另外又针对单个用户访问情况,希望能实时的绘制它的业务访问流,开源的产品实现有twitter的zippkin和google的dapper。这类开源方案不能直接使用,只能借鉴其思想。当前我们就结合自身的业务架构特点,实现了一个统一的服务调度框架和名字服务中心,在业务代码无侵入的情况下,可以把业务调度链数据上报和整合,实现自己的业务访问流拓扑绘制。

运维的数据化能力非常重要,一方面也体现出你对运维的理解是什么样的,从数据上可以看到你很多运维经验的提炼;其次利用数据可以发挥运维的驱动能力,从某种意义上来说,数据不会说谎。最后,数据共享和可视化之后,大家有了一致性的理解,它所释放出来的能力非常大,无论是业务优化、服务改进都能从数据中找到方向。

因此我说可视化的能力代表了运维的能力,可视化的程度越高,运维的能力越高。那么你现在到底可视化了哪些运维服务,并能进行度量?

本文分享自微信公众号 - 互联网运维杂谈(waynewang_ops)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-07-03

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

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏互联网运维杂谈

运维的本质---可视化

没有比“可视化”更好的一个词能概括运维的本质,而“可视化”又应该分成两部分:可视化的服务交付和可视化的服务度量!

7110
来自专栏互联网运维杂谈

【平台篇】可视化持续部署系统的设计与实现

持续部署(Continuous Deploy)的收益是全面的,体现在运维规范、自动化和团队合作等方面。

8120
来自专栏kubernetes中文社区

在 Kubernetes 上使用 Tekton 快速实现应用自动发布

Tekton 是一个功能强大的 Kubernetes 原生开源框架,用于创建持续集成和交付系统。

13510
来自专栏互联网运维杂谈

4个实施持续测试的“最佳实践”

开发是一个有趣的大事件,因为我们处于传统测试与现代和持续测试之间的边界,正在从一个大型的筒仓式的结构转型到一个新的架构。之前的组织架构包含了开发团队和集中测试团...

8320
来自专栏猪圈子

自动化测试究竟有什么神秘的地方?

你的自动化测试技术足够了吗?关键字驱动与数据驱动、自动化测试平台搭建、自动化持续集成都弄懂了吗?薪资是否比手工测试人员高出4K?

8030
来自专栏互联网运维杂谈

基于JWS的游戏运维服务化平台实现

经过一个多月的多方沟通和协调,这个平台(JAE,JWS App Engine)终于引来了多方合作的机会,本周也正是立项启动,进入开发者模式。虽然Q2还剩下短...

5500
来自专栏Vincent-yuan

微服务之部署

CI能够保证新提交的代码与已有的代码进行集成,从而保证所有人保持同步。CI服务器会检测到

10010
来自专栏搜狗测试

如何做Git项目的持续集成

持续集成(简称CI)指的是在代码提交的过程中持续地进行代码的集成、构建和自动化测试;借助CI工具,可以在代码提交的过程中通过单元测试等方式尽早地发现引入的问题。...

10020
来自专栏互联网运维杂谈

【扯淡篇】DevOps,值得运维拥抱!

原计划是写名字服务相关的一篇文章,但因为周末出去培训,实在没法完成。公司组织大家出去讨论关于协同效率问题,之前在腾讯也讨论过部门墙的问题。随着公司的日益增大,这...

5800
来自专栏互联网运维杂谈

运维平台规划体系全介绍

在之前的文章中,谈到过【运维的本质--可视化】,在可视化的篇幅中,着重介绍自动化的可视化和数据的可视化;在后续的篇章中又介绍了【互联网运维的价值体系】,里面分解...

22910

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励