服务端开发的宏观视角

第114篇

极客时间《许式伟的架构课》课程笔记。

服务端的发展史

  • 1946 年,第一台电子计算机问世
  • 1954 年,第一门高级语言 Fortran 发布
  • 整个信息科技发展到今天,大约也就 60~70 年的历史
  • 1974 年,Internet 诞生
  • 1989 年,万维网(WWW)诞生,但刚开始只限于政府和学术研究用途,1993 年才开始进入民用市场
  • 服务端开发这个分工,从互联网诞生算起也就 40 多年的历史。真正活跃的时段,其实只有 20 多年
  • 桌面开发技术的迭代,是交互的迭代,是人机交互的革命
  • 而服务端开发技术的迭代,正逐步和桌面操作系统分道而行,转向数据中心操作系统(DCOS)之路

服务端程序的需求

1、规模

  • 桌面程序是为单个用户服务的,所以它关注点是用户交互体验的不断升级
  • 服务端程序是被所有用户所共享,为所有用户服务的
  • 一个服务端程序在用户规模到达一定程度后,需要分布式化,跑在多台机器上以服务用户

2、连续服务时长

  • 桌面程序是为单个用户服务的,用户在单个桌面程序的连续使用时长通常不会太长
  • 服务端程序通常都是 7x24 小时不间断服务的。当用户规模达到一定基数后,每一秒都会有用户在使用它,不存在关闭程序这样的概念

3、质量要求

  • 每个桌面程序的实例都是为单个用户服务的,有一亿的用户就有一亿个桌面程序的实例
  • 服务端程序不可能有一亿个用户就跑一亿个,每个用户单独用一个,而是很多用户共享使用一个程序实例
  • 桌面程序和服务端程序对程序运行崩溃的容忍度不同,一个服务端程序实例崩溃,可能影响几十万甚至几百万的用户
  • 服务端程序必须能够实现用户的自动转移,必须是多实例的,单个程序实例的临时不可用状态,要做到用户无感知

服务端开发的体系架构

服务端程序宏观体系架构
  • 从宏观视角看,一个服务端程序应该首先是一个多实例的分布式程序
  • 相比桌面程序而言,服务端程序依赖的基础软件不只是操作系统和编程语言,还多了负载均衡(Load Balance)、数据库或其他形式的存储(DB/Storage)
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、Python简介和环境搭建以及pip的安装 4课时实验课主要内容 【Python简介】: Python 是一个...
    _小老虎_阅读 5,848评论 0 10
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,156评论 1 32
  • 认识事实和观点 职业化的基础,是尊重;尊重的基础,是理解;理解的基础,是接受不同;接受不同的基础,是能够区分事实,...
    1d7cfa523dbb阅读 233评论 0 0
  • 为什么我这么讨厌被别人叫老师,因为我觉得我配不上老师这两个字。 我是一名咨询师助理,由于工作原因我经常被叫老师,接...
    千言轻语阅读 1,153评论 0 0
  • 这次的作业是说说恐惧!在准备写作之前,想了好久,一直想不到这次写作的主题是啥?!直到看到组长泓宇分享,我才...
    stella包包阅读 147评论 0 1