当前位置: 代码迷 >> 综合 >> 【CDP-云设计模式】第2章,2.印章模式(Stamp Pattern)
  详细解决方案

【CDP-云设计模式】第2章,2.印章模式(Stamp Pattern)

热度:71   发布时间:2023-12-15 13:55:28.0

1.要解决的问题

  设置操作系统和应用程序需要虚拟服务器耗费和物理服务器一样多的工作量、时间和成本。
  
  虚拟服务器是不依赖于硬件的,就是说,它是一个服务器软件。实际上,多个虚拟服务器跑在一个物理服务器之上。物理服务器不需要任何重大改变,虚拟服务器就能像一台物理机一样工作。这样,你就能很方便的根据需求来快速新建或删除虚拟机。
  
  虽然使用虚拟机的时机显著增加,但使用虚拟机时要求的设置操作(例如,设置操作系统以及安装设置应用程序)仍要耗费大量人力、时间和成本。

2.云模式的说明

  你可以使用AWS云来创建某一时刻的机器映像,只要这时的操作系统、中间件和应用程序已经被设置在虚拟服务器中,你就可以利用此机器映像来创建新的虚拟服务器。
  
  就是说,一旦你设置好了操作系统、中间件和应用程序,你就能将它们复制,从在任何时候使用它们。复制虚拟服务器就像是使用一个橡皮图章,使你可以生产大量的环境已设置好的、一切就绪的虚拟服务器。
  
  而在过去,你必须将在一个物理磁盘设置好的环境拷贝到另一个磁盘,或是使用单独的备份软件由磁盘复制到磁盘,这样做很耗时,代价也很昂贵,也很难做到快速和大量的复制。
  
  另一方面,使用AWS云时,像服务器、磁盘这一类的资源都是以逻辑的形式被处理,所以您可以轻松地执行这些操作。

3.实施

  如果你由一个包含操作系统启动区的EBS来创建AMI,你就能利用此AMI创建EC2实例,这样可以使你生产大量配置相同的EC2实例。
(步骤)

  • 创建一个EC2实例并安装所需软件。
  • 完成必要的设置,创建一个以服务器运行时的状态。
  • 在确认操作正确后捕获并保存AMI。
  • 在需要的时候,使用此AMI创建所需数量的服务器。

4.配置

图1

5.好处

  • 使用一个已搭建好环境的AMI创建实例时,省去了大量繁杂的设置操作。
  • 你可以轻松创建上百个操作系统、数据和设置都相同的EC2实例。
  • 如果已经构建好了 AMI中的环境,那么即使使用脚本来创建EC2实例也不需要重复那些设置操作,从而可以简化脚本。
  • 你不仅能使用构建好的AMI,还可以和特定的用户共享这些AMI,如果需要,你还可以发布这些AMI。

6.注意事项

  • 拍摄快照的时间点和更新AMI时间控制需根据具体情况而定,这取决于系统需求。
  • 复制的EC2实例(虚拟服务器)是完全相同的,所以当有项目需要更改每个虚拟服务器的设置时,这就需要一些方法来实现。
  • 一旦你创建了AMI, 任何对基本操作系统的补丁或修改将不会自动应用在AMI上,你必须对每一个AMI执行补丁和升级操作。

7.其他

  这个模式使用了和“引导程序模式”( 操作&维护类 模式)一样的操作方式。相比于印章模式,使用引导程序模式可以更加灵活地构建操作系统和中间件,所以当在这两个模式间进行选择时你要根据需要来进行权衡。

8.Q&A

Q1:请问Stamp模式和Snapshot模式(尤其是其中的备份启动分区或操作系统形式)的根本区别在哪?它们又有何联系?

A1:
  Snapshot模式主要是为了解决数据安全的问题,重点在于对数据和操作系统的备份存储,大多数是和S3交互;而Stamp模式主要为了解决服务器繁杂的设置操作问题,重点在于将服务器环境存为AMI再对其进行复制来创建新的实例,从而可以方便快速地创建大量环境及设置相同的虚拟服务器。

  在Snapshot模式中,当使用EBS作为启动磁盘时,可以为每一个操作系统进行拷贝,并将其存储为AMI,以此来创建新的实例,这个其实和Stamp模式的原理是一样的了。

Q2:当一些项目需要更改每个虚拟服务器的设置时,该采用什么方法可以方便快速地实现?

A2:
  当已经启动的虚拟服务器需要更新或升级时,除了手动设置基本没有什么更加快速有效的办法了。如果服务器更新数量较大,可以采用重新创建机器映像来启动新的服务器,而关闭那些旧的实例。

Q3:Stamp模式和引导程序模式的相同点和不同点?如何进行权衡选择?

A3:
  Stamp模式中创建的AMI是静态的,即由此AMI启动的实例的配置和参数是不能自我调整或更新的。而引导模式中的AMI包含引导程序,可以根据需要设定参数文件,从而在启动实例时可以按初始化脚本自动获取并安装所需的程序包,让用户不需在每次版本升级或更新时去重新创建AMI。

  在确定实例中的参数配置很少需要调整或更新时,可以直接使用印章模式;而当实例中的程序需要经常更新或升级时,最好采用引导程序模式,以方便实例的更新。

Q4:新建的AMI通常被保存在什么地方?S3上吗?

A4:是的,S3上。

  相关解决方案