新浪微博平台自动化运维演进之路

简介: 新浪微博是一个由新浪网推出,提供微型博客服务类的社交网站。用户可以通过网页、WAP页面、手机客户端、手机短信、彩信发布消息或上传图片,是当下中国最火热的社交APP。微博产品资深运维架构师王关胜给我们分享新浪微博平台自动化运维演进之路。

_

20170607193304

内容来源:2016年12月16日,微博产品资深运维架构师王关胜在“GIAC全球互联网架构大会”进行《新浪微博平台自动化运维演进之路》演讲分享。IT大咖说作为独家视频合作方,经主办方和讲者审阅授权发布。
阅读字数: 2557 用时: 4分钟

_

点击嘉宾演讲视频观看

Sina Weibo业务介绍

微博业务简介

5

微博平台是属于偏后端的一个产品,它所提供的服务就是固定量的接口,比如信息流里的接口、用户接口、关系接口等等。

微博核心业务

6

微博最核心的产品就是信息流,以信息流为中心出发,它周边的用户、关系以及通知等主路径的服务都在内部平台,属于核心服务。

微博业务部署结构

7

我们对于核心业务要求多机房部署,电信和联通机房都部署了完整的链路。

服务保障——服务治理(开发主导)

8

在这样一个复杂的架构下,运维和开发需要紧密配合。我们内部组织架构调整后,运维团队属于开发团队,配合起来就非常紧密。

内部分为了两个方向。第一个方向的部分是开发主导,运维参与。比如建立完善的SLA体系,我们这个SLA体系做在应用层上,从开发和运维层面在代码上做一些改造,在数据层面上做收集。降级/封禁也是相似的方法,开发在代码上做降级/封禁的入口,具体提供的功能和平台是在运维做的系统里。

服务保障——防御体系(运维主导)

第二个方向就是由运维全程主导,开发参与。例如容量、监控、干预还有运维的部署架构。

架构要做到极简、稳健、美丽;

监控要求具有实时性,报警快、准,覆盖全面;

容量的性能要好,冗余足够,能快速动态扩容,有压测、容量预警;

干预的预案要全,手段多,操作快速,方案细致,要做到干预行之有效。

整体的防御体系要由标准化转化为可视化、自动化,最后升级到智能化。

微博平台运维进化历程

微博平台的运维进化历程大概分成四个阶段。
最早是人工阶段,所有的脚本都要依赖于人工,也就是所谓的脚本时代;

第二阶段是工具系统。当规模有一定的成长之后,做到了工具系统化和运维标准化;

下一个阶段就是综合运维平台。要把很多运维系统做成一个运维平台,就需要让系统平台化、数据API化和运维服务化;

目前我们比较推崇的是利用混合云DCP的思路来做一些系统。

百台规模运维标准化

百台规模——一切皆需求

这个阶段主要的工作就是日常的需求对接、完善监控警报、代码的发布和回滚、还有服务的扩缩容以及之前的一些配管工具。
这些工作都要做到快速迭代、快速上线、快速响应。

百台规模——需求达成

当时只需要利用Python、Perl、Shell等去写各种脚本,日常的需求基本都能达成。

我们也在研究一些开源的工具。当时在业务部署的层面最开始是用脚本,后来发现脚本比较麻烦,就改用配管。

百台规模——标准化梳理

配管是该阶段比较核心的内容,需求经过抽象可分为三类,机器上的基础配置、机房相关和业务相关。

所有配置要能通过标准化的配管工具管理起来,每一类服务都进行标准化梳理,就能达到我们这个阶段的目标了。

百台规模——CMDB&配管

9

新浪在很多部门都会用到Puppet来做配置管理工作。我们当时借鉴了这样一套配管工具,把所有能通过Puppet做的需求在标准化之后尽量用到Puppet。这样就能基本上满足那个阶段的需求。

百台规模——配管UI化

10

