学习云计算的第一步
学习云计算的第一步,就是搞清楚云计算的架构。
在计算机体系中,用户最终使用的是各类应用,比如数据、大数据、AI、ERP、OA等等,这些应用的算力最终是来自于硬件,归根结底是来自于CPU和内存。从最底层的硬件到最上层的应用,中间部分是什么样的呢?

对比我们日常的生活工作,要想使用一些个人级的软件,比如日常办公的office系列软件、娱乐的各种游戏,一定是先购买一台笔记本电脑或者台式电脑,然后在上面安装操作系统,最后安装软件即可使用了。那么中间部分有操作系统就OK了。

在企业中,使用应用的不在是单独的某个人,而是一个组织或者一类人群,因此,应用的架构会更加复杂,对硬件的需求也更高。为了保证应用能够长期稳定的运行,在硬件上,企业会购买服务器,并使用集群架构来部署应用。这里集群指的是同时部署多套相同业务,它们之间通过网络进行通信,彼此之间进行监控或者同步信息,以保证至少有一个业务能够向外提供服务的目的。比如,如下图所示,某企业需要网站类的业务,它会使用至少两台服务器,然后安装对应的操作系统,并在上面部署相同的应用,并且两个业务之间会相互通信,了解对方的状态,这就是一个简单的集群。

这个集群工作的过程可以分为主备或者负载分担两种模式,如果是主备,一台为主用状态,接受所有的访问,另外一台是备用状态,什么也不做,就静静的看着,如果一旦备用的服务器发现主用服务器出现故障,会立刻将自己升级为主用,接受所有的访问;如果是负载分担模式,两台服务器会同时工作,分别接受各自的访问。
在云计算中也基本是这个思路,目前在云计算向应用提供算力的方式有两种——虚拟化和容器。大多传统的单体应用会运行在虚拟机中,而基于云原生的、采用微架构的应用会运行在应用中。虚拟化和容器并不会直接操控硬件,而同样需要通过一个操作系统进行的。对虚拟化和容器进行管理的是虚拟化引擎和容器引擎,有的虚拟化引擎本身就是一个操作系统,比如VMware的ESXi,有的虚拟化引擎则需要运行在操作系统上。例如KVM。容器引擎目前基本是需要依赖操作系统的。
目前市场上有多个虚拟化引擎,而且单独的虚拟化引擎是无法完全实现云计算的自助服务、弹性伸缩、灵活计量的功能,因此,在最终应用和虚拟化引擎之间会运行一个云操作系统来对所有的资源进行调度,目前各个大的云计算厂商都有各自的云操作系统,但大多都遵循了openStack的思路。容器引擎目前也是多种多样,但是对于容器的调度,K8S已经基本一统江山了。总结起来,我对云计算的架构做了如下图的总结:

后面我们重点介绍的虚拟化引擎是KVM,容器引擎为iSula,以及OpenStack和K8S。

浙公网安备 33010602011771号