运维自动化来源于工作中的痛点,京东数据库团队面对的是商城成千上万的研发工程师,这种压力推动我们不断变革,然而变革不是一蹴而就,也经历过从手工到脚本化、自动化、平台化、智能化的艰难转变,所以说是需求在驱动运维体系的建设,而运维自动化的真谛在于解放运维人员,促进人率提升,减少人为故障,要学会培养自己“懒”这个好习惯。京东的自动化运维体系建设始于2012年,下面从两个方面进行介绍。
京东数据库智能运维平台京东业务每年都在以爆发的形式在增长,数据库服务器的数量众多,产品线也多达上千条,要支持如此庞大的业务体系,需要一套完善的运维自动化管理平台。目前京东MySQL数据库管理平台简称DBS,主要涵盖以下内容:完善的资产管理系统、数据库流程管理系统、数据库监控系统、数据库故障管理系统、数据库报表系统、弹性数据库系统以及数据库辅助运维工具,涉及DBA运维的方方面面,实现了DBA对MySQL的自动化、自助化、可视化、智能化、服务化管理,避免DBA因手工操作失误带来的生产事故,保障京东数据库的安全、稳定、高效运行。这里着重介绍以下部分核心功能组件。
作为自动化运维的基石,它的准确性直接关系到整个数据库管理平台的可靠性。京东数据库管理平台从数据库业务方、DBA的运维习惯等方面出发,涵盖机房、主机、业务、集群、实例、库、表等多个维度。
? 机房和主机维度:主要记录硬件方面的信息。
? 业务维度:主要记录业务的名称、等级及业务部门相关信息。
? 集群维度:主要记录MySQL集群架构信息。
? 实例维度:主要记录MySQL的相关参数,为后续自动化运维提供保障。
? 库维度:主要记录数据库名称及业务人员联系信息。
面对繁杂的数据库新增,扩容等运维工作,利用自动安装部署平台可以彻底解放DBA。目前京东的自动化部署系统包含申请服务器,部署数据库实例,同步数据,一致性校验,拆分及切换等操作,整个过程流程化,包含各级业务及DBA的操作审批,最终达到全面的MySQL服务的自动化和流程化部署,如下图 。
主要功能点包含以下内容:
? 安装部署MySQL实例,架构搭建,域名申请。分配规则要求同一集群主从实例不能在同一机柜,硬件性能好的主机优先为主库。
? 监控部署,备份部署,资产注册。
? MySQL服务采用镜像的形式创建,镜像依赖于k8s的镜像仓库。
? 应用账号是应用方通过自动化上线系统申请创建的。
? 主从数据一致性校验,通常会选择夜间业务低峰期定时执行。
1.3. 智能分析与诊断京东的智能分析与诊断涵盖4部分重要的内容,数据库监控指标采集,诊断分析,故障自愈,趋势分析。
1.3.1 监控系统监控系统为数据库管理提供了精准的数据依据,能够让运维人员对生产服务系统运行情况了如指掌,核心的监控指标包含:OS负载,MySQL核心指标,数据库日志等。通过分析获得的监控信息,判断被监控数据库的运行状态,对可能出现的问题进行预测,并给出优化方案,保证整个系统稳定、高效。
数据库性能智能分析,主要是对数据库监控数据的二次分析,排除安全隐患。在实际的生产中,有些隐患没有达到设置的报警阈值,处于一个报警的临界点,其实这种情况是最危险的,随时可能爆发,为解决这些隐患,我们通过对监控数据的环比、同比、TOP指标等方面进行分组汇总分析,提前发现隐患。
智能切换系统京东数据库服务器的量级较大,会导致出故障的概率相对提高,同时对系统稳定性的要求也较为苛刻。因此为确保实现数据库高可用,保证7*24小时的持续服务,我们团队自主研发了数据库自动切换平台,实现了自动和半自动两种切换方式,实现了按单集群级别、多集群级别、机房级别等多维度的场景切换。切换过程包含监控的修改、资产信息的修改、备份策略的修改、主从角色的修改等,一键化完成,避免人为因素带来的二次故障。
分布式检测作为切换系统的核心组件,分布式检测功能主要解决系统容灾方面的问题。按照京东数据库服务器多数据中心部署的特征,独立的数据中心各部署了一个检测节点,并通过特殊标识的接口域名区分。当发生切换操作时,切换系统会根据传入的故障主机IP等信息,随机选取两个机房接口执行调用,探活操作如果发现有一个节点主机存活,那么认为主机存活,如果发现两个节点都探测为宕机,那么认为主机宕机。
Master故障切换主库实例故障,切换系统会首先通过分布式检测系统检查实例存活状态,确认宕机后将根据基础信息中的实例切换标识,选择使用自动切换或手动切换,两种切换方式原理相同:先在切换系统上创建切换任务,手动切换需要DBA执行切换按钮,切换操作会通过insert方式插入数据以验证实例运行状态,避免实例夯住和硬盘只读的情况。如果没有存活的从库,则放弃本次操作并以邮件和短信的方式通知DBA。新主库是按照先本地(先连接数少,后QPS负载低),后异地的原则选择,执行切换成功后将变更相应元数据信息,示例如下:
1.4.3 Slave故障切换从库实例故障,将故障实例下的域名变更到该集群下的非故障实例上,选择目标实例方式与主库实例选择规则一致。切换成功或失败都会发邮件及短信告知相应的DBA。故障实例恢复后,DBA判断是否需要回切。示例如下:
1.4.4 主从计划性切换主从计划性切换实现了按单集群,多集群的批量切换。执行批量切换时可以查看子任务切换的具体步骤,切换后会有前后架构的对比,具体示例如下: 批量创建任务,选择原则根据先本地后异地,先连接数后QPS,10.66.66.66:3366选择目标主库为:10.88.88.89:3366。
切换子任务详细信息,可查看到每个子任务的切换结果,执行步骤及前后架构。
京东MySQL数据库切换系统各功能模块都已组件化、服务 简化了DBA的操作流程,缩短了数据库切换的时间。
1.5. 数据库自动化备份恢复1.5.1 架构设计京东数据库备份系统在设计之初,就是为了将DBA从繁杂的备份管理工作中解脱出来,实现自动处理,减少人为干预,并提高备份文件的可用性。关于备份文件可用性问题,以轮询恢复的策略确保每个集群在一个周期内都被恢复到。系统架构设计如下图所示:
架构具备以下几个特点:
1) 调度触发多样化:
interval是周期调度,可以指定固定间隔时长的任务调度,支持时间单位有weeks、days、hours、minutes、seconds,并支持设定调度开始时间和结束时间以及时区设置。
date是一次性定时调度,支持时区设置。
由于调度任务设置具有不均衡性,可能某一时刻需要调度的任务较多,容易引起调度系统出现问题,因此执行任务通过控制并发数来使任务调度执行运行更加平稳。
3) 触发和执行分层:
任务触发本身是轻量级集的,而任务执行一般都比较重,因此对触发和执行进行了分层设计,来防止因为执行时间过长导致后续触发出现问题。
4) 维护期间任务不丢失:
Linux的crontab在停机维护期间要运行的任务开机后并不会再次执行,而基于APScheduler的调度中心则会在启动后运行指定间隔内尚未执行的任务,减少因维护而错失任务的执行。
5) 备份策略增删改查:
之前公司的备份系统是需要指定特定的IP,经常因为服务器维护而导致备份失败,故在设计之初就将备份策略与高可用结合在一起,备份策略指定域名而不是IP。从库因为故障切换时DBS会将此从库上的域名切换到集群内的其他从库,相应的备份也跟随到了此从库,保证了备份服务器是可用的。
备份很可能因为偶然因素而失败,因此加入了备份重试的功能,会对6小时以内的备份失败任务进行备份重试,最多重试3次,来获得更高的备份成功率。
备份在每一步都要严格地验证,但是也无法绝对保证备份文件可用,因此引入了自动恢复检测机制,来帮助DBA对备份文件进行检测,及时发现因为各种未考虑到的情况导致备份文件不可用的情况,并且恢复检测也是审计的一个硬性要求,自动恢复检测也将DBA从繁重的恢复检测工作中彻底解脱了出来。
整个自动化备份恢复系统主要由调度系统、备份系统、恢复系统、恢复检测系统、自动修复系统组成。其中调度系统是整个系统核心,通过调度系统来协调其他系统运行。调度系统可以部署Standby来实现高可用,执行器以集群部署来实现高可用和横向扩容。
备份系统每次备份时都会进行实例健康状态检查、备份运行状态检查等,防止对无效的数据库实例进行备份;恢复系统主要是在需要进行数据恢复、弹性扩容等等需要从备份文件恢复成运行的数据库实例时使用,能够让DBA通过简单地操作即可完成数据的恢复;恢复检测在调度系统的指挥下自动对备份文件可用性进行检测,来帮助DBA及时发现不可用的备份文件;备份失败有些是能够通过失败自动重试来解决,但有一部分是重试所不能解决的,需要进行相应修复,因此开发了自动修复系统来自动修复因为环境等问题引起的备份失败。
调度系统是最核心的一个系统,是整个备份恢复系统的大脑,当时考察了几种实现方式,例如Linux的crontab、Azkaban和python的开源框架Apscheduler,最终认为Apscheduler更加灵活小巧,调度方式也更加多样化,使用Python开发后期维护成本更低,因此采用Apscheduler开发了调度中心。
主要分为备份策略管理、备份详情、备份黑名单管理、恢复详情四个模块。
备份策略管理的页面包含了备份状态分布情况、存储使用情况以及每个集群的当前备份策略状态,如果已经添加了备份策略则可以在这里进行(时间、服务器、备份方式)修改、暂停(继续)、删除操作,如果没有添加备份策略,则可以进行添加。
备份详情里面展示了最近备份总数,成功数,成功率,当天备份任务运行状态,备份任务24小时分布曲线图以及备份详细记录。备份详细的记录可以根据集群名、项目名等信息进行查询,方便DBA更好地掌握备份运行状况。
恢复检测页面包含最近每天恢复检测数,恢复检测成功数,成功率柱状图,当天恢复检测任务运行状态饼图和近期恢复检测完成率,有助于DBA对恢复概况有更清晰的了解。
2.1. 过去在ContainerDB之前,京东的数据库服务实现了容器化,虽然数据库服务已经完全通过Docker容器实现了数据库服务的快速交付和自动故障切换等基本功能,在一定程度上提高了数据库服务的稳定性和效率,但是数据库服务的运维和使用方式与传统方式基本无异,比较典型的问题如下:
2.1.1 资源分配粒度过大数据库服务器资源标准固定,粒度过大,为数据库服务可提供的资源标准过少。
资源浪费严重资源分配的标准有DBA根据经验决定,存在很大的主观性,不能根据业务的实际情况进行准确评估,而DBA在分配资源的时候一般都会考虑在3年以内不需要对服务进行迁移或者扩容,而一次分配比较多的资源,存在严重资源浪费。而且由于数据库资源标准固定,标准过大,导致宿主机中的碎片过大,经常出现一台宿主机只能创建一个容器,而剩下的资源满足不了任何资源标准,导致宿主机上资源使用率过低。
2.1.3 资源静态、无调度数据库服务一旦提供,所占据的资源就会固定,不能根据数据库的负载进行在线动态的调度,而一旦数据库的硬盘使用率过高,需要DBA人工介入进行扩容处理,效率低下。
基于以上的问题,单纯的数据库服务容器化已经无法解决,我们需要让数据库服务更聪明,让数据库的资源能够动起来,提供资源分期交付的功能,于是ContainerDB应运而生。ContainerDB基于负载的弹性调度为京东的数据库资源赋予了智慧,令其资源真正地流动起来,并已成功服务于多次618和11.11大促。
ContainerDB针对每个业务应用都有逻辑库,逻辑库中定义了针对整个业务所有表的拆分键(Sharding Key)进行哈希取模运算时模的范围(KeySpace),在每个逻辑库中可以创建多张表,但是每个表中必须定义Sharding Key。通过该Sharding Key将表中的数据拆分成多个分片(Shard),每个分片都对应一个KeyRange,KeyRange表示对Sharding
Key进行哈希取模运算之后得到的值(Sharding
Index)的一个范围,每个Shard都由一整套MySQL主从架构提供数据库服务支撑。应用程序只跟Gate集群进行交互,由Gate根据元数据信息和SQL语句完成数据写入和查询的自动路由。ContainerDB中的监控中心会对所有的基础服务和资源使用状况进行实时监控,并通过在监控中心注册的Hook程序自动进行动态扩容、故障自愈、分片管理等,而这一系列操作对应用程序来说是完全无感知的。
2.2.1 流式资源持续交付
2.2.2 基于负载的弹性调度数据库服务使用的资源分为两类:瞬时资源和递增资源。
2.2.3 不止于调度弹性和流式的资源交付与调度是ContainerDB的基石,但是除了这两个核心功能之外,ContainerDB还在用户易用性、兼容性和数据安全性等方面做了很多工作,包括:
数据保护在传统的直连数据库的方案下,当Master出现网络不可达时,一般都会选择新的Slave变为Master,然后将原来Master上的域名漂移到新的Master上。但是这种方案在网络抖动的情况下很容易由于AppServer上的DNS缓存,而导致双Master,并且出现脏写的情况。从整体架构图可以看出,ContainerDB与用户之间通过Gate连接。Gate是一个集群化服务,多个Gate服务都映射到一个域名下,Gate通过IP地址直接访问各个MySQL服务,而且Gate对各个MySQL角色的识别完全依赖于元数据服务:Topology。当ContainerDB中某个MySQL的Master产生网络不可达时,会选出新的Master,并更新路由元数据信息,最后才做Master切换,这样就避免了由于网络抖动和DNS缓存而在成双主和数据脏写,从而对数据进行了严格的保护。
ContainerDB通过在Gate层实现基于优先级的归并排序提供了快速流式查询的功能,在进行大批量数据查询时,能瞬时返回部分查询结果数据,极大提高客户体验。
无感知数据迁移ContainerDB通过在交叉在Window函数中分别执行部分存量数据拷贝和增量数据追加的算法,开发了在线数据迁移和接入工具JTransfer,通过JTransfer可以将传统MySQL数据库中的动态数据迁移到ContainerDB中,当ContainerDB中的数据与源MySQL中的数据的lag小于5秒时,首先会将源MySQL停写,待lag变为0时将源MySQL的域名漂移到Gate集群,整个迁移过程用户AppServer无感知。
兼容MySQL协议ContainerDB完全兼容MySQL协议,支持标准MySQL客户端和官方驱动程序接入,并且支持大部分ANSI SQL语法。
ContainerDB与用户之间通过Gate集群进行连接,Gate根据用户发送的查询语句形成的语法树和查询执行计划得到查询中涉及到的所有表,并根据Topology中的元数据信息获得各个表的分片信息,最后结合语句中的Join中的关联条件和Where字句中的谓词信息,将查询或者写入路由到正确的分片。整个过程都是Gate自动完成的,对用户完全透明。
自助化服务ContainerDB将对数据库服务的实例化、DDL/DML执行、分片升级和扩容等功能抽象成为独立的接口,并借助于流程引擎提供了流程化的完全自助的用户接入服务,用户申请数据库服务成功后,ContainerDB会将数据库访问口令自动推送到用户邮箱。
3. 展望过去已去,未来已来。
陕西专业服务器运维技术支持|创新服务
DDoS攻击的一个致命趋势是使用复杂的欺骗技术和基本协议,如HTTP,Email等协议,而不是采用可被阻断的非基本协议或高端口协议,非常难识别和防御,通常采用的滤或速率的措施只是通过停止服务来简单停止攻击任务,但同时合法用户的请求也被拒绝,造成业务的中断或服务质量的下降;DDoS事件的突发,往往在很短的时间内,大量的DDoS攻击数据就可是网络资源和服务资源消耗殆尽。 现在的DDoS防御手段不够完善 不管哪种DDoS攻击,,当前的技术都不足以很好的抵御。
陕西专业服务器运维技术支持|创新服务
作为DDoS防御平台的IDS大的缺点是它只能检测到攻击,但对于缓和攻击的影响却毫无作为。IDS解决方案也许能托付给路由器和防火墙的过滤器,但正如前面叙述的,这对于缓解DDoS攻击效率很低,即便是用类似于静态过滤串联部署的IDS也做不到。
陕西专业服务器运维技术支持|创新服务,2. 从恶意业务中精确辨认出好的业务,维持业务继续进行,而不只是检测攻击的存在 1. 要缓解攻击,而不只是检测 完整的DDoS保护围绕四个关键主题建立: 从事于DDoS攻击防御需要一种全新的方法,不仅能检测复杂和欺骗日益增加的攻击,而且要有效抵御攻击的影响。 有效抵御DDoS攻击
陕西专业服务器运维技术支持|创新服务,404错误页面相当于一个友好提示,当搜索到某个页面如果出现404错误,则搜索引擎认为该链接失效;如果持续的时间长,搜索引擎会把页面从数据库中删除,这样必然影响网站的收录和排名。如果做一个404错误页面,当某个页面不能访问时直接跳转到404页面上,而且在404页面上存在可达的连接地址,则搜索引擎可以通过页面的连接继续抓取整个网站的内容,不会因某个页面而影响整个网站的抓取。10、404错误页面 对于新站,一定要在做内容的溶蚀交换链接。网站交换友情链接的目的有两个,提高网站PR值和吸引蜘蛛爬虫抓取网站,交换链接时要看对方的网站收录量,PR值,快照和相关。 9、友情链接
北京君云时代科技有限公司成立于2015年,是少数几家业务完全基于云计算的服务型公司, 专注互联网业务,提供一站式运维服务解决方案,包括但不于云上咨询服务、方案设计、系统实施、应用迁移、系统管理、混合云管理,数据中心建设等服务,为企业搭建云计算时代的IT基础技术框架及运维服务。我们的使命是帮助企业建立标准化的运维体系促进开发规范,并通过专业的运营分析数据 帮助企业节省成本,创造更多的业务营收,从而真正帮助企业有效的使用云计算和大数据, 实现运维真正的价值。
北京君云时代科技有限公司成立于2015年,是少数几家业务完全基于云计算的服务型公司, 专注互联网业务,提供一站式运维服务解决方案,包括但不于云上咨询服务、方案设计、系统实施、应用迁移、系统管理、混合云管理,数据中心建设等服务,为企业搭建云计算时代的IT基础技术框架及运维服务。我们的使命是帮助企业建立标准化的运维体系促进开发规范,并通过专业的运营分析数据 帮助企业节省成本,创造更多的业务营收,从而真正帮助企业有效的使用云计算和大数据, 实现运维真正的价值。
这是擎创科技成立一年多来完成的第二笔融资,将助其加强科研技术攻关及产品算法等方面的研发,进一步通过机器学习海量数据,多维度盘活企业运维数据价值,辅助企业进行业务决策。
投资界(pedaily2012)2月7日消息,致力于以人工智能赋能企业运维的国内AIOps领域先行者“擎创科技(EOI)”宣布完成数百万美元Pre-A轮融资。本轮融资由领投、跟投。
这是擎创科技成立一年多来完成的第二笔融资,将助其加强科研技术攻关及产品算法等方面的研发,进一步通过机器学习海量数据,多维度盘活企业运维数据价值,辅助企业进行业务决策,用先进的AIOps运维模式为业务保驾护航。
当今社会已基本进入了大数据纪元,数据量暴增、数据间关系日趋复杂,传统IT运维管理模式迫切需要从原有的人工加被动响应,转变为更高效、更智能化的运维体系,引入人工智能技术,用机器的无监督自学习模式取代对高技能运维人员的严重依赖是大势所趋。这也是权威IT咨询机构Gartner在2017年首次提出“AIOps(AI for IT Operations)”这一概念的初衷,即基于AI,通过大数据、机器学习及更多高级分析技术赋能IT运维,使其具备主动性、人性化及动态的能力,直接或间接提升目前传统IT运维的效能。
这些看似生涩的技术其实与每个人的生活息息相关。
平日里我们时不时会遇到“怪事”:比如手机APP的闪退,电商网站购物车始终无法加载,手机支付工具一直付款失败等等。如此小事,一旦发生在诸如金融、大型制造业、铁路民航、能源电力等涉及国家发展和民生问题的重型行业,往往会造成不可挽回的损失和巨大的社会负面效应,给正常生产生活带来极大影响,甚至引发“黑天鹅事件”。究其元凶,很大一部分是由企业IT运维不力所造成的。
因此,上述领域的企业对IT运维工具的依赖度极高,用户粘性大,具有极强的刚性需求。Gartner预测,比起现今5%的数据比例,到2019年,全球25%的公司都将系统性部署实施AIOps平台。到2022年,40%的大型企业会通过大数据和机器学习的能力来帮助甚至逐渐取代传统运维中的监控、服务台及流程。
从市场规模来看,根据市场调研机构IDC的报告,2018年中国1000强企业中50%都将把数字化转型作为企业的战略核心。更多中型企业的加入将带动IT运维工具市场的快速兴起:预计2020年行业规模将达250亿人民币,每年增幅超20%。
擎创科技自主研发的大数据智能运维产品“夏洛克AIOps”拥有多项自研算法,这些算法犹如运维界的福尔摩斯,能迅速发现并定位运维问题的根因,实现秒级排障,最大程度避免企业产生重大损失。更有价值的是,“夏洛克AIOps”还能通过长期的数据积累和机器学习,运用新型深度神经网络算法对企业的业务数据进行预测,帮助企业提前规划IT资源,高效预防各类黑天鹅事件的发生。
擎创团队的核心成员主要由BMC、微软等美国企业服务上市公司的运维老兵,与新浪、等知名互联网公司的大数据、算法专家组成,至少拥有10年以上的行业经验。得益于先进的技术理念及对运维市场的深刻理解,擎创科技在2017年同时获得了运维产品市场及资本市场的双向认可。“夏洛克AIOps”产品自上线以来,一年时间内迅速得到一批行业标杆客户的拥簇。在2017全球运维大会上,擎创科技获得由中国信息通信研究院与高效运维社区联合颁发的“年度最具影响力AIOps产品”奖。在12月由发布的“中国企业服务成长50强”的名单里,擎创科技亦赫然在列。
(左一为擎创科技创始人兼CEO杨辰)
本轮投资璟资本坚定认为,AI爆发的时代已经到来,这是一条正确的赛道。他表示,“擎创正在利用人工智能的方式实现超越人类逻辑的模式识别,并付诸于实际复杂的IT环境中,巧妙利用AI解决IT运维事前无法预测,事后无法排查的大难题,这正是AI应用的未来。”
连续追投两轮的原子创投合伙人则更看好团队:“擎创的核心团队几乎清一色是经验丰富的企业服务领域专家,其中CEO杨辰是国内最顶级的B端销售,曾带领团队获得10倍的业绩增长;CTO葛晓波长达15年的企业级软件开发和运维经验让擎创成为企业客户最信赖合作伙伴。多家金融、制造行业标杆客户在运行关键服务模块上最终选择了擎创,证明了其团队强大的业务实力。”
【本文为投资界原创,网页转载须在文首注明来源投资界(微信公众号ID:PEdaily2012)及作者名字。微信转载须在文章评论区联系授权。如不遵守,投资界将向其追究法律责任。】
版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。