运维前线:一线运维专家的运维方法、技巧与实践1.5 运维自动化的方法论

简介:

1.5 运维自动化的方法论


1.?全局驱动

无论是全部自动化管理平台的规划,还是某个平台的规划,都希望大家能够找到一个全局的立足点。比如说我们当时成立持续部署服务平台的时候,大家把全局的目标对齐于提高产品交付的速度和质量,开发、测试、运维很快就达成共识了。目前这个平台建设完成之后,运维已经从发布变更流程中彻底退出了,真正实现了让运维变成审核者。

2.?分而治之

从上面的几个维度中可以看到有很多系统,如果每个系统都要建设的话,那么周期和难度都将很大。所以需要分而治之,特别是线上架构组件的管理系统,更需要随着组件的交付一并交付运维管理能力,比如面向组件的自动化管理能力、运维的监控能力、运维的数据分析能力等。之前我也表达过类似的观点,所有只交付组件,不交付管理能力的研发都是耍流氓。因为从运维的角度来说,这样低价值的交付产品越多,越会导致运维不堪重负。而如果让运维从头去构建这个管理,则他们需要花费很多的时间去了解,从而导致系统建设周期拉长。举个例子,比如说某个分布式cache服务,做得不好的,是通过读取日志然后对其进行监控;做得好的,是给你开启一个管理端口,让你从端口中读取状态信息。这就大大降低了系统的复杂度(不用进行日志采集和处理组件了)。

分而治之,其实就是让不同的团队做不同的事情,不要将所有事情全部压给运维;其次不同的时期建设不同的系统,不要在同一时刻做很多系统,从而避免战线过长。当然如果有很多运维研发人员的话,就另当别论了。

3.?自底向上

自底向上,其实是让大家找到一个更清晰更具体的系统建设目标来展开工作。从系统分解上,来让大家规避被一个庞大而模糊的目标带入歧途。如果一上来,我们就说要做一个全自动的运维管理系统,那样很容易就会让运维研发团队迷失方向。所以这里可以先设定全局和最终目标(全自动化),然后从底层逐步构建地基,做框架,最后再盖一个完整的房子,详见图1-1。

4.?边界清晰

边界有两个维度,一个是管理边界;一个是职能边界。

首先是管理边界,其是从Owner的角度出发的,谁产生服务,谁就是Owner,管理统一都是运维。比如研发提供了一个统一的分布式消息队列服务,那么Owner就是研发,他应该对可运维性负第一责任,不要让运维去承担这个服务的WebAdmin管理系统建设任务。

其次是职能边界,深层次的理解是组件的功能范围。对运维架构师的考验也就在这儿,比如说让LVS去承担业务异常的容灾和容错切换是不合适的;让DNS跨过LVS层,负责后端服务异常的自动容错处理也是不合适的。如果不把职能界定清楚,将会导致系统做很多无用功,这会增加系统建设的复杂度。

5.?插件化

插件化的思维无处不在,在面对纷繁复杂的管理对象时,我们进行抽象,提供管理模式,然后将具体的实现交给用户,这点在我们日常所见的运维系统中经常可以看到,比如说Nagios就是一种插件化的采集思路。对于配置管理来说,Puppet采用的也是这个思路。对于最上层的调度管理系统,可以让运维自己去编写执行器,特别是和业务紧密相关的,但最终运维整个控制权还是要交给平台。我的经验是,在应用服务层和架构服务层,不要引入插件化的管理方案,过多的插件化部署,会让生产环境的管理最终混乱不堪,甚至失控。所以提供类SSH界面的运维发布和部署平台,是没有任何运维价值的。

