爱悠闲 > 学《云计算应用开发实践》总结<一>

学《云计算应用开发实践》总结<一>

分类: 云计算应用学习总结  |  标签: 云计算,分布式计算,虚拟化技术  |  作者: zeb_perfect 相关  |  发布日期 : 2015-01-04  |  热度 : 598°

 一、前言

      这几天一直东奔西跑没来得及写点东西,昨天闲了下来,意外发现本好书,《云计算应用开发实践》,应用中讲解了云计算的发展和一些项目实例,真是对我了的胃口,于是,花了两天时间把它啃了下来,后半部分实战还是蛮难得,不过讲解的确实很易懂,我个人云计算具体是什么,之前都不是很清楚,一步步跟着作者的思维算是有了点头绪。这本书从需求上引入云计算,对云计算的技术和模式进行了详细介绍,下面就让我做个总结。

二、云计算和大数据的区别

      首先,说一下云计算和大数据的区别,分别做一句话直白解释就是:云计算就是硬件资源的虚拟化;大数据就是海量数据的高效处理。所谓硬件资源的虚拟化目的就是实现资源管理和最大化的充分利用,这里面最重要的就是虚拟化技术,而大数据就是垃圾中找黄金,实现高效,实时的处理大数据,这些后面我会专门的文章来介绍。

三、在云上架构java宠物商店项目

      下面开始这本书的总结,在书中第一章开始在云上架构java宠物商店项目(一个Sun公司开发的项目实例),重点是通过部署,然后测试,在针对测试结果提出改进方法,进而引出云计算架构。在这章我接触到一个新的压力测试工具JMeter,用于对软件做压力测试,具体的使用方法后面我也会专门介绍,经过测试,我们发现访问的速度明显过慢,那如何提高项目的访问速度,两种方式,一是增大服务器的配置性能,二是增加服务器的数量,通过负载均衡器来平均访问服务器。通过提高服务器性能,增加服务器数量,的确提高了项目的访问速度,但与此同时,部署的项目当访问人数少时仍要使用两个虚拟机就显得有点浪费,毕竟一般的厂商都是按需收费,增加了支出成本,于是引入监控用户访问量的工具JMX。它是java对程序,设备植入管理功能的框架,通过监控CPU使用率和主机内存使用量来实现,当然也有其他的方法如设置网络计数器,监控流量。另外,java开发工具中的JConsole提供了图形化的监控页面,这个需要配置tomcat的catalina.bat文件,在doRun和doStart方法后面加入JMX设置选项,通过命令行jconsole观察Tomcat中资源的使用情况。当在用JMeter模拟访问了,监控台会有明显的内存变化,下一步我们想通过内存的使用情况也设定服务器的开关,我们设定一个内存界限值,当低于该值时,执行一个关闭服务器的命令,其实这里是操作虚拟机的命令,具体java代码实现我也会在后文说明。由此引入云计算概念,就是按需,可扩展的资源管理架构。云计算几个关键的名词,之前也说过,就是Iaas,Paas,Saas,资源供应(provisioning),资源安全(Security),笔者总结的云计算架构如下图:


四、IaaS技术介绍

第二章引入Iaas技术介绍,首先是虚拟化技术,可理解为创建虚拟机,这里尽管很多云环境的架构都采用了虚拟化技术,但虚拟化不等同于云计算,云计算需要对大规模资源进行集成和调配,经常使用虚拟化技术,最直白的就是虚拟化是实现云计算的一个步骤,但不等同。虚拟化技术引入Hypervisor虚拟机管理程序的软件,有完全虚拟化,部分虚拟化,半虚拟化,操作系统层虚拟化,动态迁移,以及硬件辅助虚拟化。这些大体都是对虚拟机的操作实现,然后开始解决操作系统的自动化安装问题,使用PXE系统,它是一个可以帮助用户在仅有的物理网络连接的条件下就可以安装操作系统的工具。上面我们提高了负载均衡器,一般我们通过Tomcat来负载均衡,及将网络请求通过负载均衡器分配给更多的服务器处理(通常称之为集群),这种方式一方面提供了更多资源来高速响应请求,另一方面也让客户端无法了解集群服务器架构情况,增加了安全性。Tomcat负载均衡首先需要安装Apache Http服务器,负责接收客户端的Http请求,然后通过Apache Tomcat connnecter将Http请求转发给多个Tomcat服务器(不同机器),实现负载均衡,这种方案叫做服务器水平集群化。虽然使用水平集群化可以利用多台计算机的计算能力,但是对于多核处理器,资源就得不到充分的利用,于是就有了在一台机器上启用多台Tomcat服务器来充分利用资源,这里需要解决tomcat端口冲突的问题才能实现上面方案,即修改Tomcat的conf下server.xml文件中端口号,将8009依次改为8019。这种是Tomcat的垂直集群化

    除了Tomcat负载均衡,常用的负载均衡技术还有DNS负载均衡,即采用循环DNS方式(Round Robin DNS),我们可用通过命令行nslookup ip ,来查看服务器将域名绑定在哪些服务器上,一般两种方式,一是域名由DNS负载均衡技术解析到多个ip上。二是由不同频道(二级域名)使用不同的主机服务器,两者各有利弊,前者管理统一,但是当某些业务过于浪费资源时,可能影响其他业务,后者负载灵活,业务之间没有影响,但管理比较复杂。对于搭建Iaas环境,常使用的是Platform ISF,它是通过整合物理资源和虚拟资源创建的一个共享计算基础架构,这里我没有尝试自己搭建,所以在真正使用时,我会在做详细介绍。

五、前两章总结

      第一章就是通过部署项目实例,然后逐步部署云计算环境了,引出云计算概念;第二章就是系统的介绍了虚拟化技术,PXE技术以及负载均衡器的原理和使用,最终,Iaas软件就是帮助企业解决计算资源比较多,而资源利用率不高的问题。前两章总结到这里,睡会接着写。