• 1. 1号店技术学习肖志文 2015.9.22
  • 2. 参会内容如何构建千万级用户的电商系统 大型分布式电商系统的领域驱动架构设计与实践 亿级搜索架构 如何从零打造高质效互联网技术团队 1号店敏捷实践历程 基于自然语言的自动化测试
  • 3. 如何构建千万级用户的电商系统客户端架构演变a. 服务端分层 b.模块化c.客户端中间件
  • 4. 服务化 • 将所有核心业务沉淀下来形成各种服务,供业务系统共享,重用 • 基础架构相关资源也以服务的方式提供,包括消息,文件存储,缓存等分布式 • 平台的每一层、所有的资源都是分布式的,支持平滑的水平扩展1号店平台整体架构如何构建千万级用户的电商系统
  • 5. 1号店平台组成如何构建千万级用户的电商系统
  • 6. 如何构建千万级用户的电商系统 技术目标实现网站层次划分外部分流,入口分流架构演变
  • 7. 如何构建千万级用户的电商系统技术目标实现
  • 8. 领域驱动架构设计与实践
  • 9. 亿级搜索架构 分布式搜索
  • 10. 打造高质效互联网技术团队
  • 11. 敏捷实践历程
  • 12. 测试驱动开发是敏捷开发中的一项核心实践和技术, 也是一种设计方法论。TDD的原理是在开发功能代码 之前,先编写单元测试用例代码,测试代码确定需要 编写什么产品代码。 TDD的基本思路就是通过测试来推动整个开发的进行, 但测试驱动开发并不只是单纯的测试工作,而是把 需求分析,设计,质量控制量化的过程。 BDD:行为驱动开发 主要是从用户的需求出发,强调系统行为。 它包括验收测试和客户测试驱动等的极限编程的实践, 作为对测试驱动开发的回应 ATDD:验收测试驱动开发 TDD 只是开发人员的职责,通过单元测试用例来驱动功能代码的实现。 在准备实施一个功能或特性之前,首先团队需要定义出期望的质 量标准和验收细则,以明确而且达 成共识的验收测试计划 (包含一系列测试场景)来驱动开发人员的TDD实践和测试人员的 测试脚本开发。面向开发人员,强调如何实现系统以及如何检验基于自然语言的自动化测试
  • 13. 基于自然语言的自动化测试使用BDD和ATDD可以解决需求和开发脱节的问题 基于BDD的自动化测试工具Cucumber CI(Continuous Integration)也就是持续集成解决开发和测试脱节 持续集成工具:Jenkins
  • 14. 学习体会分布式的概念贯穿整个系统架构:存储、缓存、服务、监控 1. Hedwig在里面起到业务发布、集成,可以值得应用。 2. Zookeeper分布式应用程序协调服务,在很多分布式系统中用到了它 3. Hadoop、Hbase用于存储数据 4. Memcache是一套分布式的高速缓存系统 大部分以及关键技术都是开源项目 拆库是提高海量数据存储访问效率常用技术:这个常伴随定制开发:数据库协调、数据存储缓存、数据组装等,而且这部分可靠性要求很高。一般的系统不建议做拆库。 Scrum敏捷开发过程快速、见效快,但开发中途不宜插入过多的需求变更 需要如BDD、CI来配合
  • 15. HedWig是基于ZooKeeper和BookKeeper的发布-订阅系统。在HedWig系统中,使用ZooKeeper来持久化系统的元数据,使用BookKeeper来存储实际的消息数据。分布式服务框架
  • 16. 学习体会-分布式服务框架BookKeeper BookKeeper是Apache ZooKeeper项目的一个子项目。它是一个用来可靠地记录流数据的系统,主要用于存储WAL(Write Ahead Log)。 zookeeper ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、名字服务、分布式同步、组服务等。
  • 17. 分布式服务框架Dubbo(HedWig) Dubbo是阿里巴巴开源的分布式服务框架,可以选择使用ZooKeeper作为服务注册中心。Dubbo服务基于Provider- Consumer模型,在服务发布的时候可以选择使用ZooKeeper作为注册中心来管理注册的服务,包括Provider发布的服务和 Consumer订阅的服务。
  • 18. 分布式系统监控Strom Storm流式计算框架使用ZooKeeper来协调整个计算集群,Storm计算集群存在Nimbus和Supervisor两类节点。 Nimbus负责分配任务(Topology),将任务信息写入ZooKeeper存储,然后Supervisor从ZooKeeper中读取任务信息。 另外,Nimbus也监控集群中的计算任务节点,Supervisor也会发送心跳信息(包括状态信息)到ZooKeeper中,使得Nimbus可以实 现状态的监控,任何计算节点出现故障,只要重新启动之后,继续从ZooKeeper中获取数据即可继续执行计算任务。
  • 19. ZooKeeper应用案例HDFS HA(QJM) Solr Hbase Lily Lily是一个分布式数据管理平台,它基于Hadoop、HBase、Solr、ZooKeeper实现。使用ZooKeeper来注册Lily Node,从而管理集群节点的状态信息。 Katta Katta实现了Lucene的分布式索引,能够提供数据的实时访问。Katta使用ZooKeeper实现了集群节点的管理,Master的选举,以及Lucene索引的管理。
  • 20. 数据库访问层架构概览1、百度 dbproxy 2、腾讯 (TencentTableCache) 3、淘宝、支付宝(数据路由层TDDL) 4、新浪 5、人人网 (Ice通信框架)
  • 21. HTTP代理HAProxy提供高可用性、负载均衡以及基于TCP和HTTP应用的代理
  • 22. 分布式搜索分布式搜索方案选型之一:Solr   我第一个了解到的分布式搜索框架是solr,它是由java开发的,基于lucene的分布式搜索引擎,提供了类似于webserver的编程接口 分布式搜索方案选型之二:Solandra  在学校项目实践时使用过solandra,它是一个基于solr和nosql数据库cassandra的分布式搜索引擎。cassandra是由facebook开源的nosql数据库,facebook的信箱搜索就是基于它实现的,它是基于列结构的,不同与关系数据库。 Elasticsearch Solr+Katta katta它是一个分布式索引建立和管理工具 nutch
  • 23. SCRUMScrum是一个敏捷开发框架,是一个增量迭代的开发过程.。在这个框架整个开发周期由若干个小的跌代周期,每个小的的跌代周期称为一个Sprint,每 个Sprint的长度2到4周。在每个Sprint中,Scrum的开发团队拿到一个排列好优先级的需求列表,我们称它为用户故事或者叫Sprint backlog, 所以我们先开发的是对客户具有较高价值的需求。  在每个迭代结束后,都会开发完成可交付的产品。
  • 24. Scrum会议保持紧凑有效的指导原则:           o 第一指导原则:主题明确,不能参杂其他无关的话题。           o 第二指导原则:站立会议只允许“猪”说话,“鸡”不能讲话。           o 第三指导原则:所有人站立围成一圈,不能围坐在一个桌子周围。           o 第四指导原则:确保整个团队都要参加每日Scrum会议。           o 第五指导原则:每日Scrum站立会议是团队交流会议,不是报告会议           o 第六指导原则:每日Scrum站立会议应该控制在15分钟之内。           o 第七指导原则:不要把每日Scrum站立会议作为一天的开始。           o 第八指导原则:Scrum站立会议要在每日同一时间同一地点举行     * Scrum Master要及时解决Daily Scrum上提出的阻碍。这一点非常关键,Scrum Master必须要做到,否则会影响每个成员反应障碍的积极性。 SCRUM