基于公共IaaS服务开发应用 — 挑战与对策

By , May 25, 2012 11:31 am

基于公共IaaS服务开发应用 — 挑战与对策

这套幻灯片是为5 月25日第四届中国云计算大会的发言准备的文字稿。现场演讲在语言上可能有所不同,但是内容基本上是一致的。请各位同仁多多批评指教。

【讲座主题/自我介绍】

大家好,我叫蒋清野。今天这个讲座的内容,是我对过去几年里在基础构架服务这个领域学习和实践内容的一个总结。虽然这些总结还比较粗浅,我还是愿意通过云计算大会这个平台与大家分享,希望能够得到大家的批评和指正。

(1 分钟)

【IaaS技术】

今天我这个讲座的主题是《基于公共IaaS服务开发应用 — 挑战与对策》。这个主题之所以值得思考,是因为通过基础构架服务所获得的计算资源和传统的计算资源存在一些差别。为了理解这些差别,我们需要简单复习一下IaaS服务所需要的技术。这一张幻灯片是大家都已经非常熟悉的IaaS结构示意图。一般来讲,我们将IaaS相关的技术分成虚拟化技术、虚拟化管理、云服务三个层次。

左上角这张图片是虚拟化技术示意图。通过虚拟化技术,一台计算机可以被虚拟成多台计算机,每台虚拟机在逻辑上拥有独立的处理器、内存、硬盘和网络接口。使用虚拟化 技术能够提高硬件资源的利用率,使得多个应用能够运行在同一台物理机上但是彼此隔离,各自拥有独立的操作系统和其他运行环境。

当我们需要在多台物理机上创建多个虚拟机并且维护多个运行环境时,我们就需要一个工具来帮助我们对物理机和虚拟机进行管理,也就是右上角这个图片里的虚拟化管理。虚拟化管理系统的主要功能包括:(1)通过资源池的方式对物理资源进行重新组织;(2)对所有物理机上的虚拟机进行生命周期管理;(3)基于模板快速部署一系列相同或者是相似的运行环境;(4)监控、报表、预警、会计功能;和(5)高可用性、动态负载均衡、备份与恢复等等。

在虚拟化技术和虚拟化管理的基础上,又逐步出现了终端用户通过浏览器自助式申请、开通、管理计算资源的解决方案,以及通过Web Service API将虚拟机生命周期管理操作暴露给第三方应用的解决方案。终端用户绕过了运维工程师,以自助服务的方式申请、开通、管理计算资源,就是我们最下面这张图所描绘的基础构架服务(IaaS)。

看起来一切都没有问题。

(4 分钟)

【资源超售】

问题在于,虚拟化的计算资源和实际的计算资源是不对等的。目前主流的虚拟化技术都支持超售(over commit)这个功能。 所谓超售,就是提供给用户使用的虚拟资源数量大于实际的资源数量。

以CPU为例,在一台物理机上,操作系统所看到的CPU个数等于物理CPU个数乘以每个CPU的核心数量乘以每个核心的线程数量。假设我的笔记本配置一颗双核CPU,每个CPU核跑两个线程,那么操作系统看见的就是4 颗CPU。在没有超售的情况下,这样一台物理机最多只能够支持4 台虚拟机。在超售的情况下,这样一台物理机所能够提供的虚拟机数量取决于所使用的虚拟化技术。KVM可以将一个物理CPU核虚拟化成10颗虚拟CPU,这样配置一颗双核CPU的物理机最多可以支持到20台虚拟机。

不仅CPU可以超售,内存也是可以超售的。仍然以KVM为例,一台KVM虚拟机相当于宿主机上的一个进程,它所占用的物理内存大小是动态变化的。当虚拟机需要使用内存的时候,宿主机才将所需的内存分配给虚拟机进程。不管在创建虚拟机的时候给虚拟机所指定的内存大小是多少,宿主机上的虚拟机进程所占用的内存仅仅比虚拟机上的操作系统所使用的内存多一点点。当一个虚拟机进程长期处于非活跃状态时,它所占用的内存还会被转移到宿主机的交换分区(SWAP)上。当所有虚拟机所请求的内存总数超过宿主机所配置的内存大小时,宿主机也会用交换分区的空间来充数。可以想象,在内存超售的前提下,如果所有的虚拟机同时运行内存密集型应用的话,就会导致较大的性能问题。

值得庆幸的是,虚拟机的CPU和内存使用率通常不会达到100%,这就给IaaS服务提供商带来了很大的机会。一方面,通过将大量负载较轻的虚拟机集中到少量物理机上,能够大幅度提高资源利用率;另一方面,空闲出来的物理机可以进入休眠状态,从而达到节能的目的。一般来讲,客户的虚拟机对CPU和内存的需求会随着时间发生变化,因此IaaS服务提供商需要有一套监控分析、在线迁移、负载调整的工具才能够在实现超售的同时提供较好的用户体验。可以这么认为,在IaaS服务的时代,超售能力将会是IaaS服务提供商的核心竞争力之一。

