大数据:大数据是一种行业模式,指大量数据相关的业务。由于数据量大,不能单单依靠单机进行数据的处理,必须依赖云计算才能实现大数据分析的价值。
云计算:通常涉及通过互联网来提供动态的易扩展且经常是虚拟化的资源。云是网络和互联网的一种比喻说法。过去的图中经常用云表示电信网,后来也表示互联网和底层基础设备的抽象。
(一)云计算的分类
那么,云计算的服务形式是怎么样的?答案也就是我们经常提到的IaaS/PaaS/SaaS。
SaaS软件即服务:提供给消费者的服务是运营商运行在云计算基础设施上的应用程序,消费者可以在各种设备上通过瘦客户端界面进行访问,如web。消费者不需要管理或者控制云计算的基础设施,只需要对应用进行有限的特殊的配置。
PaaS平台即服务:是把客户使用的开发语言或者工具(java,python,.Net等)部署在供应商的云计算设备上。消费者控制部署的应用程序,也能控制运行应用程序的托管环境配置。
IaaS基础架构即服务:提供给消费者的服务是处理能力/存储/网络和其他基本的计算资源,用户能够按照这些资源部署和运行任意软件,包括操作系统和应用程序。消费者不能管理或控制任何云计算基础设施,但是能控制操作系统/存储/部署的应用,也可能获得有限制的网络组件的控制。
简单来说:
IaaS就是给你远程的终端界面(虚拟服务器)或者Web Service接口。
Paas就是给你数据库连接串或者中间件部署界面。
SaaS就是给你访问客户端或者Web界面。
云计算按照部署方式和服务对象可以分为:公有云,私有云,混合云。
公有云:云服务提供商运营,为最终用户提供从应用程序/软件运行环境/物理基础设施等各种各样的IT资源。
私有云:由企业自建自用的云计算中心,相对于公有云,私有云可以支持动态灵活的基础设施,降低IT构建的复杂度。私有云用户完全拥有整个云计算中心的设施(如中间件/服务器/网络/存储设备等)
(二)云计算的软件架构
OpenStack:是一个开源管理项目,OpenStack提供了基础设施即服务IaaS的解决方案,每个服务提供API以进行集成。超过130家企业和1350位开发者将OpenStack作为IaaS资源的通用前端。OpenStack项目的首要任务是简化云部署过程并为其带来良好的扩展性。
KVM是底层的hypervisor,用来模拟CPU的运行,OpenStack不会直接的控制kvm,而是通过libvirt库来间接控制虚拟机。OpenStack(IaaS)---> libvird ---> qemu-kvm --->kvm。
XEN:和kvm一样作为hypervisor层,是虚拟化的另一种解决方案。KVM是全虚拟化的解决方案,即需要x86架构的CPU实现虚拟化功能的支持,只有在CPU支持的机器上才能使用KVM这种虚拟化,相比于Xen,kvm的使用比较简繁,动态加载几个ko模块就可以。XEN是Liinux下的一个虚拟化解决方案,实现方法是运行支持Xen功能的kernel,这个kernel是在Xen控制下的,叫做Domain0,通过Domain0的管理,虚拟出多个系统。