点击上方蓝字关注我们

1

前言

曾几何时,”云”还是指天上飘的那一朵朵白色的雾团,现在互联网上家家都说自己是”xx云”。“云”这个词,已经被赋上了新的含义。其实真正在做”云”的企业没几家。这篇文章会告诉大家,究竟什么是”云”?并采用现在最火的开源云平台OpenStack来给大家介绍”云”的架构。

2

什么是”云”?

让我们先看一个关于住房的例子。北漂的程序猿A想在北京买房,他平时都1个人住,1间房就够了。但有时候他父母,老婆和两个孩子要过来陪他,这时候1间房就挤了,最好有3间房。这下A就犯愁了。买套3室的房子嘛,太贵,而且平时都用不上。买1室的房子呢,万一家人过来就住不下。富二代B就不一样,他比较壕。有一套别墅,5间房。但是他全家只用住3间,另外两间空着,有钱就是任性。给B打工的产品汪C呢,就寒碜了,一家5口就住1间房,他一次性负担不起更大的房子,只好看着B的两间空房间叹气。这种财富分配不均的现象,在现在社会普遍存在,想想就让人气愤,劫富济贫是大家的梦想。(说多了…)

这个问题怎么解决呢?房产商Z来了,他说:”你们把房间全部交给我,我来帮你们搞定”。Z把所有房间都收集起来,打造成酒店式公寓。程序猿A需要1间时,就给他1间住;需要3间时就分配给他3间。等他老婆孩子回去了,F再把房

间收回。而富二代B呢,就给他3间,他如果任性要多几间,也行,但是要额外收钱。一般再壕的人,也很少包下n多酒店的房间不住吧。对于产品汪C,他需要2间,Z就给他2间。然后住1天收1天的钱,这样C就不需要一次性买套两室的房子了。Z建立起来的,就是一个关于住房的”云”。用户按实际需要分配资源,而且用户资源可以随时增加和减少。按每个用户使用情况收费,一般月付或者年付。这样资源不会浪费,用户也不会一次性投入太多。

现在互联网上所谈论的”云”,就是把计算机资源收集起来,按需提供给用户。一个形象的比喻,以后大家使用计算机资源,就像现在家庭用电一样。看你每个月用了多少,然后收费。大家不用一次性购买昂贵的电脑(虽然现在对大部分人来说电脑已经不贵了,但是硬件在不断升级,你要频繁升级电脑的话,代价还是很大)。除了不用买电脑,你的个人文件也可以存放在”云”上。一般”云”提供商都有很好的备份机制,你不用担心电脑硬盘坏了,导致你重要的文件丢失。而且你在任何地方,只要有一个终端,就可以连上”云”。不用带着沉重的笔记本电脑到处跑了。

3

“云”的类型

广义上讲,”云”分为三种类型:IaaS, PaaS和SaaS。

  • IaaS (Infrastructure as a Service),基础架构即服务模式

此类云平台提供给用户的就像是一台标准的物理机器。你可以选择机器的性能,比如CPU几核,内存多大,硬盘存储多大。这台机器上除了操作系统,什么都没装。用户可以随意安装任何软件(当然license要合法)。除了硬件资源,你还可以购买公网出口带宽,云提供商会给你一个独立的公网IP。硬件和网络资源能够随时升级,你不用换机器。

形象的讲,就是房产商Z给了你一间毛坯房,里面什么都没有,你想怎么装修,想买什么家具,都自己来,家具坏了也是自己修。此类”云”的优点就是灵活性大,你想怎么搞都行。但是用户需要花不少的精力搭建和维护基础环境。

有开发和运维能力朋友们,可以先买台低配置的云主机,搭上自己的系统或网站。等到流量大了,再升级配置。IaaS采用的就是虚拟机技术,你所访问的云主机,其实就是一台虚拟机。

IaaS提供商典型的国外有亚马逊Amazon AWS EC 2,国内有阿里云服务器ECS。感兴趣的朋友们可以去试下阿里云ECS,它提供了半年的免费试用,当然配置很弱。

  • PaaS (Platform as a Service), 平台即服务模式