对于IaaS的最终用户来说,服务提供商所采取的超售措施是不可见的。在这张幻灯片的右边,我列出了三种可能的虚拟机配置参数,其中CPU参数指的是虚拟机可以使用的CPU核的数量,VCPU参数指的是虚拟机所看到的CPU数量,MEMORY参数指的是虚拟机所看到的内存数量。在没有超售的情况下,虚拟机可以使用一个CPU核,提供一颗虚拟的CPU;在1:2超售的情况下,虚拟机只能够使用0.5个CPU核,提供一颗虚拟的CPU;在1:10超售这种极端情况下,虚拟机只能够使用0.1个CPU核,提供一颗虚拟的CPU。即使不考虑宿主机实际的物理内存是否够用的问题,这三种虚拟机的性能也肯定是不一样的。但是从终端用户的角度来看,这三种虚拟机的配置是一样的。

以前,我们买了台物理机搬回办公室,里面到底有几根内存条几颗CPU拆开机箱一看就知道了。现在我们通过IaaS服务买了台云主机,网页上写着两颗CPU外加2 G内存,但是我们对网页后面到底是什么一无所知。可以这么说,物理机是个白盒子,云主机是个黑盒子。云主机的配置已经退化成一个符号,不再是一个具有确定意义的参数。不但不同IaaS服务提供商之间的产品无法基于配置来进行比较,同一IaaS服务提供商的不同产品之间也很难基于配置来进行比较。这就是基于公共IaaS服务开发应用所面临的挑战。

(7 分钟)

【基准测试】

那么,我们怎么知道某个IaaS服务提供商的云主机是不是能够满足我们的要求呢?要回答这个问题,只能够进行有针对性的基准测试。这张幻灯片对比了三组云主机的UnixBench基准测试结果,其中A 组(红色曲线)是我自己实验室中的云主机,B 组(蓝色曲线)是盛大云正式提供的云主机,C 组(绿色曲线)是阿里云正式提供的云主机。(阿里云的主机配置和其他两组都不一样,勉强按照比较相近的配置归类。)每台主机的测试结果包括两个数据,一个是单线程测试结果,另一个是多线程测试结果(云主机上有几颗虚拟CPU,就有几个并发的测试线程)。从左边这张图中可以看出:(1)不管云主机上有几颗虚拟CPU,单线程测试结果是基本一致的,它反映的是单颗虚拟CPU的处理能力;(2)内存大小对测试结果基本上没有影响;(3)当虚拟CPU的数目增长1 倍时,测试结果增长0.5倍;(4)盛大云主机的测试数据比我自己的云主机的测试数据要低很多。

UnixBench测试结果反映的是一台主机的综合性能,它与被测试主机的CPU、内存、存储、操作系统都有直接的关系。我自己的宿主机配置的是Intel的Xeon E5620处理器,盛大云的宿主机配置的是AMD的Opteron 6172处理器。从cpubenchmark.net提供的数据来看,Opteron 6172的整体处理能力比Xeon 5620高50%以上,单核处理能力也比Xeon E5620高一点点。在内存方面,被测试云主机的内存配置是一致的。在操作系统方面,我自己的云主机和盛大云主机都运行64位Ubuntu 10.04服务器版(阿里云主机运行64位Ubuntu 10.10服务器版)。较大的差异可能在存储方面,我自己的存储基本上处于空闲状态,盛大云的存储可能负载比较高,但是不应该对测试结果产生如此之大的影响。比较合理的推测是盛大云采取了某种超售策略,限制了虚拟CPU的处理能力和虚拟机实际上能够使用的内存数量,从而导致测试结果大幅度降低。

阿里云的CPU和我所使用的CPU单核性能是类似的,UnixBench测试得分也相当接近。值得注意的是经济B 型主机的性能与经济A 型主机相比有明显的下降(图中绿色曲线的下降段),而经济B 型主机和经济A 型主机的配置差别在于经济B 型比经济A 型多了1 GB的内存。也就是说,经济B 型主机的性能应该比经济A 型主机更好才对,但是实际的测试结果正好相反。为了解开这个谜团,我查看了一下经济A 型主机和经济B 型主机的CPU类型,发现经济A 型主机用的是Xeon E5645,是一款比较好的CPU;经济B 型主机用的是Xeon E5620,是一款比较差的CPU。但是新的问题又来了,阿里的经济B 型主机和我实验室中的微型主机采用的是同样的CPU,内存还比我的微型主机多了0.5G,为什么在性能上还比我的微型主机差许多呢?(大家看绿色曲线下降段的点)我想,比较合理的推测还是阿里的经济B 型主机采用了某种超售策略,从而限制了主机的整体处理能力。

表面上配置较高(并且价格也更高)的云主机,由于采用了相对低端的CPU,其性能比表面上配置较低的云主机更低。这就验证了我刚刚说过的一句话:“云主机的配置已经退化成一个符号,不再是一个具有确定意义的参数。不但不同IaaS服务提供商之间的产品无法基于配置来进行比较,同一IaaS服务提供商的不同产品之间也很难基于配置来进行比较。”通过这个例子我们还可以看出,阿里云在基础构架服务产品的设计方面,还是比较业余的。

UnixBench测试程序:http://code.google.com/p/byte-unixbench/

CPU 性能数据:http://www.cpubenchmark.net/

(7 分钟)

【应用测试】

