2014 Amazon TechO(n) Note

2014 亚马逊技术分享会 Amazon TechO(n)

主要流程

  1. 上午 1 个会场
  2. 下午 2 个会场
  3. 外加 Happy Hour (啤酒畅饮)

上午

上午都是英文,听得似懂非懂,就当练习听力了。

  1. Amazon’s Pecullar Ways: the Value Company Culture has on Doing Good Business

    这个是介绍亚马逊的文化,回想起来没记住什么,只知道他们是以顾客为中心的,他们认为最大的挑战是让顾客满意, 相比其他竞争对手来说,这个是最重要的。只要顾客觉得爽的事情,就值得去做。

  2. The challenges of eCommerce

    从亚马逊的建立开始讲起,服务器也从从单台发展到现在的规模。剩下没记住 - -

  3. 10 Hacker Myths

    这个是安全相关,安全通常很难讲,作者总结了 10 个规则,这样对于听众来说很容易接受,听上去都很有道理…

下午

下午就都是中文了,终于可以听清楚了。由于 2 个会场的原因,我只听了一个,这里就只记录了一会场的内容。

  1. Amazon Geotech

    亚马逊的 Geocoding service 和 Geolearning service。

    听完这个,觉得亚马逊吊爆了,在地理位置定位方面,已经是绝对领先的了,在美国,已经比某G公司做的好了, 在国内,某些地区也比某B公司做的好。他们主要定位是最后一公里,举个例子来说,就是你买东西的时候, 要填地址,填完地址后,亚马逊需要把文字信息转换成地理座标,比如说某个小区的某个楼,其他公司只能定位到某个小区, 到某个楼这里来说,有些地方的精度可能还不够,但是他们的定位系统没有问题。另外,不仅仅如此,送货员要去送货,要停车, 他们在定位楼的同时,也能把停车的地方给你定位好,真的很方便。这中间当然少不了自然语言处理,以及机器学习相关的事情。

    可以喜欢从另外一个角度去思考这个问题,就是数据的采集,其他公司都是自己整装备(车)去搜集数据,但是亚马逊却可以在他们的 送货车上收集数据,这个可方便多了,也实用,相比专门整辆车去做这件事情,亚马逊的方式似乎更加环保一些,有些时候做一些事 情确实需要思考,从你擅长的方面去入手,这样也许才是最好的方式。

    另外亚马逊自己的系统也都是尽量放在 AWS 上面的,方便 scale ,方便维护。同时也节省了很多资源和时间。

  2. Challenges of an internet scale ordering system

    亚马逊要处理 20 亿的订单(每天?没记住),机器会宕机,需要解决这些问题。

    1. 最佳实践 重试和补偿

      多个机器重试不能同步,需要随机跳跃(Jitter)和指数回避(Exponential back-off) 正在重试的服务也可能宕机,需要保存状态(State)

    2. 最佳实践 幂等性(Idempotence)

      每个操作需要有一个唯一的ID确认

    3. 最佳实践 一致性实践

      就是 CAP 的那个一致性

    4. 最佳实践 工作流

      需求太多,需要统一这个,没听得太懂,已经忘记了

    5. 最佳实践 符合的自描述数据文档

      擦,没听懂

    这是一个大规模订单系统的介绍,从 1.0 一路到 4.0,介绍了他们架构的变迁。亚马逊中国不仅仅负责中国的业务,其实他们做的系统 是为全球提供服务的。他们所做的订单系统不仅仅包含客户的订单,其实还包含了商户的订单。比如商户可以把他们的货物全部交给亚 马逊管理,他们自己只收钱就好了,中间的存储,物流,订单,亚马逊全包。

    这个组的招聘题,就是去设计一个订单系统,所以做什么问什么。。。

  3. NoSQL in Amazon

    1. 需要处理的数据量

      每天订单 千万,每天搜索 亿级,用户数量 亿级,商品数量 十亿级

    2. SQL vs NoSQL

      复杂查询 vs 简单 get/set,ACID vs BASE

    3. Reaction 计算 和 On-demand 计算

      产生这个的原因,是因为当数据量变大后,数据移动的成本远远高于计算的成本,所以才有了这 2 个特性。同时也缩短了程序开发周期,节约了成本。 一个是在单个节点上增加一个监控 Key 变化可以实现一些操作的程序,比如去更改另一个 Key 。一个是增加了 Query ?其实没听太懂。。。

    这个讲的是 NoSQL,我知道的亚马逊的 NoSQL 只有 Dynamo,其他就不清楚了,但是从他们现在的情况来看,他们内部已经不怎么 用 DynamoDB 了(希望我没理解错),不是 DynamoDB 过时了,而是场景变了。场景催生出一些新的 NoSQL 来。

  4. Being simple

    我喜欢这个作者,他喜欢讲简单,不喜欢复杂,但现实世界的系统总是复杂的。

    Jobs 说: “To be truly simple, you have to go really deep”,想要简单,你就必须深入了解他的机制,否则简单是很难做得到的。复杂的思考,才能产生简单的方法。

    人月神话的作者说: “The hardest part of design is deciding what to design”,理解问题其实是最重要的。

    技术的变迁,都是从简单,到复杂,然后再由复杂到简单。

最后,亚马逊送了个 PuTwo 的充电宝,我觉得很厚到,精神物质双丰收。当然这种分享会,总免不了招人, 但是我觉得亚马逊这么做,还是很舒服的,上午介绍公司文化,发展,下午是干货,最后只给了你一张招聘宣传单,我觉得很良心了。

comments powered by Disqus