此类云平台提供给用户的是一个现成的运行时环境。比如PHP环境,Java环境,.Net环境等。同IaaS一样,你可以根据自己的需要购买计算资源,存储资源和网络资源,云提供商按照实际使用量收费。使用的资源可以随时升级。不同之处是用户不需要安装软件,也不能安装软件。

拿PHP环境举个例子,用户所需要的Apache,PHP,MySQL等运行时环境是早就安装好的。你只需要将你的PHP代码上传到平台上,就可以运行了。云提供商会保证运行环境的稳定性和安全性。此类云提供商一般还会给你一个免费的二级域名,让你可以访问自己的系统或网站。

回到一开始住房的例子,PaaS就像是Z给了你一间精装修的房间,里面家具,电器应有尽有。而且还帮你打扫,提供安保。保证环境是干净的,安全的(太幸福了)。不过,至于你每天吃的饭,你要自己动手烧,饭的味道还是你自己决定;你看的电影,要自己准备碟片;厨里面的衣服,要自己买。所以PaaS比起IaaS少了一些自由度,但是可以省掉不少环境运维上花费的时间。

有一定开发能力,但是不想花太多时间在运维上的朋友可以试下PaaS。目前PHP,Java,.Net,Python,Go等PaaS平台都有,还提供了IDE和不少类库。方便你开发及部署。

PaaS国外最早出现的是谷歌的GAE (Google App Engine),这个相当好用,而且小容量使用是一直免费的。可恶的是国内被河蟹掉了。另外强烈推荐一个国外的PaaS提供商Heroku,它也提供了免费版,支持Ruby, Python, PHP, NodeJS, Java等各种开发环境,关键是国内可以使用,你还可以利用它来访问那些被河蟹掉的资源。可惜免费版每24小时内会停止服务6小时,如果要上产品,还是建议花点钱。

国内有SAE (Sina App Engine),注册SAE后会送你500云豆,实名认证后还有2000云豆。可惜很快就会用光,然后你就得花钱买云豆了。感兴趣的朋友,可以注册SAE体验下。短期的项目,比如公司年会系统,就可以用SAE搞定。另外微软提供的Azure也是PaaS服务,国内已经开放了,习惯.Net开发的朋友们可以去玩下,还是有点小贵哦。

  • SaaS (Software as a Service),软件即服务模式

此类云平台提供给用户的就是一个现成的软件。你不用管它运行的环境,也不用管它是怎么开发的,用就行了。它一般按用户量,使用量或使用时长来收费。不同的SaaS平台提供的软件功能也不一样。一般大家常见的有云存储,云相册,在线Office等。

简单的说,就是本来软件/系统要安装在你本地,你才可以使用。现在你只需要连上网,就可以在线使用同样功能的软件/系统。对大型的系统,你不但省去了安装维护功能,也不用自己买服务器,云提供商还会提供其他服务来帮你使用软件。如果你是软件小白,不懂安装,更别提自己开发,那就只能采用SaaS服务。

我们再次请出房产商Z。这次Z不但提供了精装房,而且提供了饮食,影音娱乐。每天你要吃饭,Z直接送到你面前。你想看电影,打开电视就有。有没有一种当皇帝的感觉?这就是SaaS。当然这种模式也有缺点,就是每天你吃的菜得由Z决定,你可以选择的余地很小。看什么电影也是Z来决定。所以方便的同时,灵活度就小很多。

Apple的iCloud,Google的Google Doc是比较出名的SaaS云服务。国内的百度网盘也算是SaaS。在企业级平台上,Salesforce是最出名的SaaS平台,它提供了基于云的CRM(Customer Relationship Management)服务。

不同类型的”云”模式很难讲孰优孰劣,每个用户可以根据自己的能力和需要,来选取到底采用何种模式。当然还有一些更细的分类,比如Data as a Service, Storage as a Service等。这里就不赘述了。

4

开源IaaS平台OpenStack