UnixBench测试结果在一定程度上反映了一台主机的整体性能。但是UnixBench毕竟仅仅是一套简单测试的组合,我们所开发或者使用的应用要比UnixBench复杂得多。这里我就以目前比较流行的Hadoop为例,看看它在不同的云主机上的性能如何。在我们下载到的Hadoop软件包中包含了一些作为例子的应用,其中的wordcount应用估计很多人都运行过。这个应用读取输入目录中的文件,计算这些文件中一共有多少个不同的单词以及他们出现的次数。在这个测试中,我使用了三个700MB左右的文件作为测试数据,测试数据一共有2 GB左右。我们在盛大云和阿里云的不同云主机上运行wordcount应用对这些测试数据进行分析,并分别记录完成分析所需要的时间。然后我们将测试数据的大小除以运行时间,代表单位时间内所处理的数据大小(MB/S),用来代表被测配置的测试分数。

我们一共测试了十个不同的配置:分别由一到四台盛大标准主机组成的Hadoop(伪)集群,一台盛大超大主机组成的Hadoop伪集群,分别由一台阿里EA、阿里EB、阿里A 和阿里B 组成的伪集群,以及由阿里A 加上阿里B 组成的集群。从上面这张图表中可以看出,随着计算集群中主机数目的增加,完成测试所需要的时间越来越短,表明计算集群的整体处理能力越来越强。单台盛大超大主机的性能比单台盛大标准主机的性能略好,但是比不上由两台盛大标准主机组成的集群。单台盛大超大主机的测试得分比单台盛大标准主机略高,但是比不上由两台盛大标准主机组成的集群。由四台盛大标准主机组成的集群,其得分是单台盛大超大主机的三倍。阿里A 型主机与阿里B 型主机的性能在同一水平上,虽然阿里B 型主机比阿里A 型主机多配了1 GB的内存,但是对性能提升的帮助非常有限。将阿里A 型主机与阿里B 型主机组成集群后,其性能比单台主机的性能提高一倍。

各位是不是还记得,在上一张幻灯片中我们提到,盛大云超大主机的配置和价格都是标准主机的四倍?换句话说,由四台标准主机组成的集群,在配置和价格上等同于一台超大主机。再换句话说,如果我们使用超大主机的话,性价比是不是有点问题?

(5 分钟)

【性价比】

接下来我们比较一下盛大云和阿里云的主机性价比。这张幻灯片有两张图,上面这张图是基于UnixBench测试结果计算的性价比,下面这张图是基于Hadoop wordcount测试结果计算的性价比。在盛大云系列中,如果以UnixBench测试结果来评价的话,性价比最高的是超微主机,然后依次是微型主机、小型主机、标准主机、大型主机和超大主机。如果以Hadoop wordcount测试结果来评价的话,由一到四台标准主机组成的集群,其性价比是在同一水平线上的;由一台超大主机组成的伪集群性价比最差,勉强达到其他四个配置的1/3。在阿里云系列中,如果以UnixBench测试结果来评价的话,经济A 型主机性价比最高,然后依次是标准A 型、经济B 型和标准B 型主机。如果以Hadoop wordcount测试结果来评价的话,标准A 型主机性价比最高,标准A 型和标准B 型集群次之,标准B 型主机性价比最差。

我们再将盛大云的主机和阿里云的主机进行一下横向对比。在UnixBench测试方面,阿里经济A 型主机性价比最高,然后依次是盛大超微主机、阿里A 型主机、盛大微型主机、阿里经济B 型主机和阿里标准B 型主机。在Hadoop wordcount测试方面,阿里A 型主机的性价比最高,盛大超大主机的性价比最差。盛大标准主机集群比阿里标准B 型以及阿里标准A + B集群的性价比略高。。

值得一提的是,阿里云的主机价格包含了5M带宽的价格,盛大云的主机价格不包含带宽价格。如果我们假设5M带宽的价格为200元的话,那么阿里云主机本身的性价比是全面超过盛大云主机的。

从这张幻灯片还可以看出,性价比不是一个独立存在的概念,它跟用来评估的标准有直接的关系。用不同的标准(或者应用)来评价同一台主机,得到的结果会是不同的。

此外,在IaaS这个特殊的场景中,可以通过修改超售策略来改变某个产品的性能。因此,同一个产品的价格和性能都是可以随时间变化的。如果哪一天盛大云改变了它的定价策略或者是超售策略,这张幻灯片上的数据就不再有效了。(事实上,5 月21日阿里云修改了定价策略,我只好重新计算新的性价比数据。)

(4 分钟)

【横向扩展 vs 纵向扩展】

那么,当我的应用负载出现增长的时候,我们是应该购买更多的标准主机,还是升级到超大主机呢?

横向扩展(Scale Out)和纵向扩展(Scale Up)的目的都是提高一个系统的整体处理能力。如左下角这张图所示,横向扩展是把计算负载分布到多个节点上,纵向扩展则是给一个节点增加更多的计算资源。在前面两张幻灯片中我们已经看到,由多台标准主机组成的计算集群在性能和性价比两个方面都超过超大主机。除此之外,横向扩展还这能够给我们带来更多的好处,包括:(1)让系统构架变得清晰,使故障诊断变得容易;(2)避免了单点失效,提高了系统的健壮性;和(3)可以通过动静分离和读写分离等手段进一步提高系统的性能。因此,当应用需要更强处理能力的时候,我们应该优先考虑横向扩展而不是纵向扩展。