相关文章
|
24天前
|
运维 监控
现代运维中的自动化技术应用与挑战
现代运维工作中,自动化技术的应用已成为提高效率、降低成本的重要手段。本文探讨了自动化技术在运维领域的应用现状和挑战,包括自动化工具的选择、实施过程中的注意事项以及未来发展趋势。通过深入分析,帮助读者更好地理解和应用自动化技术,提升运维工作效率。
13 2
|
1月前
|
运维 监控 持续交付
构建高效自动化运维体系:策略与实践
在数字化时代,企业IT基础设施的管理和维护变得日益复杂。为了提高效率、降低错误率并快速响应市场变化,构建一个高效的自动化运维体系至关重要。本文将探讨自动化运维的核心策略,并通过实际案例分析展示如何将这些策略应用于日常管理中,以实现IT运维的优化。
17 0
|
9天前
|
敏捷开发 监控 前端开发
深入理解自动化测试框架Selenium的架构与实践
【4月更文挑战第16天】 在现代软件开发过程中,自动化测试已成为确保产品质量和加快迭代速度的关键手段。Selenium作为一种广泛使用的自动化测试工具,其开源、跨平台的特性使得它成为业界的首选之一。本文旨在剖析Selenium的核心架构,并结合实际案例探讨其在复杂Web应用测试中的高效实践方法。通过详细解读Selenium组件间的交互机制以及如何优化测试脚本,我们希望为读者提供深入理解Selenium并有效运用于日常测试工作的参考。
14 1
|
10天前
|
自然语言处理 测试技术 API
深入理解自动化测试框架Selenium的设计理念与实践
【4月更文挑战第15天】 在现代软件开发过程中,自动化测试已成为确保产品质量和加速迭代的关键手段。Selenium作为一种广泛使用的自动化测试框架,提供了对多种浏览器和平台的支持,极大地促进了Web应用的功能测试。本文旨在剖析Selenium的核心设计理念,探讨其在实际项目中的应用,并指出常见的误区及最佳实践,以期帮助测试工程师更高效地利用Selenium进行测试工作。
|
10天前
|
运维 Kubernetes Devops
构建高效自动化运维体系:DevOps与容器技术融合实践
【4月更文挑战第15天】 在当今快速发展的信息技术时代,传统的IT运维模式已难以满足业务敏捷性的需求。本文旨在探讨如何通过整合DevOps理念和容器技术来构建一个高效的自动化运维体系。文章将详细阐述DevOps的核心原则、容器技术的基础知识,以及两者结合的优势。此外,文中还将分享一系列实践经验,包括持续集成/持续部署(CI/CD)流程的搭建、微服务架构的应用,以及监控和日志管理策略的优化,以期帮助企业实现快速、可靠且安全的软件交付过程。
|
10天前
|
测试技术 持续交付 Docker
Django中的自动化部署与持续集成实践
【4月更文挑战第15天】本文介绍了Django项目中自动化部署与持续集成的实践方法。自动化部署通过选择Ansible、Fabric或Docker等工具,编写部署脚本,配置持续集成工具(如Jenkins、GitLab CI),确保服务器环境一致,实现快速应用上线。持续集成则涉及配置版本控制系统,设置自动化构建和测试,编写全面的测试用例,集成代码质量检查工具,并配置通知机制,以提升代码质量和开发效率。这两者结合能有效提升项目的迭代速度和可靠性。
|
11天前
|
人工智能 运维 监控
构建高效自动化运维体系的实践与思考
【4月更文挑战第14天】在数字化转型的浪潮中,自动化运维作为提升系统稳定性和效率的关键手段,受到了企业的广泛关注。本文将深入探讨如何构建一个高效的自动化运维体系,涵盖从基础设施的搭建到流程的优化等多个方面。通过分析当前自动化运维的挑战及解决方案,文章旨在为读者提供一套实用的策略框架,帮助企业实现运维工作的高效化、标准化和智能化。
|
17天前
|
运维 监控 Kubernetes
构建高效自动化运维体系的实践与思考
【4月更文挑战第8天】在数字化时代,IT基础设施的复杂性日益增加,传统的手工运维模式已经难以满足快速响应和高效率的需求。本文将探讨如何通过自动化工具和策略构建一个高效的自动化运维体系,旨在提高系统的稳定性、减少人为错误以及优化资源分配。文章首先分析了自动化运维的必要性,接着介绍了实现自动化的关键技术和工具,并通过案例分析展示自动化运维体系的实际效果。最后,对自动化运维的未来发展趋势进行了展望。
|
19天前
|
机器学习/深度学习 传感器 运维
提升数据中心效能:智能运维策略与实践
【4月更文挑战第6天】在数字化时代,数据中心作为企业信息架构的核心,其稳定性和效率直接影响到业务连续性和客户满意度。随着技术的进步,传统的数据中心运维模式已经不能满足现代高效、智能化的需求。本文将探讨如何通过智能运维(AIOps)策略,结合大数据分析和机器学习技术,实现数据中心的自动化管理、故障预测及快速响应,以提升整体效能并降低运营成本。
|
29天前
|
运维 监控 数据可视化
现代化运维管理系统的关键特性及实践应用
随着信息技术的迅猛发展,现代企业对于运维管理系统的需求日益增长。本文将探讨现代化运维管理系统的关键特性,以及在实际应用中的重要性和优势所在,帮助企业更好地理解和应用现代化运维管理系统。
15 2