构建高效的研发与自动化运维

为什么IT运维需要自动化? 

所谓IT运维管理的自动化是指通过将日常IT运维中大量的重复性工作,小到简单的日常检查、配置变更和软件安装,大到整个变更流程的组织调度,由过去的手工执行转为自动化操作,从而减少乃至消除运维中的延迟,实现“零延时”的IT运维。简单的说,IT运维自动化是指基于流程化的框架,将事件与IT流程相关联,一旦被监控系统发生性能超标或宕机,会触发相关事件以及事先定义好的流程,可自动启动故障响应和恢复机制。自动化工作平台还可帮助IT运维人员完成日常的重复性工作(如备份,杀毒等),提高IT运维效率。同时,IT运维的自动化还要求能够预测故障、在故障发生前能够报警,让IT运维人员把故障消除在发生前,将所产生损失减到最低。

运维应包括如下:

  • 环境定义:开发环境、测试环境、类生产环境、生产环境等。
  • 部署:能够将部署包有效的部署到不同的环境。
  • 监控:能够监控部署后的系统和应用。
  • 告警:出现问题时的响应和处理机制。
  • 性能优化:系统各个服务如Nginx/Java/PHP/DB/网络的优化。
  • SLA保障:通常要和业务相关部门讨论确定。

服务治理、任务调度、集群协同、调用链分析、接口质量、SQL质量、实时日志等

打包、自动化测试、检测、灰度发布、分区上线、运维自动化、配置标准化、指令标准化等

分布式框架、存储&缓存中间件、自动化测试、云搜索、开放平台、营销平台等基础设施

 

自建技术基础设施(开源+自研)
?自动化发布系统——灰度发布、分区发布
?运维配置自动化系统——运维系统自动发现、标准化配置
?原子指令系统——支持数百台服务器、数百个原子脚本操作
?搜索平台——支持数百个索引、上亿条数据
?推荐计算平台——支持数亿用户数据计算
?API自动化测试系统、Mock模拟测试系统——支持接口的自动化测试、模拟测试、Web自动化测试
?API放水系统、SQL防水系统——治理系统不合理调用
?实时日志系统——支持Nginx、Tomcat、BI实时日志和离线跟踪
?分布式开发框架——统一分布式通信
?配置分发系统——支持配置项、集群服务发现
?MQ分布式消息中间件(推模式IDP、拉模式Kafka)——1500w/周一~周五,600w/周六日
?KV分布式缓存系统中间件(Memcached、Redis、Tair)——亿级数据缓存、95%命中率
?LPFS分布式文件中间件(MongoDB)——MongoDB、图片、文件
?DB数据库分库分表中间件(MySQL)——无限数据量扩展
?分布式任务调度中间件(Schedule)——支持100+服务、200+/日个分布式任务调度
?Push统一消息推送平台——每日100w+推送量,推送至Android、iOS、Email、SMS、微信、Comet

 

依赖开源的技术栈
?语言:Java(Tomcat/Spring) Shell(运维) Nodejs(前端)  Android iOS
?分布式:ActiveMQ Kafka Zookeeper Router服务发现 Cat
?存储:Mysql Mongodb Tair Memcached Redis
?计算:Solr ElasticSearch Hadoop HBase Storm Spark
?运维:Linux Nginx Puppet Zabbix OpenStack
?项目管理:Eclipse Git Maven构建 Hudson持续集成 Confluence知识分享  DMS项目管理

 

 

开发阶段Code/build
?开发框架
?|-web开发框架Swift
?|-nodejs前端开发框架
?|-ios移动开发框架
?|-android开发框架
?|-shell脚本自动化
?分布式中间件
?|-分布式调用RPC
?|-实时推送comet
?|-推消息队列IDP
?|-拉消息队列Kafka
?|-配置系统Zookeeper
?|-调度系统Scheduler
?存储中间件
?|-关系存储mysql
?|-文件存储mongodb
?|-KV存储tair
?|-二级缓存redis
?|-一级缓存memcached
?计算平台
?|-云搜索
?|-推荐
?|-大数据计算
?|-网页解析
?|-文本解析
?|-Word预览
测试阶段Test/ci
?|-API自动化测试
?|-API模拟测试Mock
?|-Web自动化测试Selenium
?|-微信测试WXTest
?|-Open测试KATest
?|-测试环境发布
上线阶段Release/deploy
?|-发布系统
?|-运维系统
?|-代码检测Builder运维阶段
运维系统Monitor
?|-自动化系统
?|-监控系统Zabbix
?|-雷达日志系统
?|-Puppet/Mco

服务治理Service
?|-API放水系统APIWater
?|-SQL放水系统MonyogSQL
?|-Router服务中心
?|-配置分发系统
?|-调度系统Scheduler
?|-调用链系统Cat运营阶段
?开放平台
?|-微信平台Weixin
?|-微博平台Weibo
?|-电话平台Jiya
?|-支付平台Pay
?|-开放平台API
?|-SEO平台Resource
?运营平台Channel
?|-推送平台Push
?|-短信平台Push
?|-邮件平台Mail
?|-微信平台Open
?|-私信平台MessageCode

 