右上角是一个典型的Web 应用横向扩展示意图。各位只要是做过网站的,一定非常熟悉这个构架,这里我就不详细解释了。

(2 分钟)

【云硬盘 vs 云存储】

经常有人问:当我需要存储空间的时候,应该选择云硬盘呢还是选择云存储?

在这里我们先澄清一下概念。云硬盘是一种虚拟的块设备,可以像U 盘一样挂载到云主机上。一块云硬盘在同一时刻只能挂载到一台主机上。如果有多台主机需要同时访问同一块云硬盘,则需要通过NFS等手段进行共享。终端用户需要经过云主机才能够访问到云硬盘上的数据。Amazon所提供的EBS服务,属于我们所说的云硬盘。云存储则是一种Key/Value数据存储服务,用户通过API进行数据存取操作,也可以通过S3FS等手段将云存储作为虚拟硬盘同时挂载在多台云主机上。终端用户访问云存储的数据,不需要经过云主机。Amazon所提供的S3服务,属于我们所说的云存储。

从云主机的角度来看,理论上云硬盘的终极性能要高于云存储的终极性能。这是因为在云存储上存取数据的时候还有一些额外开销,这个额外开销在同时存取大量小文件时会比较突出。从终端用户的角度来看,由于访问云硬盘的数据需要经过云主机,云主机的负载就成了影响用户体验的一个不确定因素。终端用户访问云存储的数据不需要经过云主机,用户体验不会受到云主机的影响。此外,单块云硬盘的容量是存在某些物理条件限制的,而云存储几乎可以 不受限制地向上扩容。

最右边这个方案C,是一些厂商正在进行的云存储+CDN的尝试。也就是说,使用云存储存取数据的用户,未来可以自动地享受到CDN的服务。当用户访问你的应用时,静态文件会自动地从离用户最近的地方分发给用户。考虑到云存储技术未来还有很大的发展空间,我个人的观点是,除非你运行的是需要高速访问磁盘的科学计算型应用,还是尽可能使用云存储来存取数据。

云存储与CDN的融合,是未来基础构架服务领域的一个重要发展方向。建议各位做基础构架服务的同仁多加关注。

(4 分钟)

【Web应用桌面化】

在基础构架服务这个领域,还有哪些方向是值得关注的呢?

上个月在美国隆重召开了一个OpenStack大会。大会结束之后,在新浪微博上看到这样一段话,让我思考了很长时间。这位微博用户说道:“来OpenStack大会的最大收获就是:做云计算的人实在太多了…大家干的都差不多,觉得再这么下去很没前途,尤其是开源云软件让大家都没了特色,全是一个模子刻出来的,拼市场拼销售的话会死掉很多小公司,要仔细研究今后的道路,如何才能突出重围?”

要在激烈的竞争当中脱颖而出,就需要寻找自己与别人的差异点。我之前写过一篇文章,题目是《开源IaaS软件的比较》,其中提到“开放源代码的IaaS解决方案要进入生产环境,还有很长的路要走”这样的观点。也就是说,创业型的IaaS服务提供商还有很多可以进行创新的领域。举个例子说,如果别人的IaaS服务全是一个模子刻出来的,那么我们是不是可以在用户界面上有点创新?

自从互联网问世以来,客户端技术一直都在不断的发展。从纯文本到多媒体内容,从静态页面到富互联网应用,人们对用户体验的期望值越来越高。但是在基础构架服务这个领域,研发人员似乎把全部的精力都放在计算、网络、存储、构架等方面,对用户体验的要求还停留在20年前的水平。这不由得让我想起几年前我还在Sun 公司工作时候的情景。当用户抱怨我们的Solaris操作系统不够好用的时候,我们的工程师总是说“我觉得挺好用的啊,你为什么觉得不好用呢?”或者是“你想要的功能像我这样做就可以了啊,你为什么一定要那样做呢?”。

各位现在看到的这张图片,是我们团队正在开发的一款IaaS产品的截图。这是一个Web应用,但是借用了桌面应用的表现形式和交互方式,我们把它叫做“Web应用桌面化”。在过去几年当中,我们观察到一个很有意思的现象。一方面,传统的桌面应用往Web应用迁移;另一方面,Web 应用在表现形式和交互方式上模仿传统的桌面应用。对于一些重量级的应用而言,Web应用目前似乎仅仅是桌面应用的补充,但是它们在未来的五到十年里可能会全面取代桌面应用。如果各位花时间看一看腾讯的Web QQ、微软的Office 365以及Adobo在线版本的PhotoShop,就会深信这不仅仅是一个试验性的方向。

我们正在开发IaaS产品就是这样一个应用。它用桌面图标代替了文字链接和图片链接,用窗口的打开和关闭代替了页面跳转,用右键菜单提供了主机和网络的管理功能。更重要的是这个应用提供了类似多线程的体验,你可以同时打开多个窗口进行操作,随时在多个窗口之间自由切换。不管你做什么操作,你永远都停留在同一个页面里面,没有页面跳转,也不用等待页面跳转。

各位是不是觉得这样一个IaaS产品很有意思?在这里我们花一点时间做一个简单的演示。

