寒假小作业 | Python微服务设计与DevOps实践

第一轮

什么是程序(Program),什么是进程(Process)?它们之间有何联系与区别?

程序 进程
定义 计算机程序是指一组指示电子计算机或其他具有消息处理能力的电子设备每一步动作的指令 进程是指计算机中已执行的程序
形式 储存在二级存储器(如硬盘)上的静态资源 加载进主存储器(如各种RAM)的动态资源
需求/占用 仅储存空间 需要多资源配合,如CPU、内存地址、I/O等

可以说 Thread⊆Process⊆Programme

App在不同语义场景下的具体指代

App一般是特指应用程序(Application Software)的,是程序(Programme)的一类。但是在特定场景下,并不局限于应用程序。如Application programming interface(API)不仅限于应用程序之间的接口,同样可指代于如系统级别的通讯等非应用层面的交互。广义的,Application倾向于”应用层面(application layer)的“之意。

Application & Service

应用是指软件,可以帮助用户完成某种任务。服务是指提供某种一次性或持续性的功能服务,它依赖于应用或软件,一般用于远程访问和控制、运行计算、条件管理等。总之,应用是软件,服务是应用所提供的服务。

更广义的,Service不仅限于应用提供的系统架构上的服务,而是宏观上对终端用户提供的服务,如在类似软件即服务(SaaS)的概念中指代的服务。

第二轮

C/S & P2P 架构

Client-server model (主从式架构)

最简单的主从式架构分为两层,客户端(主动)和服务器(从动/被动)。一般情况下,客户端把任务委派给服务器,服务器负责处理,然后返回处理结果。这种架构能够实现集中式管理和控制,一般情况下不需要客户端参与任务处理,它们只需要提出要求,由服务器负责完成。

image

Peer-to-Peer (点对点网络)

传统定义下的P2P是没有中心索引服务器的,也就是说每一个网络节点各自都同时是客户端和服务器端。这种网络架构不受限于中心服务器的性能(如带宽、存储空间和计算能力等)限制,实现了分布式的管理和控制,多节点的特性也使之不会出现单点崩溃。

image

单体架构 & 微服务架构

image

单体架构

单体架构是一种UI层、业务逻辑层和数据层均在一个程序中的架构

单体架构的优点:

  1. 可以简化测试和开发,因为应用程序的所有功能都在一个代码库中,所以可以节省大量的时间和精力
  2. 开发和部署的成本较低
  3. 更容易实施安全控制,因为所有功能都在一个地方

单体架构的缺点:

  1. 不利于扩展和重新组合服务
  2. 由于高度集成,程序大小不好控制
  3. 一处功能崩溃,整个软件都会崩溃

微服务架构

微服务架构是以专注于单一责任与功能的小型功能区块为基础,利用模块化的方式组合出复杂的大型应用程序,各功能区块使用API集相互通信。

微服务架构的优点:

  1. 可以提高代码的可维护性、可测试性和可扩展性
  2. 可以更有效地扩展和重新组合服务,因为每个服务都是可复用的,可以更容易地创建新的服务,并有效地实现组合
  3. 高可靠性(fail-proof)

微服务架构的缺点:

  1. 微服务开发和部署会更加复杂
  2. 测试和调试起来会更加困难
  3. 增加了网络调用开销

第三轮

什么是容器

容器是软件的可执行单元,它采用通用方式封装了应用程序代码及其库和依赖项,因此可以随时随地运行容器(无论是在桌面、传统 IT 还是云端)。

容器提供了将应用程序的代码、运行时、系统工具、系统库和配置打包到一个实例中的标准方法。容器共享一个内核(操作系统),它安装在硬件上。

容器与操作系统的联系与区别

联系:实际上容器化(Containerization)就是操作系统层虚拟化(Operating system–level virtualization),容器的核心就是一个虚拟化的操作系统内核。

区别:通常来说一个设备通常只会同时启动一个操作系统,这个操作系统占用的资源、提供的功能和容器不是一个级别的。而容器更像是操作系统中的一个软件示例,可以同时启动多个,并分别提供不同的功能,互不串扰,占用的内存、硬盘空间等都较小。可以说操作系统主要负责提供硬件设备和应用程序之间的接口,而容器则更关注于软件应用层。

什么是虚拟机

虚拟机是一种特殊的计算机软件,它可以通过软件技术在原有计算机平台中模拟多个虚拟的计算机,允许用户在一台物理机上同时运行多个完全独立的系统,用户可以为每个虚拟机指定所需的操作系统、硬件设置和应用程序。

虚拟机与物理机的联系与区别

联系:虚拟机运行于物理机之上,是一个仿真可调节的物理机环境。

区别:虚拟机是模拟出来的独立的环境,资源都是在物理机上以软件的形式提供,用户可以在一台物理机上同时运行多个虚拟机;而物理机是真实的硬件,它的资源是固定的,同一时间只能运行一个操作系统。

物理机、虚拟机、操作系统、容器四者之间的关系

  1. 容器也是一种虚拟机技术
  2. 虚拟机(包括容器)和物理机中均运行的是操作系统
  3. 虚拟机(包括容器)是模拟的物理机环境,在其中有与物理机类似的硬件资源的模拟
  4. 虚拟机(包括容器)运行在物理机运行的操作系统中

image

posted @ 2023-01-17 00:27  Tim厉  阅读(127)  评论(0编辑  收藏  举报