在三大需求之上,我们也给Puppet做了完善管理的UI。与Puppet相关所有配置的需求不再需要通过手工管理,直接UI化,就可以在页面上修改配置,把配置管理起来,再通过Puppet的API下发。满足了当时的需求。

千台规模平台化&可视化

千台规模——挑战性加大

我们面临了很多的挑战:服务器规模线性增长;业务单元线性增长;系统变更及代码上线次数线性增长;大型运营活动及三节保障;每日不定时段的PUSH。所以要做一些工具来满足需求。

但同时也出现了人力成本线性增长、差异化加剧导致认知成本线性增长的问题。

千台规模——构建运维平台

我们当时内部做了一套比较完善的运维管理系统Jpool。它是一个通用的集群管理平台,核心模块包含了用户权限、资源管理、配置管理、部署管理、任务管理、Nginx变更管理、降级/封杀管理和日志查询平台。

Dispatch和Puppet Master组成了这个平台里最核心的部分。Puppet Master管理了配管方面,Dispatch是一个分布式的命令通道。

千台规模——运维平台Joopl框架

11

千台规模——Joopl核心组件

12

Dispatch是一个分布式任务调度引擎。在Dispatch里有三大任务线程,任务处理线程、与agent连接的通信协议层及通信线程和主线程。

千台规模——统一运维平台

整合工单流程变更、统一配管系统、统一负载均衡系统、持续集成和监控报警系统这些工具系统,形成完整的运维平台。

平台建成后还能在上面做一些日常的变更手段,例如Puppet/Nginx变更、服务的部署变更、服务降级/封禁、扩容/缩容以及业务docker化。还有其它的像流量切换、限流、数据修复等等都是可以在运维平台上完成的。

万台规模自动化&智能化

万台规模——面临的核心挑战

针对一些突发的娱乐事件,我们需要有峰值应对才能保证服务的稳定。

在这个阶段我们要设置混合云系统,主要从四个点出发。

最核心的是峰值应对,可以进行快速扩容,及时回收;

其次是成本优化,可伸缩的业务利用公有云,私有云的内部进行弹性部署;

打通多语言环境,全公司统一平台,做到运维统一化;

业务快速迭代,基础设施标准化,提高发布效率。

万台规模——峰值应对——混合云DCP

13

峰值应对:目标“无人值守”的扩缩容

由于近几年突发的爆炸性事件增多,所以我们要做到扩缩容“无人值守”。

基于运维自动化之上再做“无人值守”就需要各种各样的业务指标,而我们的监控可以收集所有的业务指标。有了详细指标就可以做到“无人值守”。

总结:自动化核心——任务调度引擎

一个产品要想发展壮大,必须得有一套完整的任务通道。利用任务通道把所有运维相关的操作抽象为标准化的操作库,加上流程引擎,然后再做统一的任务编排。

有了这四大核心内容,再做平台或自动化思路就比较方便了。

今天要分享的就是这些,谢谢大家!

相关推荐

XpmJS —— 小程序后端开发思考和实践
魅族推荐平台架构
近期活动
活动 | 区块链技术如何改变我们的生活
活动 | 一起出发,吹响Container+的号角