(6 分钟)

下载演示视频

【ezCloud演示】

这是我们的登录页面,看起来有点像Linux操作系统的登录界面。除了传统的用户自助注册功能之外,我们也允许用户直接使用他的新浪微博登录使用我们提供的服务。

登录成功后,进入我们的功能页面。我们先点一下这个图标将页面全屏显示,这样它看起来就更像一个桌面应用了。

在桌面上我们用一系列图标来表示用户可以进行的操作。譬如说用户要购买新的云主机,他就可以点击这个“购买主机”图标。这时候页面上就会弹出购买主机的窗口,在这里用户可以选择数据中心、硬件配置、操作系统,给云主机命名以及设定访问密码,还可以一次性创建多台相同配置的云主机。用户点击“购买”按钮之后,还会跳出一个窗口要求用户确认订单信息。用户确认订单之后,后台立即启动创建云主机的进程,并通过进度条来告知用户当前的进度。大概三十秒之后,用户的云主机就创建好了。

用户的云主机创建完毕后,系统自动打开主机管理窗口。大家可以看到,我们是通过分组的形式来组织和管理云主机的。新创建的云主机会自动出现在“所有主机”这个分组里。我们点击某个分组的图标,就会列出这个分组里面的所有主机。我们点击某台主机的图标,然后点击鼠标右键,就会弹出一个菜单,列出用户可以进行的操作。譬如说,用户可以登录进入主机控制台,可以监控主机的CPU、内存和网络活动信息,可以修改主机的名称和分组,还可以重启、重建和删除主机。

同样,我们也可以通过同样的方式购买网络和管理网络。在管理网络窗口里,我们可以将购买到的网络绑定到某台云主机上,也可以随时解除网络和云主机的绑定,也可以删除我们购买到的网络资源。网络的绑定和解除绑定操作都是实时生效的,大概10秒钟左右用户界面上的图标也会发生改变,以反映网络状态的改变。

通过这几个例子大家可以看到,用户的操作都是在弹出窗口里完成,没有发生页面跳转。这种新的表现形式和交互方式,有效地提高了用户的使用体验。由于时间关系,我就不一一演示这个系统的其他功能了。如果有听众对这个系统的细节感兴趣的话,可以在会后跟我联系。

(5 分钟)

【结束致谢】

Web应用桌面化仅仅是创新的开始。在基础构架服务逐渐成为趋势的大前提下,如何有效定义云主机的配置参数,如何在超售的同时保证云主机的性能,如何帮助客户快速创建高性能的计算集群,如何帮助客户实现自动化的横向扩展,怎么样帮助客户从原来的硬盘存储方案平滑过度到云存储方案,怎样实现云存储与CDN的无缝融合,都是我们团队正在深入研究的内容。

今天我的讲座到这里就结束了。各位如果需要更多的资料,包括今天这个讲座的幻灯片和文本,都可以从我的博客获得。谢谢大家。

(1 分钟,共计45分钟)

【后记】

由于我的讲座安排在上午的最后一个时段,估计在场的听众都等着去吃饭。分配给我的时间是40分钟,但是要讲完如上内容我估计需要46分钟,超时6 分钟。因此,在现场我会砍掉【IaaS技术】、【资源超售】和【Web应用桌面化】的部分已经广为人知的内容,【ezCloud演示】部分必须控制在5 分钟以内。最终要保证这个讲座绝对不超时,最好能够提前两分钟结束。

 

九年

By , May 23, 2012 2:18 am

第九个结婚纪念日。由于在北京出差,没有办法和咪咪一起过。 凌晨,在酒店的房间里写PPT,翻出04年整理出来的婚礼照片,慢慢地看。

当我们还在上大学的时候,我说:“咪咪,我们要在一片绿色的草地上举行婚礼,穿着白色的礼服,戴着红色的领结,就像是两只小猫咪。”是的,我们没有戴红色的领结,但是我们穿了白色的礼服,手拉手站在绿色的草地上,连松鼠和兔子都躲在草丛后面偷偷地看你。

当我们还住在北京的时候,我说:“咪咪,我要送给你一个花园,园子里栽满了鲜花和果树。我们要盖一座房子,房顶是红色的,窗户下面是柔软的草坪,就是摔下去也不会疼。”是的,这座花园不在北京,园子里长满了杂草,屋顶是朴素的砖头和水泥,蔷薇和桃树疯长叶子就是不开花,但是我们吃到了自己种下的香蕉、刺梅、油梅、草莓、杨桃、菠萝、莲雾、百香果,还有路边各种各样不知名小野果。

记得吗?每次许下一个心愿,我们都会被自己逗乐 — 醒醒,醒醒,大白天的又做梦啦。等到梦想真的实现了的时候,连我们自己都吓了一跳,原来我们真的能够做到耶。下一个心愿是什么,我还得慢慢地想一想,让我们一起来想。

你本是天上最美丽的那个天使。来到这个世界上是你的不幸,却是我的万幸。是的,你不懂世故,不知人情,什么都不会 — 只是为了我能够全身心地照顾你,呵护你。

My fairest lady, happy anniversary!

