服务端的发展史
- 1971年, 电子邮件
- 1974年, Internet诞生
- 1984年, 第一个数据库访问系统IBM System R诞生. SQL语言诞生
- 1989年, 万维网(WWW)诞生
- 1993年, 第一个Web服务器NCSA HTTPD诞生, 也是Apache开源Web服务器的前生
- 1998年, Akamai诞生, 提供内容分发网络(CDN)
- 2006年, Amazon发布弹性云计算
- 2007年, Amazeon发布简单存储服务(Simple Storage Service), 简称S3. 这是全球第一个对象存储服务
- 2008年, Google发布GAE(Google App Engine)
- 2009年, Go语言诞生
- 2013年, Docker诞生
- 2014年, Kubernetes诞生. 当前被认为是数据中心操作系统(DCOS)的事实标准
服务端程序的需求
这些演进趋势的根源是什么?
其一是规模
一台物理的机器资源总归是有限的, 能够服务的用户数必然存在上限, 所以一个服务端程序在用户规模到达一定程度后, 需要分布式化, 跑在多台机器上以服务用户
其二是连续服务时长
服务端程序通常是 7x24小时不间断服务的. 当用户达到一定基数后, 每一秒都会有用户在使用它, 不存在关闭程序这样的概念
其三是质量要求
服务端程序是, 很多用户共享使用一个程序实例.
一个服务端程序实例崩溃, 可能影响几十万甚至几百万的用户. 这是不可接受的
服务端开发的体系架构
一个服务程序完整的体系架构归纳如下:
从宏观角度来看, 一个服务端程序应该首先是一个多实例的分布式程序. 其宏观架构示意图如下:
总结
从服务端的发展历程、服务端开发的需求谈起, 这样更容易理解服务端开发的生态会怎么演化, 技术迭代会走向何方
此文章为3月Day1学习笔记, 内容来源于极客时间《许式伟的架构课》, 强烈推荐该课