规范化。。。呃,这个东西看你要有多规范了,给你个cmmi定义的5个层次做参考吧。
1. 手工作坊式,即产品质量全靠开发人员的个人英雄主义做法,无法保证开发新产品能有同样的质量。
2. 已经有了一些流程,进行一定的监控和控制,可以保证开发新产品有同样的质量。
3. 标准的流程,明确的出入口条件。
4. 可度量的,有了明确的量度,可以对过程和结果进行数字化的度量以计算完成度。
5. 自优化的,预防性的,可以预估行为,过程,结果,应用新技术,进行相应措施优化过程。
为什么IT运维需要自动化?
所谓IT运维管理的自动化是指通过将日常IT运维中大量的重复性工作,小到简单的日常检查、配置变更和软件安装,大到整个变更流程的组织调度,由过去的手工执行转为自动化操作,从而减少乃至消除运维中的延迟,实现“零延时”的IT运维。简单的说,IT运维自动化是指基于流程化的框架,将事件与IT流程相关联,一旦被监控系统发生性能超标或宕机,会触发相关事件以及事先定义好的流程,可自动启动故障响应和恢复机制。自动化工作平台还可帮助IT运维人员完成日常的重复性工作(如备份,杀毒等),提高IT运维效率。同时,IT运维的自动化还要求能够预测故障、在故障发生前能够报警,让IT运维人员把故障消除在发生前,将所产生损失减到最低。
运维应包括如下:
服务治理、任务调度、集群协同、调用链分析、接口质量、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模拟测试
以上内容部分来自网络, 希望对您系统架构设计,软件研发有帮助。