目录
相关文章
|
19天前
|
机器学习/深度学习 人工智能 运维
构建高效运维体系:从自动化到智能化的演进
本文探讨了如何通过自动化和智能化手段,提升IT运维效率与质量。首先介绍了自动化在简化操作、减少错误中的作用;然后阐述了智能化技术如AI在预测故障、优化资源中的应用;最后讨论了如何构建一个既自动化又智能的运维体系,以实现高效、稳定和安全的IT环境。
46 4
|
10天前
|
运维 Linux Apache
,自动化运维成为现代IT基础设施的关键部分。Puppet是一款强大的自动化运维工具
【10月更文挑战第7天】随着云计算和容器化技术的发展,自动化运维成为现代IT基础设施的关键部分。Puppet是一款强大的自动化运维工具,通过定义资源状态和关系,确保系统始终处于期望配置状态。本文介绍Puppet的基本概念、安装配置及使用示例,帮助读者快速掌握Puppet,实现高效自动化运维。
32 4
|
10天前
|
运维 jenkins 持续交付
自动化部署的魅力:如何用Jenkins和Docker简化运维工作
【10月更文挑战第7天】在现代软件开发周期中,快速且高效的部署是至关重要的。本文将引导你理解如何使用Jenkins和Docker实现自动化部署,从而简化运维流程。我们将从基础概念开始,逐步深入到实战操作,让你轻松掌握这一强大的工具组合。通过这篇文章,你将学会如何利用这些工具来提升你的工作效率,并减少人为错误的可能性。
|
15天前
|
运维 Prometheus 监控
运维中的自动化实践每月一次的系统维护曾经是许多企业的噩梦。不仅因为停机时间长,更因为手动操作容易出错。然而,随着自动化工具的引入,这一切正在悄然改变。本文将探讨自动化在IT运维中的重要性及其具体应用。
在当今信息技术飞速发展的时代,企业对系统的稳定性和效率要求越来越高。传统的手动运维方式已经无法满足现代企业的需求。自动化技术的引入不仅提高了运维效率,还显著降低了出错风险。本文通过几个实际案例,展示了自动化在IT运维中的具体应用,包括自动化部署、监控告警和故障排除等方面,旨在为读者提供一些实用的参考。
|
16天前
|
机器学习/深度学习 数据采集 运维
智能化运维:机器学习在故障预测和自动化响应中的应用
【10月更文挑战第1天】智能化运维:机器学习在故障预测和自动化响应中的应用
49 3
|
17天前
|
机器学习/深度学习 运维 监控
构建高效运维体系:从自动化到智能化的演进之路
在当今数字化时代,运维工作的重要性日益凸显。随着企业业务的不断扩展和技术的日新月异,传统的运维方式已难以满足现代企业的需求。因此,构建一个高效、智能的运维体系成为了企业发展的关键。本文将探讨如何从自动化逐步演进到智能化,以实现运维工作的高效化和智能化。
|
17天前
|
机器学习/深度学习 运维 监控
构建高效运维体系:从自动化到智能化的演进之路
在当今数字化浪潮中,运维作为信息技术的重要支柱,其重要性日益凸显。本文将探讨如何通过自动化和智能化手段,提升运维效率,保障系统稳定性,促进业务持续发展。
|
27天前
|
机器学习/深度学习 运维 Cloud Native
构建高效运维体系:从自动化到智能化的演进之路
在当今数字化时代,运维作为信息技术的重要支柱,其效率与创新能力直接关系到企业信息系统的稳定性和业务连续性。本文将探讨如何通过技术手段,实现运维从传统手工操作向自动化、智能化的转变,进而构建一个高效、可靠的运维体系。我们将从自动化工具的应用开始,逐步深入到智能运维的实践,最终展望云原生架构下的运维未来趋势。
|
1月前
|
机器学习/深度学习 人工智能 运维
构建高效运维体系:从自动化到智能化的演进之路
在当今数字化时代,运维作为保障企业IT系统稳定运行的关键环节,正经历着前所未有的变革。本文将探讨如何通过实施自动化和引入智能化技术,构建一个更加高效、可靠的运维体系,以应对日益复杂的业务需求和技术挑战。
65 1
|
12天前
|
机器学习/深度学习 运维 自然语言处理
构建高效运维体系:从自动化到智能化的演进之路
随着信息技术的飞速发展和企业数字化转型的加速,运维管理作为保障业务连续性和系统稳定性的关键环节,正面临着前所未有的挑战与机遇。本文深入探讨了如何通过引入自动化工具和技术,实现运维流程的标准化、自动化和智能化,进而提升整个组织的运维效率和响应速度。同时,文章也详细分析了在实施自动化运维过程中需要考虑的关键因素,如人员技能提升、流程优化和文化变革等,以期为企业提供一套全面、实用的运维管理升级方案。

热门文章

最新文章