CloudFoundry中国研发团队分享胡詠捷、谢兵、李宇翔现代的Web应用程序架构3LoadBalancersReverseProxiesWebServersDatabases/NoSQLWebCacheQueueDataCache网络化安全第一考虑部署备份监控故障恢复IaaS4PaaS5公有或私有的PaaS•Scrum实践•测试驱动开发-TDD•持续集成-CI•快速部署主要内容6••轻量级的敏捷项目管理工具•Story•ICEBOX•BACKLOG-priority-based•CURRENT•ReleaseScrum-PivotalTracker7•0–很快搞定•1–2小时左右•2–半天左右•3–大任务,还需要分解Scrum–关于points8•Started•Finished•Delivered•Accepted•RejectedScrum–StoryState9•10:00am每天准时开始•内容–昨天做了什么–今天做什么–遇到了问题(blocker)•15分钟以内Scrum–Standupmeeting10•周一上午11:00am•会议长度:2小时•沟通和交流需求•讨论优先级•开发人员一起评估时间Scrum–Spring计划会议11•每两周一次•周五下午4:00pm•爽的•不爽的–问题分类–排列问题的优先级–讨论问题的解决方法,转成todo•TodolistScrum–回顾总结会retrospective12•Rspec•Controllerspecs•Helpersspecs•Modelsspecs•Requestsspecs•JavascriptsspecsTDD–先写测试13•Jasmine•Setup–geminstalljasmine–railsgjasmine:installrailsgjasmine:examples•Usage–rakejasmine–rakejasmine:ci•DemoTDD-Javascriptsspecs14•Jenkins•CCMenu•Projectmonitor–aCIdisplayaggregator.CI15•BOSH•用CAP部署到cloudfoundry上(demo)•运行integrationtest快速部署1718•高可用性•开放性•安全•自愈•灾备代码集成管理系统19代码集成流程1920资源分配20节点数量资源池CPU(核)内存系统盘数据盘nginx2小12G4G128Mgerrit_mysql1小12G4G8Ggerrit_mysql_slave1小12G4G8Ggerrit_replication1小12G4G8Ggerrit1中48G16G24Gjenkins2中48G16G32Gjenkins_slave8大48G64G32G21代码管理系统-Gerrit2122代码测试系统-Jenkins2223神奇的Warden23•孤立容器•进程隔离•资源控制•虚拟网络eth容器容器容器vethvethveth虚拟主机24•2条线程/Slave•1个容器/线程•输出流•现在:脚本控制•将来:Jenkins插件Jenkins+Warden2425Jenkins与Warden的实战2526神奇的Bosh26Bosh客户端创建删除获取调度管理器(Director)获取代理客户端实例管理器任务执行器创建任务任务模型代理客户端代理目标虚拟机代码集成系统27Bosh的优点27•智能检测•统一部署•细化更新•高效简洁28自愈方案-Monit2829备份方案29•主从备份•Mysql主从•复制拷贝•Jenkins单向拷贝•第三方备份•github•灾备•外链NFS30监控方案30预警机制31•邮件•短消息•手机•CloudFoundry:•Warden:•OSS-release:•OSS-documentation:•ChinaDeveloperWebsite:•CFJenkins:•CFGerrit:!@cloudfoundry@VMware上海研发中心