很多人觉得”云”这个东西太高大上,只有大公司才会去玩,对于普通开发人员来说,只有使用的份。OpenStack的出现,降低了小公司搭建自己云平台的门槛。OpenStack是开源的,你可以用它来搭建IaaS平台。大家还记得什么是IaaS吧?其实阿里云背后的技术就是OpenStack,他们也给社区回馈很多改动的代码,这个值得称道。

OpenStack最初是由NASA(美国宇航局)和RackSpace(美国很牛X的IDC)贡献的。它不是一个独立的软件项目,而是一系列项目的集合。历史就不多说了,现在OpenStack基金会有好几百个会员,包括很多知名的大公司。企业可以用它来搭建面向互联网的公有云,比如阿里云。也可以用它搭建私有云。比如企业内部有一大批性能一般的服务器,可以把这些机器的资源统一管理起来,然后按需要创建虚拟机。虚拟机的性能完全可以超过其中任何一台主机。

5

OpenStack架构

OpenStack核心的组件主要有3个:

  1. Nova – 计算服务

  2. Swift – 存储服务

  3. Glance – 镜像服务

架构如下:

在介绍这3个服务之前,先普及一个知识。大家平时买的电脑,包括了CPU,内存,硬盘等模块。CPU负责计算,硬盘负责存储,所以对使用的人来说,不会区分这两个资源。”云”平台虽然也是由一系列物理主机构成,但是它的计算资源和存储资源是分开来管理的。打个简单的比方(实际情况当然要复杂的多),你有4台2核CPU,40G硬盘的主机A,B,C,D组成”云”。现在你要申请4核CPU资源和60G存储资源。”云”平台很可能分配你主机A和B的CPU,主机C和D的硬盘,而且C上只给你分配了20G。但是你使用起来完全感觉不到这些,就像是在同一台物理主机上操作一样。其实你的CPU计算是分布式的,硬盘存储也是分布式的。两个分布式资源分别由不同的”云”平台服务负责分配管理。

6

Nova

这是OpenStack的计算控制器。它负责管理、启动、运行”云”实例,分配计算资源和网络资源,控制访问权限。客户端通过Nova API来与其交互。对于用户来说,Nova的功能类似于Amazon的EC2服务,提供用户虚拟机实例的使用。

7

Swift

这是OpenStack的对象存储系统。为OpenStack提供分布式的,最终一致的虚拟对象存储。内建了数据冗余备份和恢复,大文件存储等功能。对于用户来说,Swift的功能类似于Amazon的S3服务。借助于Swift,”云”上的虚拟机存储空间可以弹性扩容。

8

Glance

这是OpenStack的镜像管理系统。了解虚拟机技术的朋友们应该知道,运行中的虚拟机,可以保存为一个镜像。将来启动加载这个镜像,就立马恢复到保存时虚拟机的状态,避免环境重复搭建。Nova运行的实例,也可以保存为镜像。而这些镜像的管理(存储,查询,检索等),就由Glance负责。当用户启动一个镜像时,Nova API通过调用Glance API找到需要加载的镜像,并分配计算,网络等资源,将镜像加载到虚拟机实例中。

9

后记

最后提一下,OpenStack的唯一竞争对手,Apache CloudStack,由Citrix创建,也是一个值得关注的开源”云”项目。不过目前流行度还无法同OpenStack相比。

MAC认证技术

接入与身份认证技术概述
边缘计算  一文简单读懂
Tomcat是如何运行的?整体架构又是怎样的?

支持百亿级别的 Java 分布式日志组件EasyLog

戳这儿

