下面对云计算基础
⑴ 云计算基础架构
云计算到目前为止架构主要可分为四层,
首先:显示层,多数据中心云计算架构这层主要是用于以友好的方式展现用户所需的内容,并会利用到下面中间件层提供的多种服务,主要有五种技术:
HTML:标准的Web页面技术,现在主要以HTML4为主,但是将要推出的HTML5会在很多方面推动Web页面的发展,比如视频[1]和本地存储等方面。
JavaScript:一种用于Web页面的动态语言,通过JavaScript,能够极大地丰富Web页面的功能。
CSS:主要用于控制Web页面的外观,而且能使页面的内容与其表现形式之间进行优雅地分离。
Flash[2]:业界最常用的RIA(Rich Internet Applications)技术,能够在现阶段提供HTML等技术所无法提供的基于Web的富应用,而且在用户体验[3]方面,非常不错。
Silverlight:来自业界巨擎微软[4]的RIA技术,虽然其现在市场占有率稍逊于Flash,但由于其可以使用C#[5]来进行编程,所以对开发者非常友好。
其次:中间层这层是承上启下的,它在下面的基础设施层所提供资源的基础上提供了多种服务,比如缓存服务和REST服务等,而且这些服务即可用于支撑显示层,也可以直接让户调用,并主要有五种技术;
REST:通过REST技术,能够非常方便和优雅地将中间件层所支撑的部分服务提供给调用者。
多租户:就是能让一个单独的应用实例可以为多个组织服务,而且保持良好的隔离性和安全性,并且通过这种技术,能有效地降低应用的购置和维护成本。
并行处理:为了处理海量的数据,需要利用庞大的X86集群进行规模巨大的并行处理,Google的MapRece是这方面的代表之作。
应用服务器:在原有的应用服务器的基础上为云计算做了一定程度的优化,比如用于Google App Engine的Jetty应用服务器。
分布式缓存:通过分布式缓存技术,不仅能有效地降低对后台服务器的压力,而且还能加快相应的反应速度,最著名的分布式缓存例子莫过于Memcached。
再有:基础设施层这层作用是为给上面的中间件层或者用户准备其所需的计算和存储等资源,主要有四种技术:
虚拟化:也可以理解它为基础设施层的“多租户”,因为通过虚拟化技术,能够在一个物理服务器上生成多个虚拟 机,并且能在这些虚拟机之间能实现全面的隔离,这样不仅能减低服务器的购置成本,而且还能同时降低服务器的运维成本,成熟的X86虚拟化技术有 VMware的ESX和开源的Xen。
分布式存储:为了承载海量的数据,同时也要保证这些数据的可管理性,所以需要一整套分布式的存储系统。
关系型数据库:基本是在原有的关系型数据库的基础上做了扩展和管理等方面的优化,使其在云中更适应。
NoSQL:为了满足一些关系数据库所无法满足的目标,比如支撑海量的数据等,一些公司特地设计一批不是基于关系模型的数据库。
最后:管理层这层是为横向的三层服务的,并给这三层提供多种管理和维护等方面的技术,主要有下面这六个方面:
帐号管理:通过良好的帐号管理技术,能够在安全的条件下方便用户地登录,并方便管理员对帐号的管理。
SLA监控:对各个层次运行的虚拟机,服务和应用等进行性能方面的监控,以使它们都能在满足预先设定的SLA(Service Level Agreement)的情况下运行。
计费管理:也就是对每个用户所消耗的资源等进行统计,来准确地向用户索取费用。
安全管理:对数据,应用和帐号等IT[6]资源采取全面地保护,使其免受犯罪分子和恶意程序[7]的侵害。
负载均衡:通过将流量分发给一个应用或者服务的多个实例来应对突发情况。
运维管理:主要是使运维操作尽可能地专业和自动化,从而降低云计算中心的运维成本。
云计算架构其中有三层是横向的,分别是显示层、中间件层和基础设施层,通过这三层技术能够提供非常丰富的云计算能力和友好的用户界面,云计算架构还有一层是纵向的,称为管理层,是为了更好地管理和维护横向的三层而存在的。
⑵ 学习云计算需要有什么样的基础
云计算发展至今,已历经十年之久。如今的云计算,从技术种类,功能产品,到行业和市场发生了巨大的变化。很多爱好者对云计算的认知和需求,也从当年的粗浅概念,发展到渴望深度探索的阶段。
因广大爱好者个人能力的不同,另外个人的技术水平也有不同。
下面以初学者和云计算工程师两个方面给一些建议。
如果您是一个未曾进行云计算相关的工作的人,需要学习云计算,就要具备操作系统,网络,应用服务等知识。市面上实现云计算的厂商已经有很多了。商业阵营的微软,IBM,谷歌,VMWARE,华为,都有非常成熟的产品。如果资金充裕,购买任意一款云产品,您就会得到非常专业的技术支持和服务。(开个玩笑,一般也买不起啊)如果您只是一个普通爱好者,我建议选择开源阵营的KVM,XEN,OPENSTACK,DOCKER等技术入手,因为他们的开源(免费)特性,所以近些年来广泛受到各大IT互联网公司和爱好者的热捧。
学习开源阵营的云计算技术,要从Linux系统的管理和使用的角度进入学习(20天左右),以及小部分的计算机网络通信技术(5天左右),为云中的虚拟网络技术打下基础。随后还要对SHELL开发,数据库系统有一定的了解(10天左右)。这个时候,就有条件可对核心的云计算技术开展全面的学习了。如:KVM,OPENSTACK,DOCKER容器,等云技术(20天)掌握其中的架构,功能角色以及Iaas,Paas,Saas层级分类,掌握私有云的部署和运维能力。
如果您是一个已经参加相关工作的人士,对上述内容多少有些了解。那对您的建议是,在精通上述内容的同时,还需要对Python这门语言进行深入学习,能够在云平台上,对云计算服务,容器服务,集群服务,缓存等常用服务器,进行全方位的监控和管理工作,以及二次开发工作。这才能算上一个比较全面的云计算专家。因为你将面对的不在是过去的独立服务器,机房,设备。而是数以万计的计算机,并分布在不同城市或国家的云计算系统,进行全方位高效稳定的管理工作。