版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!适合互联网的简约架构的演进 白德鑫 技术副总监 乐视网揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!摘要项目背景为功能狂奔初遇瓶颈尝试优化善后反思重构选型在路上揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!TV应用开放平台项目架构演进a) 项目简介基于乐视网资源我们致力于打造为智能电视、智能机顶盒提供海量应用的国内第一品牌应用市场。为开发者提供优质应用服务的国内第一开发平台。b)目标a) 支撑数百万的电视终端及各种智能
2、STB每日千万访问请求支撑实时在线的统计分析,支持离线数据分析揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!a) 案例背景揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!电视客户端官方网站开发者服务平台管理系统用户系统统计系统运营系统5揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!为功能狂奔MySQLMySQLDB-1DB-2Service-1Service-2Service-3Service-4TomcatServiceTomcatServiceTomcatSer
3、viceTomcatServiceWeb-2TomcatPC-martDeveloperUserTV-proxyWeb-1TomcatPC-martDeveloperUserTV-proxyWeb-3TomcatPC-martDeveloperUserTV-proxyWeb-4TomcatPC-martDeveloperUserTV-proxyadmin-1TomcatEditorAdminBack-end20G 高速光纤联通机房电信机房本地局域网连接互联网连接揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!为功能狂奔1. 产品定义明确2. 成熟的技术
4、模型3. 团队都熟悉的框架4. 可以预期的架构5. 按照先功能完善,技术逐步优化的方式进行6. 扁平化的开发管理7. 工程师决定自己模块的设计揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!我们用到的技术SpringMVC(another S) + Spring + Hibernate一点点的JMX一点点Spring cron.一点点的 AOP 做监控.这些可以很快的完成我们的功能要求!初遇瓶颈之开发流程v 1.多变的需求和企业开发思想的碰撞v 2.模块分散导致业务割裂v 3.对开发工具的依赖导致环境参数配置过多v 4.忽视Unitest导致代码质量不
5、高 v 5.没有持续集成,没有代码评审揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!初遇瓶颈之技术v 1.编译和打包时间太长 30 - 40sv 2. 太多的XML配置文件v 3. 性能比较差v 4. WAR包越来越大v 5. Application Server 耗费大量的时间加载配置文件揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!初遇瓶颈之技术v 6.太多的模式,IOC,MVC,反模式等等v 7. 为了功能而功能,丢失了业务的原本v 8. 太依赖 hibernate 导致SQL在并发量上来之后产生瓶颈
6、v 9. 内部服务采用RESTful导致交互时间延迟v 10. Session 、Cache and More揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!尝试优化v Cache 、Session 集中管理v 增加应用服务器集群v 处理 Slow Queryv 动静分离v 增加更多监控揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!善后反思v 项目缺乏规范化v 日益增多和变化的需求v 开发不够敏捷v 持续集成没有很好的利用v 开发测试衔接不够揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多
7、源动力与更大的推动力!善后反思v 为了模式而模式v XML不是代码,但是每个开发人员用来沟通v Hibernate 简少了SQL书写,单增加的维护的困难v Tomcat 对于互联网的轻应用太重了v 太多和业务无关的代码揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!善后反思v 监控远远不够v 有状态服务导致计算无法顺利切分v 服务隔离不完全v 单一的Cache是不够的v 切分同步接口为异步调用揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!重构从开发流程开始v 从项目管理开始,引入敏捷开发v 团队培训普及mav
8、en工具知识,并由专人负责maven管理v 引入Jenkins (hudson)来进行持续集成,持续进行代码reviewv 强化单元测试及每个人都要对代码覆盖率负责,引入mock测试v 增加内部技术交流机会揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!架构重构揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!选型vWhy Mybatis?非常简单,高效可以使用数据源,使用JNDI,数据库连接池等技术来优化性能-重用已经构建好的数据库连接对象无缝配合Druid,C3P0,Proxool等池化技术ORM框架,半自动
9、化,SQL可以通过配置或者注入的方式使用数据库的读写都可以通过SQL完成,让开发人员了解自己的SQL语句揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!怎么用?Select(SELECT*FROMAppWHEREappId=#appId)AppEntityget(Param(appId)LongappId);Select(SELECTcount(MachineModeledApp.appId)FROMMachineModeledAppINNERJOINAppAndCategoryUSING(appId)WHEREMachineModeledApp.ma
10、chineModelId=#modelIdANDAppAndCategory.appCategoryId=#categoryId)IntegergetCountByModelAndCategoryOrderOnlinetime(Param(modelId)LongmodelId,Param(categoryId)LongcategoryId);揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!选型vWhy thrift?Thrift 支持丰富的语言,在特性方面超出protocolbuffer很多。Thrift 支持完整的client/server RPC
11、框架, protocolbuffer仅产生接口,用户具体实现需要做很多工作。虽然protocolbuffer序列化性能比thrift要高,但是使用起来相对困难一些。揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!怎么用?定义协议: struct UserProfile 1: i32 uid, 2: string name, 3: string blurb service UserStorage void store(1: UserProfile user), UserProfile retrieve(1: i32 uid) 生成代码:thrift -g
12、en 使用语言库开发客户端和服务端/repos/asf/thrift/trunk/tutorial/java/src/JavaServer.java选型vWhy Redis? 高性能的key-value数据库。 支持更多的类型:包括string(字符串)、list(链表)、set(集合)和zset(有序集合)。 数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作。 数据都是缓存在内存中 redis会周期性的把更新的数据写入磁盘,并实现主从同步 很多大网站都在用揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获
13、得过多源动力与更大的推动力!选型vWhy Kafka? 高吞吐量的分布式发布订阅消息系统。 通过O(1)的磁盘数据结构提供消息的持久化。 高吞吐量。 支持通过kafka服务器和消费机集群来分区消息 支持Hadoop并行数据加载 用来处理在线和离线数据分析揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!怎么用?ProducerPropertiesprops=newProperties();props.put(“zk.connect”,“:2181”);props.put(serializer.class,kafka.serializer
14、.StringEncoder);ProducerConfigconfig=newProducerConfig(props);Producerproducer=newProducer(config);ProducerDatadata=newProducerData(test-topic,test-message);producer.send(data);揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!kafka ConsumerSimpleConsumerconsumer=newSimpleConsumer(,9092,10000,10
15、24000);longoffset=0;while(true)FetchRequestfetchRequest=newFetchRequest(test,0,offset,1000000);ByteBufferMessageSetmessages=consumer.fetch(fetchRequest);for(MessageAndOffsetmsg:messages)System.out.println(consumed:+Utils.toString(msg.message.payload(),UTF-8);/advancetheoffsetafterconsumingeachmessag
16、eoffset=msg.offset;揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!选型v Why TCP?揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!在路上v重构进行中 采用小步快跑原则,逐渐替代 增加了多个监控点,后台图形化 采用Hudson进行持续集成 引入敏捷管理思想 完善单元测试,并采用Sonar对代码质量进行管理 Jetty替代Tomcat 通过瓶颈点监控随时进行优化(SQL,内存,集群)揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!总结 整合团队:产品和研发、测试紧密配合,组成敏捷团队 采用服务分层的方式将业务隔离
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 分物游戏(说课稿)-2024-2025学年二年级上册数学北师大版
- 二零二五年度建筑工程安全生产环保验收合同3篇
- 全国人教版初中信息技术七年级上册第四单元第13课七、《插入更新日期》说课稿
- 山东省泰安市肥城市2024-2025学年六年级上学期末考试道德与法治试题(含答案)
- 200万套基于AI大模型的新能源汽车热泵空调部件柔性制造智能工厂项目可行性研究报告写作模板-申批备案
- Unit6 Meet my family B Lets talk Lets learn(说课稿)-2024-2025学年人教PEP版英语四年级上册
- 河南省信阳市浉河区2024-2025学年三年级上学期期末学业质量监测数学试题参考答案
- 湖南省娄底市(2024年-2025年小学六年级语文)部编版阶段练习(上学期)试卷及答案
- 贵州盛华职业学院《建筑设备(暖通空调)》2023-2024学年第一学期期末试卷
- 贵州轻工职业技术学院《医疗诊断前沿技术与创新应用》2023-2024学年第一学期期末试卷
- 2024年高考物理一轮复习讲义(新人教版):第七章动量守恒定律
- 浙江省宁波市慈溪市2023-2024学年高三上学期语文期末测试试卷
- 草学类专业生涯发展展示
- 法理学课件马工程
- 《玉米种植技术》课件
- 第47届世界技能大赛江苏省选拔赛计算机软件测试项目技术工作文件
- 2023年湖北省公务员录用考试《行测》答案解析
- M200a电路分析(电源、蓝牙、FM)
- 2024-2030年全球及中国洞察引擎行业市场现状供需分析及市场深度研究发展前景及规划可行性分析研究报告
- 建筑工程施工图设计文件审查办法
- 置业顾问考核方案
评论
0/150
提交评论