许式伟的架构课 Day2 服务端开发的宏观视角

126 阅读2分钟

服务端的发展史

  • 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小时不间断服务的. 当用户达到一定基数后, 每一秒都会有用户在使用它, 不存在关闭程序这样的概念

其三是质量要求

服务端程序是, 很多用户共享使用一个程序实例.

一个服务端程序实例崩溃, 可能影响几十万甚至几百万的用户. 这是不可接受的

服务端开发的体系架构

一个服务程序完整的体系架构归纳如下:

image.png

从宏观角度来看, 一个服务端程序应该首先是一个多实例的分布式程序. 其宏观架构示意图如下:

image.png

总结

从服务端的发展历程、服务端开发的需求谈起, 这样更容易理解服务端开发的生态会怎么演化, 技术迭代会走向何方

此文章为3月Day1学习笔记, 内容来源于极客时间《许式伟的架构课》, 强烈推荐该课