《标准项目流程》PPT课件.ppt
DevOps工具介绍,2012-09-13,Agenda,DevOps介绍工具链介绍我们的经验总结,天下武功,唯快不破,标准项目流程,快是什么,快的核心是什么?,稳,怎么样才能又快又稳?,DevOps,什么是DevOps,Wiki上定义:DevOps是一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运营和质量保障(QA)部门之间的沟通、协作与整合。它的出现是由于软件行业日益清晰地认识到:为了按时交付软件产品和服务,开发和运营工作必须紧密合作。,什么是DevOps,所有人干所有活从开发测试到运维,不Eatingyourown dog food信任其它兄弟开发的模块对代码负责要编写完善的测试用例对线上系统负责有肩扛7*24的勇气,Agenda,DevOps介绍工具链介绍我们的经验总结,成功开发一个项目需要什么?,代码管理工具 测试工具部署工具集群管理工具监控工具日志工具报表系统团队管理工具,代码管理,大公司,按规定做一定要做 code review有条件的GitHub+Gerrit,测试工具,使用单元测试JUnit,PHPUnit,etc.使用持续集成 Jenkins,Jenkins介绍,CI工作流程,s,SVNCVSGIT,Jenkins,C+编译器,C#编译器,Java编译器,其它强类型语言编译器,检查更新,JUinit,各种单元测试,CppUnit,PHPUnit,Jenkins,部署工具-capistrano,1.开源,免费2.可以查看线上版本的diff3.快速Rollback4.支持gateway,多台机器部署5.支持部署前后的各种动作6.支持调用shell命令,集群管理 puppetpuppet 遵循GPL 协议(2.7.0),基于ruby 语言开发的系统配置管理工具 说明性语言表达系统,用库实现配置 基于C/S架构,配置客户端和服务端,也可以独立运行 puppet 对于系统管理员是抽象,只依赖于ruby与facter.默认情况下,客户端每30分钟连接到puppetmaster 客户端被修改的配置会恢复到与服务器端相同,Puppet解决什么问题?,传统上线流程:买机器-找机房-上架-网络-安装系统-安装nginx/apache-安装php-安装MySQL-安装Memcache-修改各种系统配置-部署开发的服务-对外提供服务云计算时代:申请虚机-Puppet自动安装部署系统-对外服务,监控工具,传统监控工具:Cacti zabbix Nagios Ganglia实时监控工具:OpenTSDB云监控:监控宝,基调,OpenTSDB解决什么问题?,1)中心化数据存储进而导致单点故障。2)有限的存储空间。3)数据会因为时间问题而变得不准确。4)不易于定制图形。5)不能扩展采集数据点到100亿级别。6)不能扩展metrics到K级别。7)不支持秒级别的数据。,Opentsdb 示意图,日志系统,1.大型分布式系统,定位问题只能靠日志2.所有日志应该集中3.日志要分级别4.日志记录信息要简要又要全面5.异步请求每条日志都需要记录RequestID6.关键步骤一定要记录7.所有日志格式要统一8.日志要作为Code Review的重点之一,报表系统-BIRT,1.基于 Eclicpse开源报表系统2.Web展现,图表类型丰富3.支持混合报表4.数据导入方便5.要相信可视化的力量,团队管理工具,Wiki Ticket Redmine confluence爱谁谁,关键是谁要都爱用,Agenda,DevOps介绍工具链介绍我们的经验总结,监控+日志,Jenkins,TDD?Scrum?,Puppet,Openstack由几十分钟一台变成一小时可以部署1000台JDS(京东数据库服务)使用puppet管理所有虚拟机内部Cloudfoundry计划使用puppet解决部署问题,我们正在努力推行,1.统一部署系统(已上线)2.统一日志系统(试运行)3.统一监控系统(已上线)4.统一编译系统(已上线)5.JA系统(统一数据收集分析)(已上线)6.统一持续集成(准备中),总结,在开发运维的各个流程中使用合适的工具要正确地使用工具比如:足够而且有效的单元测试 足够多覆盖到系统生存状态的监控点工具不能解决问题,工具只是帮助人快速地解决问题,