1、分布式服务架构

服务发现、通信、控制
分布式注册中心Router:
?同步调用RPC
?服务协议:HTTP协议/心跳检测
?服务发现:集群信息统一文件Router.conf
?负载均衡
?异步调用MQ
?推模式:开发快、稳定、实时快
?拉模式:可回溯、日志收集、数据同步
?分布式任务调度
?Schedule调度系统
?分布式事务控制
?Swift开发框架:交易型事务的一致性

2、运维研发的自动化体系

运维配置标准化3大层次


?2.1、硬件标准化:
?-机器标准化:机房、机架位、交换机、机器
?-资源标准化:IP、DNS
?-配置标准化:机器配置自动化采集、标准化检测,KVM化
?2.2、软件标准化:
?-软件安装标准化:tomcat jdkmemcachedredis...
?-Nginx标准化:域名、配置、发布
?2.3、项目标准化:
?-项目配置标准化:S区、A区、B区、C区
?-支持多种项目:tomcat、java、nodejs、Python、ios\Android

 

2.1、硬件标准化—自动化采集

2.2、软件标准化—统一软件规格

2.2、软件标准化—自动化安装卸载

2.2、软件标准化—服务自动管理

2.2、Nginx标准化—自动配置300域名

 

3、项目发布自动化体系
?3.1、代码发布系统
?-灰度发布
?-分区发布:泳道发布

?3.2、配置发布系统
?-发布配置信息
?-集群协作:Solr、Kafka

?3.3、原子指令
?-系统级操作
?-系统操作日志

 

4、服务治理体系
?服务健康状态检测
?分布式任务调度(Schedule)
?调用链分析(Cat)
?实时日志监测(雷达系统)
?API质量治理(APIWater)
?SQL质量治理(Monyog)

4.1、服务健康状态检测

4.2、分布式任务调度Schedule

分布式调度中心:
?基于Mina分布式协调
?选择服务的单点调度
?多点服务failover
?长时间任务断点续传
?任务依赖调度

 

4.3、调用链分析Cat

4.4、实时日志监测(雷达系统)

?实时日志查看
?历史日志分析
?用户或IP追踪
?日志统计

4.4、实时日志监测

4.6、SQL质量治理(Monyog)
?MySQL性能监控工具MONyog,分析慢SQL
?程序打印慢SQL日志
?优化索引、表结构

5、测试环境的自动化构建

6、自动化测试

    自动化测试—API自动化测试

    自动化测试—Web自动化测试
     ?Selenium—Web页面的自动化测试

    自动化测试—Mock模拟测试



以上内容部分来自网络, 希望对您系统架构设计,软件研发有帮助。 其它您可能感兴趣的文章:

互联网数据库架构设计思路
某大型电商云平台实践
企业级应用架构模式N-Tier多层架构
某企业社交应用网络拓扑架构图
IT基础架构规划方案一(网络系统规划)
餐饮连锁公司IT信息化解决方案一

如有想了解更多软件研发 , 系统 IT集成 , 企业信息化,项目管理 等资讯,请关注我的微信订阅号:

 

作者:Petter Liu
出处:http://www.cnblogs.com/wintersun/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
该文章也同时发布在我的独立博客中-Petter Liu Blog

时间: 2024-10-11 22:23:38

构建高效的研发与自动化运维的相关文章

电子书 Python自动化运维:技术与最佳实践.pdf

本书在中国运维领域将有"划时代"的重要意义:一方面,这是国内一本从纵.深和实践角度探讨Python在运维领域应用的著作:一方面本书的作者是中国运维领域的"偶像级"人物,本书是他在天涯社区和腾讯近10年工作经验的结晶.因为作者实战经验丰富,所以能高屋建瓴.直指痛处,围绕Python自动化运维这个主题,不仅详细介绍了系统基础信息.服务监控.数据报表.系统安全等基础模块,而且深入讲解了自动化操作.系统管理.配置管理.集群管理及大数据应用等高级功能.重要的是,完整重现了4个

手游公司运维之利用Rundeck自动化运维工具和Shell脚本构建测试环境代码发布平台和生产环境代码发布平台

在做手游运维工作之前,我接触的代码发布都是常规的软件发布,有固定的发布周期.之前工作的那个外企有严格的发布周期,一年中的所有发布计划都是由Release Manager来控制,每次发布之前都需要做一些准备工作,如填写发布表单,上传发布需要的资源文件,联系发布过程中的相关人员,如开发和测试.最后在公司内部开发的发布平台上按照指定的时间点击鼠标对一个集群内的几台主机或全部主机进行代码发布.这个发布平台还是基于rsync服务实现的.虽然每个星期都有各种服务的发布,但是整个发布流程是可以控制的,并且发布