感谢为我们证婚与奏乐的李辅仁传道与李育群姊妹。虽然我们一直没有找到信仰的归宿,但是经由你们夫妇我们也感觉到了天父的慈爱。 我们常常想起李哥自制的台湾香肠,更怀念李姐婉转美妙的歌声。我们离开北京来到海南,不能不说是受了你们的指引,是你们教会了我们怎么样处理甚至是规划变化。请允许我们恳求天父大大地祝福你们,心无挂碍,常得喜乐。

感谢专程从三藩驱车5 个小时到洛杉矶给我们当伴郎的朱光华及其太太李佳。虽然已经有些年没有见面了,但是像你们这样的朋友我们一想起来就觉得很开心。

感谢伴娘陈美如。当年的台湾小美眉,现在是不是也成了家抱了娃?自从我们回国之后,就再也没有和你联系过。请允许我们恳求天父也大大地祝福你,行得平安,食得饱足,祷得倾听。

感谢Paul和Grace夫妇。我们在洛杉矶期间,多次得到Paul的关心和照顾,谢谢Paul告诉了我们爱会越分越多这个道理。

感谢摄影师Kevin,您是我们见过的最敬业的摄 影师。可能我们只不过是您众多的客户之一,可能您永远都不会看到我们这段感谢的话,但是我们衷心地感谢您为我们记录下了这一段美丽的记忆。

还要感谢第19张照片上所有的人。自从我们回国之后,就和你们当中的许多人失去联系。不管你们是不是能够看得到,我们都要感谢你们,因为你们仅仅是为了让我们高兴而参加我们的婚礼。

 

幸福如缤纷花雨洒落

By , July 29, 2004 6:02 pm

01 婚礼程序


婚礼程序是我们两个和牧师商定的。我们都不是基督徒,但是经常参加
南加大学生团契的活动,和牧师认识好长时间了。程序里面有一些传统
的基督教婚礼的内容,也有一些我们自己加进去的元素。彩纸是在文具
商店Office Depot里面买的,自己用Word编辑好自己打印出来。在左上
角有两个金色的戒指,我们刚好把中文名字印在哪里。

结婚礼拜程序

2003年5月23日 Descanso Gardens

新 娘:张 磊 伴 娘:陈美如
伴 郎:朱光华
新 郎:蒋清野 证 婚 人:李辅仁
音 乐:李育群

序乐 李育群姐妹
结婚进行曲 李育群姐妹
献诗(空谷的回音) 南加大团契
祈祷 郑旭松弟兄
读经,勉励 李辅仁传道
誓约,信物交换 新郎,新娘
宣告 李辅仁传道
合唱(Love Story) 新郎,新娘
献歌(Daisy Bell ) 郑旭松弟兄
祝歌(爱的真谛) 会众
祝祷 李辅仁传道


02 场地全景


婚礼在巴萨蒂纳镇附近的Descanso Gardens举行。还在清华的时候,我
们就梦想要在一片绿色的草坪上举行婚礼。我们第一次到这个花园参观
的时候就被这里的美所深深吸引,那时候我对咪咪说:我们就在这里结
婚好不好?咪咪说:好。场地就这么定了下来。

在结婚前我们多次到Descanso Gardens去查看场地,在幽静的树荫下我
们多次邂逅小鸟、松鼠和小兔子。我们坐在草地上休息的时候,它们一
点都不害怕,甚至走到离我们只有半米左右的地方吃草。在举行婚礼的
时候人比较多,它们都躲在草丛和花丛里面,小眼睛一眨一眨的,偷偷
的看。

是谁?是谁在森林里吸引了这么多小动物?


03 键盘伴奏


键盘伴奏是牧师的妻子,我们管她叫叫Yveen 。她是一位富有热情的音
乐家,我们在南加大团契的时候,唱的歌曲都是她自己作曲作词的。她
她弹得一手好钢琴,在吉他方面也颇有造诣。她的歌声犹如夜莺一般婉
转悠扬,曾经多次被邀请进入录音棚灌录唱片,然而她一一拒绝了这些
机会,安心在美国银行的一家分支机构做兼职,其他的时间就是写歌和
到教会去带唱诗班。

然而我们都相信总有一天她会出一张自己的唱片,唱她自己写的歌,那
些写给神的情歌。

我们回国的时候,Yveen 数夜不寐为我们录制了一盘她唱的歌。我一直
都想将这些歌转录成MP3 和朋友们分享。


04 等待出场


宾朋们都已经全部到场了,我们躲在场地后面的花丛里,这样他们就不
会提前看到新娘。按照基督教的仪式,应该是牧师首先出场,然后是新
郎和伴郎,然后是伴娘,最后是新娘的父亲搀扶着新娘出来。我们的走
法不太一样,因为我们的家人都不在场。本来是打算让一位长者带着新
娘走的,不过我们觉得新郎新娘一起出场也很有创意,后来就这么定了
下来:牧师和伴郎先走,然后是伴娘,然后是新郎和新娘。

白色的衣服,也是我们在清华的时候就想好的了。那时候我们想象着两
只白色的咪咪系着红色的领结在一片绿色的草地上追逐嬉戏。正式定做
婚纱和礼服的时候,我们还是选择了白色,不过放弃了红色的领结,因
为那看起来实在是太像真的咪咪了。