全面认识OpenStack架构相关推荐

  1. OpenStack架构企业IT应用的敏捷实践

    OpenStack架构企业IT应用的敏捷实践 发表于14小时前| 203次阅读| 来源<程序员>电子刊| 0 条评论| 作者张小斌 肖何 谢胜 OpenStack云平台敏捷架构应用 wid ...

  2. OpenStack介绍说明、OpenStack架构说明、OpenStack核心服务详细说明【keystone,nova,cinder,neutron...】、OpenStack创建VM,服务间交互示例

    文章目录 OpenStack介绍说明 OpenStack起源 认识openstack[重要] OpenStack架构说明 OpenStack架构概览 OpenStack逻辑架构 OpenStack生产 ...

  3. 云计算服务模型和openstack架构常用模块介绍

    云计算的服务模型 云计算有IaaS(Infrastructure as a Service,基础架构即服务),PaaS(Platform as a Service,平台即服务),SaaS(Softwa ...

  4. OpenStack架构分析与实践

    小编分享 OpenStack架构分析与实践 OpenStack以每年两个版本的速度不断迅速演进,所以对于OpenStack的架构而言,也是不断向前发展的.回顾一下E版本的OpenStack,它只有5个 ...

  5. OpenStack 架构 - 每天5分钟玩转 OpenStack(15)

    终于正式进入 OpenStack 部分了. 今天开始,CloudMan 将带着大家一步一步揭开 OpenStack 的神秘面纱. OpenStack 已经走过了 6 个年头. 每半年会发布一个版本,版 ...

  6. 云原生 - 2、Openstack架构

    云原生 - 2.Openstack架构 1.什么是Openstack 2.Release 3.核心架构 4.官方入口 5.核心组件 6.相关文章导读 1.什么是Openstack OpenStack是 ...

  7. OpenStack架构详解

    OpenStack架构 OpenStack作为开源.可扩展.富有弹性的云操作系统,其设计基本原则 ①按照不同的功能和通用性划分不同项目,拆分子系统 按照不同的功能划分不同服务,并且服务之间相互隔离,只 ...

  8. openstack架构及组件特点

    1.半年发布一次新版本,最新版本为Ocata 2.系统特点 提升IT资源利用效率 提升IT运维.部署.开发效率 3.组件特点 4.openstack技术架构 转载于:https://www.cnblo ...

  9. 一、OpenStack架构

    DashBoard Horizon 提供WEB界面 Computer Nova 计算也就是虚拟机 Networking Neutron 提供给nova网络支持 Object Storage Swift ...

最新文章

  1. 全网最火的Nacos源码构建,你找不到第二个有我仔细的!!
  2. 全球及中国手持式吸尘器行业供应需求及未来投资潜力预测报告2022-2027年
  3. 解决Jenkins邮件配置问题
  4. 互联网晚报 | 12月6日 星期一 | 荣耀线下门店超3万家;鸿蒙系统明年正式登陆欧洲;凯撒旅业与众信旅游终止合并...
  5. python记事本_python记事本实现查询替换
  6. GIS应用开发AO(1)_普通几何图形绘制
  7. Shell学习五-分割文件和提取文件名扩展名
  8. shell script语法高亮和自动缩进的配置
  9. 状态方程simulink仿真_推荐几本关于制冷仿真的书籍|压缩机|制冷剂|热泵
  10. MySQL常用数据字典表设计
  11. r语言 svycoxph_R语言之生信⑦Cox比例风险模型(单因素)
  12. HTML+CSS大作业 (水果之家10个网页)
  13. 请教各位大虾:Delphi创建的ActiveForm上的SpeedButton在鼠标离开后没有重画为flat样式
  14. 详解WAF与极风云WAF
  15. Arduino+nRF24L01接收端(二)
  16. sublime text 编译时提示[WinError 2] 系统找不到指定的文件。
  17. 吃货联盟订餐系统项目实践
  18. 等保2.0linux测评指南
  19. linux 手机互传,轻松实现Linux笔记本和手机、PDA互传文件(转)
  20. 【​观察】以双引擎动态技术破局,瑞数信息再定义传统WAF市场

热门文章

  1. Kali Linux渗透测试——入侵Windows10
  2. ArrayIndexOutOfBoundsException数组下标越界异常的解决过程
  3. 比赛现场气氛营造问题II
  4. Java腾讯云支付对接
  5. 为什么抖音一直显示服务器升级换不了头像,抖音换不了头像怎么回事
  6. 高效深度学习:让模型更小、更快、更好!
  7. Web前端之浅谈css
  8. 能取代90%人工作的ChatGPT到底牛在哪?
  9. zookeeper连接,报caught end of stream exception EndOfStreamException: Unable to read additional data fro
  10. # 计算机科学导论习题见解(机械工业)