CheungSSH国产中文自动化运维堡垒机3.0

CheungSSHWeb3.0   前言 虽然不优秀,但请给予支持和理解 在当今互联网的发展大势下,云计算和大数据已经成为主导.在两大趋势下,企业的服务器数量日益增多,如何有效的管理众多的服务器,已经成为了各大公司考虑的问题.在传统的人工管理模式下,已经很难做到高效的维护,是人管理服务器?还是服务器管理人? 为了解决这个问题,我痴迷于运维自动化研究,目前后端使用的Python语言+Django的Web框架,前端使用Bootstrap+Javascript+jQuery框架开发的CheungSSH

游戏运维的最佳实践:搜狐畅游自动化运维之旅!

搜狐黎志刚见证了畅游游戏自动化运维平台的从无到有,通过在其中踩过的坑.解过的结,他向大家来阐述游戏运维的进阶之路.本文主要围绕畅游游戏管理体系与运维自动化的演变历程.运维自动化的实现及未来运维四方面展开. 畅游运维管理体系与运维自动化的演变历程 畅游运维管理体系演变历程 从 2008 年毕业以实习生的身份进入搜狐畅游,我同公司一起成长,经历了整个运维管理体系从小到大的过程. 整个运维管理体系是从最初石器时代(脚本化),之后的青铜时代(半自动化).蒸汽时代(DevOPS)一路演变过来,现在处于自动

MySQL数据库性能优化及自动化运维实践教程!DBA日常工作

MySQL数据库性能优化及自动化运维实践教程!本文作者将站在更加全面的角度分享他在这一年多 DBA 工作中的经验,希望可以给大家带来启发和帮助. DBA 的日常工作 我觉得 DBA 真的很忙,我们来看看 DBA 的具体工作:备份和恢复.监控状态.集群搭建与扩容.数据迁移和高可用. 上面这些是我们 DBA 的功能,了解这些功能以后要对体系结构有更加深入的了解,你不知道怎么处理这些故障和投诉的事情. 所以我们要去了解缓存/线程.SQL 优化.存储引擎.SQL 审计以及锁与实务:体系结构更深一点,就去

函数计算自动化运维实战3 -- 事件触发自动创建快照

函数计算 阿里云函数计算是一个事件驱动的全托管计算服务.通过函数计算,您无需管理服务器等基础设施,只需编写代码并上传.函数计算会为您准备好计算资源,以弹性.可靠的方式运行您的代码,并提供日志查询,性能监控,报警等功能.借助于函数计算,您可以快速构建任何类型的应用和服务,无需管理和运维.更棒的是,您只需要为代码实际运行消耗的资源付费,而代码未运行则不产生费用. 云监控 阿里云云监控为云上用户提供开箱即用的企业级开放型一站式监控解决方案.涵盖IT设施基础监控,外网网络质量拨测监控,基于事件.自定义指

从零到一 | 如何搭建数据库自动化运维体系

需求背景: 随着业务的增长.对运维效率和质量的要求不断提高,对自动化运维体系的需求也不断增强. 目前笔者服务的很多中大型企业客户,运维其实还停留在“刀耕火种”的原始状态. 这里所说的“刀”和“火”就是运维人员的远程客户端,例如 xshell 和Windows 远程桌面. 这种工作模式有很多局限性, 比如服务器.数据库.中间件等的安装.初始化,应用软件部署.服务发布和监控都是通过手动方式来完成的. 这就需要运维人员登录到服务器上,一台一台去管理和维护. 如果有个几十上百台,累就累死人了. 笔者曾运

自动化运维工具介绍

运维目标有三个阶段,第一是追求稳定性,第二是追求标准化,第三是追求自动化.对于第三阶段来说,什么是运维自动化呢?简单地讲,运维自动化就是将日常重复性工作按照事先设定好的规则,在一定时间范围内自动化运行,而不需要人工参与.接下来简单介绍运维自动化工具,要了解运维平时用到的自动化工具,就需要了解运维人员的日常工作有哪些. 一.运维的日常工作 运维的日常工作可以总结为以下四个部分,分别是: (1) 系统安装 (2) 应用程序配置(Configuration) (3) 命令执行与控制(Command a

ansible自动化运维必备工具详解

第2章 ansible简单介绍: 2.1 ansible是什么? ansible是新出现的 自动化 运维工具 , 基于Python研发 . 糅合了众多老牌运维工具的优点实现了批量操作系统配置.批量程序的部署.批量运行命令等功能. 仅需在管理工作站上安装 ansible 程序配置被管控主机的 IP 信息,被管控的主机无客户端. ansible 应用程序存在于 epel( 第三方社区 ) 源,依赖于很多 python 组件 python语言是运维人员必会的语言!ansible是一个基于Python开