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


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

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

    运维应包括如下:

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

    image

    服务治理、任务调度、集群协同、调用链分析、接口质量、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项目管理

     

    image

    image

    image

     

    开发阶段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

    image

     

    1、分布式服务架构

    image

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

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

    image

    运维配置标准化3大层次


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

     

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

    image

    image

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

    image

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

    image

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

    image

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

    image

    image

     

    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追踪
    •日志统计

    image

    4.4、实时日志监测

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

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

    6、自动化测试

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

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

        自动化测试—Mock模拟测试


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

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

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

    MegadotnetMicroMsg_thumb1_thumb1_thu[1]

     


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

  • 相关阅读:
    如何不加班,以前问题的答案
    django部署
    djangocms安装技巧
    django_cms安装技巧
    sublime text 3插件
    昨日总结2016年1月11日
    django例子,question_text为中文时候报错
    关于django访问默认后台admin的时候提示403错误,
    laravel安装学习步骤
    关于composer安装插件时候提示找不到fxp插件时候的解决办法
  • 原文地址:https://www.cnblogs.com/wintersun/p/5059097.html
Copyright © 2020-2023  润新知