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

Posted 架构之家

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了构建高效的研发与自动化运维相关的知识,希望对你有一定的参考价值。

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

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

运维应包括如下:

  • 环境定义:开发环境、测试环境、类生产环境、生产环境等。

  • 部署:能够将部署包有效的部署到不同的环境。

  • 监控:能够监控部署后的系统和应用。

  • 告警:出现问题时的响应和处理机制。

  • 性能优化:系统各个服务如nginx/Java/php/DB/网络的优化。

  • SLA保障:通常要和业务相关部门讨论确定。

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

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

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

 

 

依赖开源的技术栈 
•语言: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

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

 

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模拟测试

出处:http://www.cnblogs.com/wintersun/p/5059097.html

以上是关于构建高效的研发与自动化运维的主要内容,如果未能解决你的问题,请参考以下文章

如何在微服务架构下构建高效的运维管理平台?

高效运维工具 Python

老司机:如何让运维操作更轻松高效

DevOps会导致测试人员失业,何去何从(上)?

高效研发运维体系构建的流程和方法论

浅谈运维规模化可持续构建实战