thinktt
作者thinktt·2015-11-05 11:14
系统工程师·罗云科技

我的《云计算核心技术剖析》读书笔记之云计算最新技术

字数 3350阅读 934评论 0赞 0

云计算技术方面的发展可谓日新月异,在今年也有很多新的技术诞生,不论是Facebook 的Open Compute项H和VMware的Cloud Foundry,还是我们人云科技的YunEngine,都在设 计方面有一定的新意,下面将逐一给大家介绍。

一、Facebook 的 Open Compute 项目

由于现阶段云计算技术方面的创新主要以软件为主,所以在本书的内容中,除了第3章聊 了一下Google的数据中心技术之外,基本很少涉及硬件,但在2011年4月,社交网站的巨头 Facebook正式对外启动了名为“Open Compute”的开源硬件项目。通过这个项目,Facebook 将其服务器和数据中心的最新技术开源了,并将相关文档和CAD文件与公众分亨。Open Compute不仅非常开放,而且在技术方面也非常优秀,根据它设计定制的服务器,在效率方面 比普通厂商的同类产品提升38%,在成本方面则低28%,在整个数据中心PUE方面能达到1.07, 远低于业界普遍的1.5。

接F来将分别以服务器和数据中心这两方而来聊聊Open Compute的设计。首先在服务器 方面,将很多无效的部件从机箱中移去,而且将传统的1U的规格增大为1.5U,这样做的好处 是便于散热。其次在数据中心部分,将数据中心建立在寒冷的美国俄勒冈州普赖恩维尔 (Prineville),这样能利用室外的冷空气来对机房进行冷却,并用机房产生的热空气来对办公区 进行加热。在变电站方面,则采用480V的输出电压(电压越髙,损失越少)。这些设计都能减 少能源方面的浪费,而且采用多路电源供应来加强用电的安全。

Open Compute项H将一些业界比较领先的硬件方面的设计公开出来了,这不仅对我们这些 云计算的从业人员非常有帮助,而且也推动云计算在硬件方面的发展。

二、VMware 的开源 PaaS Cloud Foundry

在Facebook的OpenCompute项fl发布之后,VMware紧接着推出了新-•代的PaaS,名叫 “Cloud Foundry”,并将其在著名代码托管网站GitHub上开源。不仅专业的云计算供应商可以 根据它来构建面向公众的云服务,比如VMware将推出自己的基干Cloud Foundry技术的公共 PaaS云,而且普通的企业也可以使用Cloud Foundry的技术来构建其内部的私有云。Cloud Foundry在设计上和先前提到的Google App Engine有很多的不同,并且支持的应用也不太相似。 App Engine主要以支持Java和Python语言为主,而Cloud Foundry则以支持基于Spring、Rails、 Sinatra和Node.js等框架的应用为主。总地来说,Cloud Foundry与Engine Yard和Heroku这类 PaaS系统比较类似。

在使用方面,用户可以通过名为“VMC”的命令行或者基于Eclipse的名为“STS”的插 件来进行Cloud Foundry云的创建和管理。通过这些工具,可以部署应用,创建应用相关的实 例和类似MySQL这样的服务等,而且这些实例和服务在实际运行的时候,会根据应用的负载 来进行自动伸缩。

从架构上说,CloudFmmdry主要由5大模块和一个消息总线组成。首先,这个消息总线是 由他们团队自建的,名为“NATS”,它是一个简单的发布/订阅系统。通过这个消息系统,能 将Cloud Foundry的5大模块整合到一起。接着,将对这5大模块进行介绍。其一是云控制器 (CloudController),它是整个云的“大脑”,管理整个云的资源、应用和用户等。其二是DEA, 全称Droplet Execution Agent,它是一个小型虚拟机,用于执行应用的代码。其三是Router, 它不仅作为网关将外部请求转发给对应的实例,而且会在同一个应用相关的多个实例之间进行 负载均衡。其四是Health Manager,它会监控这个集群的工作状态,如果发现一个实例出现问 题,它将安排另一个新的实例来进行替换。其五是服务部分,整个系统自带很多服务,包括 MySQL、Redis、MongoDB和RabbitMQ等,并且服务可以被多个应用共亨。

