服务端开发的宏观视角
2019-12-14 本文已影响0人
短暂瞬间
第114篇
极客时间《许式伟的架构课》课程笔记。
服务端的发展史
- 1946 年,第一台电子计算机问世
- 1954 年,第一门高级语言 Fortran 发布
- 整个信息科技发展到今天,大约也就 60~70 年的历史
- 1974 年,Internet 诞生
- 1989 年,万维网(WWW)诞生,但刚开始只限于政府和学术研究用途,1993 年才开始进入民用市场
- 服务端开发这个分工,从互联网诞生算起也就 40 多年的历史。真正活跃的时段,其实只有 20 多年
- 桌面开发技术的迭代,是交互的迭代,是人机交互的革命
- 而服务端开发技术的迭代,正逐步和桌面操作系统分道而行,转向数据中心操作系统(DCOS)之路
服务端程序的需求
1、规模
- 桌面程序是为单个用户服务的,所以它关注点是用户交互体验的不断升级
- 服务端程序是被所有用户所共享,为所有用户服务的
- 一个服务端程序在用户规模到达一定程度后,需要分布式化,跑在多台机器上以服务用户
2、连续服务时长
- 桌面程序是为单个用户服务的,用户在单个桌面程序的连续使用时长通常不会太长
- 服务端程序通常都是 7x24 小时不间断服务的。当用户规模达到一定基数后,每一秒都会有用户在使用它,不存在关闭程序这样的概念
3、质量要求
- 每个桌面程序的实例都是为单个用户服务的,有一亿的用户就有一亿个桌面程序的实例
- 服务端程序不可能有一亿个用户就跑一亿个,每个用户单独用一个,而是很多用户共享使用一个程序实例
- 桌面程序和服务端程序对程序运行崩溃的容忍度不同,一个服务端程序实例崩溃,可能影响几十万甚至几百万的用户
- 服务端程序必须能够实现用户的自动转移,必须是多实例的,单个程序实例的临时不可用状态,要做到用户无感知
服务端开发的体系架构
服务端程序宏观体系架构- 从宏观视角看,一个服务端程序应该首先是一个多实例的分布式程序
- 相比桌面程序而言,服务端程序依赖的基础软件不只是操作系统和编程语言,还多了负载均衡(Load Balance)、数据库或其他形式的存储(DB/Storage)