云计算架构学习整理(三):IT基础设施的发展和API的概念

141 阅读5分钟

前言

云计算架构作为一种基础设施服务几乎已经成为了现代Web开发的标配,它显著地降低了 DevOps(Development and Operations)的门槛,通过云服务商提供的管理平台,Web应用开发人员可以轻松地在云上搭建自己的系统。作为一名云时代的全栈开发工程师,了解云计算架构背后的机制可以让我们更好地利用这个强大的基础设施,在设计、开发、部署和维护应用程序时做出更明智的决策。同时云计算是互联网技术的延伸,通过学习云计算架构,可以更深入地掌握互联网基础知识,这对于个人的技术水平也是一个很大的提升。

为了对云计算有一个全面的了解,最近在读 《图解云计算架构——基础设施和API》 一书,这本书主要以OpenStackAWS为例,通过API来重点讲解IaaS云服务的本质。下面是边读边整理的学习笔记,一方面可以随时回顾,另一方面希望通过输出来促进自己思考。

正文

前面围绕云的全貌讲解了各种Web基础知识。这一章开始进入主题了:云基础设施中的API,通过比较云诞生以前在基础设施上搭建环境和云诞生以后在云上搭建环境的差异,介绍API在云中的作用。

“云时代”以前如何搭建服务器

1. 在物理环境中的搭建步骤

  1. 订购服务器:根据性能、价格、扩展性等因素选购Web服务器
  2. 在数据中心进行物理安装
  3. 安装操作系统和应用软件,完成
  4. 完成资产登记等

2. 在服务器虚拟化环境中的搭建步骤

如果服务器虚拟化平台已经搭建好,那几乎无需操作硬件了,主要关注软件上的需求:

  1. 确定分配给虚拟服务器的资源
  2. 选择实际部署虚拟服务器的物理主机
  3. 完成网络配置,以及从模板复制虚拟服务器,完成安装、配置等

3. 服务器虚拟化的优点和局限性

对比物理环境和虚拟化环境的搭建过程可以发现:

  • 服务器虚拟化的引入省去了“移动和操作硬件”的过程,大幅降低了直接操作硬件的工作量
  • 软件操作的部分还是需要大量的“人为判断”,只是有限地提升了工作效率。

云时代如何搭建服务器

以OpenStack为例

  1. 选择套餐(flavor):套餐即虚拟服务器的规格模板,包括虚拟CPU数量、内存容量、虚拟硬盘容量等参数。只需要从预设的套餐中选择,不需要逐个敲定参数。
  2. 生成配置脚本:把虚拟服务器启动后需要立刻执行的配置过程都汇总到脚本中,首次启动时一并执行。配置脚本中通常包括安装额外的软件包、编辑配置文件、设置服务自启动等操作。
  3. 执行创建虚拟服务器的命令:执行nova命令新建虚拟服务器。
  4. 变更:通过变更套餐,就可以创建不同规格的虚拟服务器;如果是添加相同配置的服务器,那么只需反复执行nova命令即可。

以AWS为例

AWS的搭建过程跟OpenStack大致相同。

  1. 选择实例类型:只能从各区域预设的模板中选择
  2. 生成配置脚本:会作为用户数据,在启动时加载,以进行虚拟服务器的配置
  3. 创建虚拟服务器

云改变了什么

可以看到,引入“云”之后,简化了大量操作步骤,尤其是显著地减少了“人为判断”的工作,转为云API的自动化处理,从而大幅度提升搭建基础设施的效率。

选择虚拟服务器的规格

  • 在云环境中只需要选择套餐或实例类型,缩小了选择范围,提高了决策的速度。
  • 由于服务器资源的单价大幅下降,花费大量人力成本逐个敲定规格参数的做法变得没有价值
  • 云环境的套餐可以很方便地切换,可以轻松地“重新搭建”服务器

确定部署虚拟服务器的主机

云环境可以监视资源的使用情况,选择适合部署虚拟服务器的主机。还能根据运维的需求进行部署,比如配置过载使用、部署顺序、为特定用户预留专用的主机等。

分配IP地址

在云环境中,不需要手动配置IP地址。一旦指定了虚拟服务器要接入的网络,云环境就会自动申请一个可用的IP地址,将其分配给已启动的虚拟服务器。虚拟服务器删除后,IP地址还会自动回收,用于再次分配。

创建配置脚本

脚本实现了配置过程的自动化,并且在变更套餐和添加服务器的时候可以充分复用,还原相同的环境。

自动创建虚拟服务器

在虚拟化环境中,通过克隆模版创建虚拟服务器的步骤和虚拟服务器创建后的配置步骤是分开的。而在云环境中,只需要执行nova命令或aws命令,这一系列步骤就能作为一个整体被自动执行

小结

本章通过介绍从物理环境到服务器虚拟化环境,再到云环境这一基础设施环境的变迁,展现了系统搭建的步骤和理念发生的变化,以及云API如何通过自动化、减少人为判断来提升效率。