左边是伴郎,我在清华时候的同学。他一大早从硅谷开5 个小时的车赶
到洛杉矶来给我作伴郎,一路上都没有停下来休息过。如果你有这样一
位好朋友的话,你是不是应该感到很幸运呢?

右边是牧师,这位在美国航天局喷气推进实验室工作多年的工程师,在
神的感召下辞去了这一顶尖科研机构的职务前往神学院进修,他的愿望
是让更多的人听到神的名字。


05 正式出场


牧师、伴郎、还有伴娘都已经走到场地那边去了,朋友们的眼光都刷刷
的往我们藏身的花丛这边看。Yveen 的《婚礼进行曲》开始响起,好紧
张啊。

不过,都到这地步了,可不能够逃婚啦。


06 玫瑰之路


白色的玫瑰花瓣,是我们从花店里精心挑选的。我们在95年相识,在96
年相知,在03年结婚。这一路上,我们一起笑过,一起哭过。诗里说梅
花香自苦寒来,这芬芳的玫瑰,又何尝没有经历过风风雨雨的洗礼呢。

这一段路并不长,按照仪式应该是在《结婚进行曲》结束的时候刚好走
完。对于我这个音乐盲来说,掌握节奏不太容易,结果曲子刚弹到一半
的时候我们就已经走到宾朋的面前啦。

这玫瑰的清香,让人陶醉。


07 婚礼全景


正前方依次是伴娘,牧师,还有伴郎。我们两个拉着小手站在中间,等
着训话呢。

落日的余晖,轻轻的洒落在嫩绿的草地上。有一点点小风,所以感觉挺
舒服的。在盛夏的洛杉矶,这样的天气实在难得,我们在婚礼的前一天
还担心会不会太热呢。


08 祷告勉励


按照传统,在婚礼开始的时候要由牧师做一个祷告,然后说一段勉励的
话。通常来说在基督教的婚礼上都会引用《以弗所书》第5 章中的几条
经文,由于我们不是基督徒的缘故,我们和牧师共同商定引用《哥林多
前书》第13章中的几条经文。这段经文很早就被编成歌曲广为传唱,在
场的朋友几乎没有不会唱的,我们都很喜欢。

爱是恒久忍耐又有恩慈,爱是不嫉妒,爱是不自夸不张狂,不做害羞的
事。不求自己的益处,不轻易发怒,不计算人家的恶,不喜欢不义只喜
欢真理。凡事包容,凡事相信,凡事盼望,凡事忍耐,凡事要忍耐。爱
是永不止息。

哥林多前书13:4~8


09 聆听教诲


爱是永不止息。短短的一段教诲,需要我们用一生去体会。


10 拉个小手


牧师的训话好长啊,我们两个站在那里,脚都有点累了。那就拉个小手
吧,互相扶持一下。


11 交换戒指


那时节我刚刚被公司扫地出门,咪咪还是个学生,两个人都没有什么钱
买好看的戒指。我们在Tiffany 的网站上看了半天,给咪咪买了一个铂
金的素圈,带一颗很小很小的小石头,我自己的则挑了一只黄金的小素
圈。那时候也考虑到是不是应该要两只颜色一样的戒指,不过铂金的戒
指真的好贵啊,后来想想也就算了。只要两个人真心相爱,戒指的颜色
是不是一样又有什么关系呢。

一般来说戒指是先放在花童那里的,不过我们没有花童,就先交给牧师
拿着啦。在交换戒指之前我们互相念了一段盟誓,不过没有用牧师提供
的模版,是我们两个自己写的,修改了好多次才定了下来,在此之前牧
师也不知道我们的盟誓是什么。


12 亲个小嘴


激动人心的时刻到啦:Now you can kiss the bride.

亲一个。下面的人都在笑,我们也笑。回过头来看看满座宾朋,一高兴
又亲了一个。


13 同一首歌


在婚礼中最与众不同的一段,是我们两个一起唱歌,唱的是Love Story
里面的主题歌。

LOVE STORY

Where do I begin,
to tell the story of how great a love can be,
the sweet love story that is older than the sea,
the simple truth about the love she brings to me.
Where do I start?

With her first hello,
she gave a meaning to this empty world of mine.
There never be another love another time,
she came into my life and made the living fine.
She fills my heart.

She fills my heart,
with very special things,
with angel songs,
with wild imaginings.
She fills my soul,
with so much love,
that anywhere I go,
I am never lonely,
with her alone.
Who could be lonely?
I reach for her hand,
it is always there.

How long does it last?
Can love be measured by the hours in a day?
I have no answers now but this much I can say,
I know I will need her till the stars all burn away,
and she will be there.

这是我最喜欢的一首歌,经常唱。一个人的时候唱,两个人在一起的时
候也唱。在跟Yveen 商量婚礼音乐安排的时候还考虑过在我们唱的时候
Yveen 用键盘或者吉他给我们伴奏,不过对于我这样一个音乐盲来说跟
上节奏实在是太难了,最后只好决定清唱啦。清唱的时候感觉挺好,不
过人家最后都夸新娘唱的好啦。

I know I will need her till the stars all burn away,
and she will be ther.


14 友情献歌


