06 2019 档案
摘要:12306这个系统,核心要解决的问题是网上售票。涉及到2个角色使用该系统:用户、铁道部。用户的核心诉求是查询余票、购票;铁道部的核心诉求是售票。购票和售票其实是一个场景,对用户来说是购票,对铁道部来说是售票。因此,我们要设计一个在线的网站系统,解决用户的查询余票、购票,以及铁道部的售票这3个核心诉求
阅读全文
摘要:上面这两个图表不是饿了么的数据,是第三方分析整个外卖市场的数据图。左边的图表是从2011年开始,整个O2O市场以及外卖的份额逐年增加。2013年和2014年的时候发生了比较大的飞跃,饿了么也是在这个时间段订单量开始猛增。右边的图表是用户注重外卖平台的因素分布。 从图中可以看到,用户很在意配送速度,在
阅读全文
摘要:在传统的观念里,美团似乎一直被认为是家提供吃喝玩乐的团购平台。但其实,从深入电影、外卖等领域起,美团就早已不再是一家团购公司了,打开今天的美团APP:电影、外卖、机票、酒店、上门、甚至周边游等多重垂直业务均被囊括其中。 2015年年底,美团与大众点评宣布合并,合并后新美大的年活跃用户量达到1.7亿,
阅读全文
摘要:唯品会每年最大力度的促销活动在4月19日,就是419(For One Night),意在告诉唯品会用户只有这一晚有这么大的折扣力度(本文中用“大促”就指代419) 。唯品会是一个闪购网站,用户来得越早,越能买到又便宜又好的东西,所以在大促的一开始,会涌入大量用户,形成系统流量峰值。 本文总结了唯品会
阅读全文
摘要:初期架构选型 在2010年10月真正开始动手做知乎这个产品时,包含李申申在内,最初只有两位工程师;到2010年12月份上线时,工程师是四个。 知乎的主力开发语言是Python。因为Python简单且强大,能够快速上手,开发效率高,而且社区活跃,团队成员也比较喜欢。 知乎使用的是Tornado框架。因
阅读全文
摘要:说到高并发,其实我们中国互联网人最有发言权。中国人口最多,而且特有的社会结构恰好是互联网精神发挥的沃土,所以互联网行业在中国的迅猛发展也属情理之中。而中国现实社会中的地域发展不平衡、产业结构过度区域化、交通不够便利及小企业信息不畅等一道道壁垒,反而成就了电商的独特的商业空间。 伴随着电商的蓬勃发展,
阅读全文
摘要:豆瓣整个基础架构可以粗略的分为在线和离线两大块。在线的部分和大部分网站类似:前面用LVS做HA,用Nginx做反向代理,形成负载均衡的一 层;应用层主要是做运算,将运算结果返回给前面的用户,DAE平台是这两年建起来的,现在大部分豆瓣的应用基本都跑在DAE上面了;应用后面的基础服务也 跟其他网站差不多
阅读全文
摘要:新浪微博在2014年3月公布的月活跃用户(MAU)已经达到1.43亿,2014年新年第一分钟发送的微博达808298条,如此巨大的用户规模和业务量,需要高可用(HA)、高并发访问、低延时的强大后台系统支撑。 微博平台第一代架构为LAMP架构,数据库使用的是MyIsam,后台用的是php,缓存为Mem
阅读全文
摘要:每年“双11”都是一场电商盛会,消费者狂欢日。今年双11的意义尤为重大,它已经发展成为全世界电商和消费者都参与进来的盛宴。而对技术人员来说,双十一无疑已经成为一场大考,考量的角度是整体架构、基础中间件、运维工具、人员等。 一次成功的大促准备不光是针对活动本身对系统和架构做的优化措施,比如:流量控制,
阅读全文
摘要:作为架构师或者做技术的人,在开发软件时,我们基本上就是在扮演上帝的角色:我们不但要创建出一个个的程序,还要让这些程序能够脱离我们在硬件上独立运行,以便为这个程序所服务的群体提供服务。当这个程序出现问题甚至 bug 的时候,我们还得扮演牧师的角色去修复这些问题。这不正是一个程序的社会吗? 和人类社会的
阅读全文
摘要:软件架构实际上包括了:代码架构,以及承载代码运行的硬件部署架构。实际上,硬件部署架构最终还是由代码的架构来决定。因为代码架构不合理,是无法把一个运行单元分拆出多个来的,那么硬件架构能分拆的就非常的有限,整个系统最终很难长的更大。 所以我们经常会听说,重写代码,推翻原有架构,重新设计等等说法,来说明架
阅读全文
摘要:架构师必须是一个组织的领导人,有权利调动这个组织的架构,才能够更好的发挥架构师的作用,更好的把利益的调整落到实处。 什么是架构师 在之前的几篇文章中,经常会提到架构师这个词。我们已经定义了什么叫架构,那怎么定义架构师呢,是不是做架构的就叫架构师了? 没有这么简单,本篇尝试讨论一下这个问题。 架构师的
阅读全文
摘要:前面通过四篇文章,把什么是架构,如何做好架构等必要的概念澄清了一下。这些概念对于在各种不同的领域都应该也是有用的,需要读者自行思考,并应用到自己所在的领域中。在这篇文章开始,我们用同样的思考,来看看软件是怎么回事,以及如何运用架构思维,更好的设计和实现软件。 冯诺依曼结构,图灵机,以模拟人为目标 软
阅读全文
摘要:前一篇已经讲了如何识别问题。在识别出是谁的问题之后,会发现,在大部分情况下,问题都迎刃而解,不需要做额外的动作。很多时候问题的产生都是因为沟通的误解,或者主观上有很多不必要的利益诉求导致的。但是总还有一部分确实是有问题的,需要做调整,那么就必须要有所动作,做相应的调整。这个调整就是架构的切分。 切分
阅读全文
摘要:按照之前架构的定义,做好架构首先需要做的就是识别出需要解决的问题。一般来说,如果把真正的问题找到,那么问题就已经解决了 80% 了。这个能力基本上就决定了架构师的水平。 那么面对问题有哪些困难呢? 我们先看一则笑话。女主人公:老公,把袋子里的土豆切一半下锅。结果老公是把袋子里的每个土豆都削了一半,然
阅读全文
摘要:在前一篇文章中,我们讨论了什么是架构。事实上,这些基础概念对于做架构是非常重要的,大部分人对于每天都习以为常的概念,都自以为明白了,但实际上都是下意识的,并不是主动的认识。比如说“什么是桌子?”,做培训的时候,我经常拿这个例子来问大家,回答千奇百怪。这实际上就导致了做架构的时候,不同角色的沟通会出很
阅读全文
摘要:首先注册购买阿里云的ubuntu系统(因为作者自己买的是ubuntu,其他的linux系统也可以啦~) 在配置好域名,建好服务器之后,添加防火墙规则,开放自定义端口(在上一篇文章,我映射的4000端口,在云端我映射的是5000,所以开放5000端口) 打开远程连接,按照上一篇博客教程在云端linux
阅读全文
摘要:我的电脑装的是ubuntu系统,所以以ubuntu为例来写 由于后边涉及到程序的可移植性验证,我们先在docker hub上注册一个账号(注册地址),记住用户名! (全文直接附命令,由于我没有配置docker获得root权限,所以涉及到的docker操作命令前都要加sudo,觉得不方便的话可以再百度
阅读全文