由于Cloud Foundry还处于起步阶段,现阶段它的整套实现还有很多不足之处,佴从长期 而言,我个人对其未来的发展还是非常看好的。

三、YunEngine

YunEngine是一个支持Java应用的PaaS平台,比较类似于Google App Engine,由我们人 云科技团队来进行设计和开发。用户可以在Eclipse上使用YunEngine SDK来轻松地编写和部 署企业级的应用,并且在部署之后,伸缩和维护等都将由YunEngine来负责,这样不仅使用户 省力,而且省钱,间时在性能方面也非常备潜力,但在项0的初期,并不会支持所有的Java企 业级功能,主要以提供基于Servlet API的Web处理和基于JPA框架的数据存储这两个功能为主。

虽然相对干AppEnginerfijg, YunEngine起步晚了很多,但是YunEngine也有它一定的后 发优势,主要有两点原因。其一是为PaaS而做设计,比如后端YunTable在设计上考虑到反应 速度的倩况,而且会让YimTable为吏好支持PaaS平台而小断优化。其二是坚持标准:虽然在 初期阶段,YimEngine并不会支持很多标准,但是不会加入仟何私有的AP〖,这样能保证应用 的迁移性。

1. Servlet

Servlet技术主要用于在Web端处理各种HTTP请求,Servlet的1.0版发布于1997年6月, 而在2010年3月其3.0版也正式发布了。虽然Java EE本身包括有很多规范,但是真正深入人 心并被大家长期使用的就只有Servlet及其衍生品JSP (Java Server Page),而且大多数的Java Web框架都是基于Servlet的,其中最著名的例子莫过于Struts。另外,还有很多能很好地支持 Servlet 的 Web 容器,最出名的有 Tomcat、Jetty 和 Resin。

在YunEngine的实现方面,为了避免出现“重新发明轮子”的尴尬,在Servlet的支持方 面,YunEngine是基于Jetty7的。虽然Jetty在代码质景和管理方面都无法与Tomcat相提并论, 但是其代码规模非常精简,在嵌入性和资源消耗这两方面都非常出色。因此,Jetty成为了 YunEngine Web容器部分的最佳选择。另外,YunEngine支持仟何基干Servlet的框架(比如 Struts 等)。

2. JPA

JPA的全称为“Java Persistence API”,是一套用于数据处理的ORM (对象关系映射)框架。 由子之前Entity Bean在设计上存在重大缺陷,使用者深受其害,为了解决这一非常尴尬的情况, JCP在Java EE 5中推出了全新的JPA框架,并在最新的Java EE 6中进一步推出了其2.0版。 在设计上,JPA受到了 Hibernate、JDO和TopLink的影响,并在它们的基础上取长补短,并进 行了一定程度的简化。在实现方面,现在主要有DataNiicleus、OpenJPA、TopLink的后裔 EclipseLink 和 Hibernate JPA 这 4 种。

在YunEngine的架构中,由于后端并+是传统的关系型数据库,而是YunTable集群,这导 致无法重用Hibernate jPA和EclipseLink这些已有的JPA实现。但娃为了让YunEngine支持JPA 这个最新的也最具潜力的ORM框架,我们根据JPA 2.0的规范编写了一套适用于YunTable的 JPA实现,名为“YunJPA”。现阶段,它不仅能有效实现大部分JPA2.0规范所支持的功能,并 且能极大地利用YunTable所提供的强大动力。

YunEngine现在还处于全力的开发阶段,随着项目的不断进展,将会给用户提供更多强大的特性。

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

0

添加新评论0 条评论

Ctrl+Enter 发表

作者其他文章

X社区推广