献歌的是南加大学生团契里的一位朋友,叫Paul。在策划这次婚礼的过
程中得到他的不少帮助。他的太太叫Grace 离预产期只有一个星期了,
但是仍然过来参加我们的婚礼。美国跟中国就是不一样,都快生了还可
以到处郊游,蹦蹦跳跳的一点事情都没有。那天我们专门为她要了一把
比较舒适的椅子,从Descanso Gardens到最近的一家医院只有5 分钟的
车程,所以我们一点都不担心。

Paul到美国以后才学的吉他。在我们的朋友里面有一位叫钟杰的新加坡
人,在南加大读音乐方面的博士,弹得一手好吉他,Paul就是跟他学的
吉他。在聚会的时候Paul也会向Yveen 请教,那时候Yveen 总是笑眯眯
的,很耐心的讲解,每每惹得我都想要买一把吉他来学。不过后来考虑
到自己五音不全加上节奏感巨差的事实,最终没有红着脸来拜师。

南加大的朋友还给我们唱了一首《空谷的回音》,很好听的一首歌。


15 鲜花伺候


仪式结束的时候,要抛花瓣的。这些都是真的玫瑰花瓣耶,他们都已经
迫不及待的要打开袋子啦。


16 缤纷花雨


幸福就象这缤纷花雨一样洒落在我们身上。


17 回眸一笑


按照传统这个时候我们应该一起挤到一辆小破车里,车后面系几个可乐
瓶子啥的,然后叮叮当当得开去度假啦。不过大伙都在等着和我们合影
留念,晚上还要一起去腐败呢。

转过身来,笑一个。

太阳已经快落山了,远处的树梢上还能够看到些许潺潺的金色阳光。有
点小风,很凉爽很舒服。


18 少儿不宜


情不自禁,小朋友闭上眼睛不要乱看啊。


19 合影留念


基本上就是这些人啦,牧师和他太太晚上要去带一个团契所以提前离开
了。我在喷气推进实验室的老板也有事提前离开了。

传着绿色裙子坐在伴娘前面的就是即将生Baby的Grace ,她的丈夫Paul
站在最右侧。在我们婚礼后10天她顺利的生下一个小男孩,我们在孩子
生下来的第三天就去抱过了,小朋友鲜嫩鲜嫩的,好可爱哦。

站在我旁边的是伴郎,旁边穿这红色裙子的是他的妻子佳佳。再往右边
便是音乐博士钟杰,他的妻子穿着红色的上衣坐在佳佳的前面。

最遗憾的事情,就是我们的父母亲都没有能够参加。


20 美好祝愿


下一个举行婚礼的人会是谁呢?那就要看是谁抢到了新娘扔出去的捧花
啦。

新出炉的榴莲饼干

By , May 21, 2012 5:23 pm

Just came out of the oven. Make by My Fairest Lady the Versatile.

 

作文

By , May 20, 2012 10:36 pm

因为要记清扬婉兮写《保证书》的事情,又想起另外一件事情,顺便也记一下吧。

某天早上送婉清上学的时候,听见广播里一位四年级的同学声情并茂地朗诵他的作文《我的老师》。这位同学读道:“我们的班主任某某老师,对待我们就像是亲生的孩子一样。所有的同学们都亲切地叫她某某妈妈。”

喔卖糕的。这个年头,母亲只生了我的身,党的光辉照我心。这还不算,连老师也要来当妈妈了。回想一下,我小时候也写过很夸张的作文,但是从来没有肉麻到这个程度啊。

当天接婉清回家的时候,我跟她说了今天听到的作文,然后跟她说:“将来你要是敢写这样的作文,我就打断你的腿!”

保证书

By , May 20, 2012 10:26 pm

周五放学的时候,到学校去接清扬婉兮。因为我们晚到了一点点,婉清就被班主任带回办公室了。我给班主任打电话,结果班主任在电话里跟我说:“婉清在学校里偷其他同学的小星星。我让她写个保证书,下星期一要交过来。你们做家长的也要教导孩子,在学校不要偷其他同学的东西。”

哼哼。看来这祸闯得大了。

婉清从学校出来,刚坐进车里,我们便迫不及待地审问这偷东西的事情。

南方的学校,大都是要让小朋友睡午觉的,婉清的学校也是。大家都知道,小孩子们都不老实,睡觉的时候经常闹腾。学校有一个制度,午觉睡得好的同学起床后会得到一颗小星星。在宿舍的墙上有一个名单,谁谁谁得到了小星星,就贴在自己的名字下。为了得到更多的星星,经常有孩子起床后躲在床底下,等其他同学出去之后把别人的小星星挪到自己的名字下。婉清的星星也被别人偷过,当她找老师投诉的时候老师说:“你自己的东西,自己要管好。老师会问问是谁拿了你的小星星,然后还给你。”但是这样的案子似乎从来没有破过,婉清被偷的小星星也从来没有拿回来。婉清最终决定从别人那里偷回来,于是伙同另外一位小朋友在大家起床之后躲在床底下,然后…然后…就被捉到了。

在妈妈的辅导下,婉清写下了她人生中的第一份《保证书》。她现在一共有十颗小星星。因为偷别人的小星星,下个星期要被罚掉五颗。剩下的五颗,我们让她送给其他的小朋友。将来如果挣到新的小星星,也要送给其他的小朋友。

 

Panorama Theme by Themocracy