一个奇葩问题

今天运行一个java工程时出现问题,总是提示某个配置文件的数据无法读取。百思不得其解,后来检查相关配置文件,发现一个有趣的问题:工程依赖的一个jar包里(这个jar包是我用gradle打包的),竟然在同级目录下有两个完全一样的文件(我的环境是ubuntu15.04),把该文件放到windows下显示效果一样,说明不是障眼法。我试着在jar包中删除其中一个,结果同名的两个xml文件同时被删除了,这又说明这两个文件其实是同一个文件。

 

检查发现,原来是用gradle打包这个jar文件时多复制了一次hivemodule.xml文件,不知这算不算操作系统中文件系统的bug。总之,改正过来后,一切正常了。
 


Gradle打包的war文件部署到tomcat后运行解压出错的问题

自从用了gradle来构建公司的所有新旧项目,总会涌出一堆各式各样的问题,看似配置比maven简单了,但问题却更多。究其原因,一方面团员成员都比较菜,我要一个一个为他们解决相关问题,但过不了几天,又冒出新问题,没养成自我解决问题的能力,又得找我,作为苦逼的项目经理这一职务,我还真羡慕他们,想当年,哪有谁帮我这样处理问题啊;另一方面是gradle作为开源软件,项目比较活跃,版本更新比较快,但问题也比较多,这次就遇到了编码问题。

    说到编码问题,我在这家公司也是深受其害而又无可奈何。首先公司的固有框架比较老,N年未改变,里面utf-8和GBK编码的源码文件都有,当拿过来作为新项目的开发基础框架时,却又要结合现代的gradle、eclipse、tomcat等开发工具,在这个过程中仅编码问题就令人头大,有时真是犯了强迫症,恨不得把老框架里的每个文件编码都改一遍,但老框架是依赖的一个外部封装的jar包,而这个jar包对应的源码SVN库我没有权限。。。

    回到正题,最初用gradle时的版本是2.2,当打包时提示编码问题,后来我在build.gradle文件中加入

[compileJava, javadoc, compileTestJava]*.options*.encoding = 'UTF-8'

强制以utf-8编码编译源文件,虽然有警告提示,但编译部署都能成功。最近的项目已经有人在用grade2.6了,随之而来的问题就是:有的人编译就直接报错;有的人有警告但能编译成功,在部署war包时报错。首先值得一提的是,本人一直用的ubuntu,系统默认编码为UTF-8,一直运行良好,而这些小伙伴都是用的中文windows,系统环境默认编码为GBK,在eclipse中开发时各种报错。经过尝试,最终在基于eclipse的gradle插件中配置了一项JVM参数,才使小伙伴们感受到阳光明媚(建议把上面build.gradle文件中的对应配置注释掉):

-Dfile.encoding=UTF-8



VirtualBox下对虚拟机硬盘进行扩充

因工作和开网银需要,在Ubuntu下安装了virtualbox,并在上面安装了windows7。随着时间推移,发现原本分配的25G虚拟硬盘不够用了,于是想给它扩容,在网上搜了一下,方法很简单,记录一下。

我了解的方法有两种:

1.直接新建一个虚拟硬盘(比如.vdi文件),然后直接挂到虚拟机上。这是最简单的办法,但是我不喜欢给一个系统挂两个VDI文件,也不利于以后备份。

2.用命令扩展空间

先把虚拟机中的win7关闭(必须是彻底关机,不能为休眠),然后从菜单进入管理虚拟介质管理,右击该win7系统对应的虚拟硬盘,选择”释放“,然后再次右击选择”删除“(注意,弹出提示框中必须选择“保留”,不会删除系统数据,如果选择”删除“那就完了,该VDI文件不能恢复了)。

至此,扩容前的准备工作全部完成。

接下来,打开命令窗口,输入:

yzy@thinkpad:~$ VBoxManage modifyhd ./VirtualBox\ VMs/win7/win7.vdi --resize 51200

结果显示:

0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%

说明扩容成功,我的win7扩容为50G了,最后将该VDI文件重新挂到该虚拟机即可,在此不再赘述。

注意:

1.VBoxManage modifyhd 命令只支持VDI及VHD格式的虚拟硬盘。

2.该命令只能用于扩容,而不能缩减硬盘。

3.该虚拟硬盘必须为动态分配(新建虚拟硬盘时都会有相关选择:动态分配或固定大小)。

3.如果你的硬盘格式不是VDI或VHD,可使用命令VBoxManage clonehd 将格式转换一下,命令参考:https://www.virtualbox.org/manual/ch08.html#vboxmanage-modifyvdi


解决windows下的zip压缩包在linux下解压出现乱码的问题

前言:

      windows平台下的默认编码一般为GBK、GB2312,而linux下一般默认为UTF8,当windows下的压缩文件在linux下解压时,由于该压缩文件没有指明采用的是何种编码,于是linux用默认UTF8编码解压后中文就会出现乱码。

      今天从网上下载的压缩包在ubuntu下解压后出现中文文件名乱码问题,但文件内容没有出现乱码。网上有多种解决方案,但许多方法不够通用,不能解决大多数人的问题,比如:

unzip -O CP936 xxx.zip

在我本地unzip命令就没有这个参数,不能执行。

在此,总结一下我用过的两个比较通用有效的方法:

1.在wine环境下安装一个windows平台下的解压软件

这个方法最简单。一般linux平台下我都会安装wine,于是我接下来安装了360压缩(也可安装其他解压软件),然后解压文件,一切正常,so easy!


2.使用linux命令解压

a.安装工具:

sudo apt-get install p7zip-full convmv

b.解压文件:

LANG=C 7za x test.zip

此时中文文件解压后,会显示类似乱码:

�ؿ�-�ļ��嵥��ʹ��˵��.txt (无效的编码)

准确点说,这应该不算乱码,可理解为未编码状态,此时可以继续下一步处理。

c.对上一步产生的乱码进行转换(gbk转utf8):

convmv -f GBK -t UTF8 -r --notest .

此时文件名被纠正为:

必看-文件清单及使用说明.txt

d.如果你的文件内容也出现乱码:

可以使用iconv命令解决,具体可通过iconv –help查看用法(本人暂未遇到文件内容乱码问题,就不演示了)。

总结:

第二种方法显然处理起来更稳定,但需要命令进行多次操作才能完成,以后有时间写成一个文件,方便使用。



解决ubuntu eclipse内置浏览器打不开的问题

在ubuntu中打开eclipse后,默认内置浏览器选项是灰色禁用的,进入WindowPreferenceGeneralWeb Browser即可看到。

当在代码中链接到一个URL时,会自动启用外部浏览器打开链接,如想在eclipse内部简单浏览一些网页信息,则可选择WindowShow ViewOther…GeneralInternal Web Browser,此时会弹出内置浏览器,但是该浏览器会报错:

org.eclipse.swt.SWTError: No more handles [Unknown Mozilla path (MOZILLA_FIVE_HOME not set)] 

根据提示,将MOZILLA_FIVE_HOME设置值为/usr/lib/firefox,没有效果,然后又从网上找了一些解决方案,仍无结果,最后终于看到有人这样:

sudo apt-get install libwebkitgtk-1.0-0

通过安装这个依赖(gtk图形库下webkit浏览器内核),重启eclipse后,灰色禁用的Internal Web Browser选项终于可用了。

2015阅读清单(上半年)

终于,估计今年看的书会更多了,所以,决定每半年记录并发布一下阅读感受。

1.扶桑

严歌苓作品,讲述了19世纪中后期的中国南方沿海老百姓远赴美国旧金山等地淘金时发生的故事。故事主人公为一个远嫁广东沿海的湖南女子扶桑,由于其夫孩童时期即随长辈前往美国淘金,因此订了娃娃亲的扶桑与丈夫从未谋面,来到婆家后因有寻夫念头而受人贩子骗被拐卖到美国沦为妓女,随后与一位白人少年产生了复杂恋情。整个故事中扶桑的经历,代表了晚清时期背井离乡悲惨谋生的中国人,在美国,华人遭受白人的种族歧视,华人之间的内部冲突,华人奴性般的顺从和刻苦耐劳,华人妓女的悲惨生活。。。一幕幕构成了那个时代特有的现象。总结:一个勤劳的民族,一个温顺的民族(晚清时期的中国人似乎已无几百年前的民族节气,真应了那句:崖山之后无中华?),一个奴性的民族。
2.蛙
莫言的小说,以书信形式讲述了中国自特殊年代以来的计划生育政策推行背景下发生的各种心酸复杂的故事,即便到了当今,这个故事仍未结束。
3.长尾理论
一个新的经济理论,所谓长尾,简单讲,类似于我们常说的20%的人掌握了社会80%的财富,这个20%就是头部,而80%就是长长的尾部,即80/20法则,这就是长尾的原始描述。长尾理论已经扩充到了各个行业,特别是作者以某个音乐网站的歌曲下载量为例,少数热门歌曲占据了网站相当高的下载量,而从千上万的非热门歌曲下载量按排名则依次递减,形成一个长长的尾巴,逐渐趋近于零(但没到零),尽管占大多数的非热门歌曲下载量很低,但它们的总下载量却在网站中也占据了相当大的比重,由此推导出,这个有趣的经济现象竟然在许多行业都存在,如果我们能够认识到长尾的存在,就可以很好地加以利用。那么,我们的汉字有没有这样的规律呢?1994年出版的《中华字海》收入了87019个汉字,而常用字是约3500个,竟然只占汉字总量的4%,此可称为汉字长尾也;在发达国家,城市拥有大多数人口,而广袤的其他地区则人口稀疏,将来中国完成城市化后也将出现这种情况,这是城市长尾,等等。
4.酒国
检查院侦察员丁钩儿调查红烧婴儿事件,然后关于他一堆的想像和梦想,再然后就死了。这部小说,说实在的,不如《红高粱》和《生死疲劳》好看,当然我也没看出太多内涵,感觉最好看的部分是关于广东人采燕窝的故事,十分动人。
5.怎样读书
一本民国时期的书,也是第一次正式读繁体版的书,内容不多,是1930年代及之前的众多学者关于怎样读书的建议。说到读书,作为一个阅读效率较低之人,从小到大,读过的书真是屈指可数,平均一年2本?比起那些一年读上百本书的学霸来说,我几十年的阅读量才及人家一年啊。从2013年,也就是29岁开始,我慢慢认识到读书的重要性,不喜欢读也要强迫自己读,一年10本左右总可以吧,先花几年时间培养习惯和兴趣,然后慢慢递增,相信自己可以变得更有智慧。
     读了此书,让我震惊,原来在那个时代,这批国学大师及资深学者都有着非常开明的思想,对创新,对思想自由的重视,让我这个晚出生半个世纪,从现代填鸭式教学中成长过来的人自惭形秽。民国啊,一个多么动乱的时代,却铸就了大批思想家,教育家,像胡适,蔡元培,鲁迅,周作人,李公朴,郭沫若,太多太多,是他们改变着当时的中国精神和教育风貌。这批学者大多是清末或民国初出生的人,却难能可贵地比我们现代生活的人思想更开明更前卫,让我改变了对那个时代的误解,也让我从老家那些小表弟小表妹小侄子刻苦学习奋战于题海战术中深深认识到中国现代教育的落后和迷茫,我固以为各事物一定是随时代推移不断进步的观念被彻底打破,就像南宋的灭亡,证明了先进发达的文明也一样能被落后野蛮的蒙古铁骑所打败一样。总之,这是一本好书,民国时期的好书。
6.免费
又是一本克里斯-安德森的作品,与《长尾理论》和《创客-新工业革命》构成了他的三部曲,具有一定的时代意义,甚幸,这三部我都看完了。《免费》此书,简单讲,就是通过免费的思维模式来实现赚钱。比如,Google这个IT巨人所提供的服务几乎全部免费,他的营业收入主要就是依赖广告费。国内许多IT企业也是,让我印象最深的当属奇虎360,它将工具免费,却获得了大量用户,用户意味着流量,流量意味着财富,当然,还有它当年的杀毒软件免费之举,让整个杀软行业地震,从此,我们再也没听说过金山杀毒、瑞星杀毒、江民杀毒了。总之,《免费》一书,让我明白一定程度或某种角度看来的免费,实则为一种机敏的商业策略。使用好“免费”这个工具,能为我铺就未来创业之路。另外,介绍下克里斯-安德森,是美国《连线》杂志主编,在《创客》一书提到了他自己创业开办了3D Robotics 机器人公司,目前已经获取多轮巨额融资,前景美好。
7.狼图腾
电影出来的时候我还没看该小说,所以决定先看完小说再看电影,结果可想而知,电影永远不可能比小说精彩。就像《红高粱》里的人狗大战和《生死疲劳》里的人猪大战一样,《狼图腾》里的人马狗与狼之战真是精彩纷呈,但该书的主旨包括:关于狼的精神,蒙古族人的精神,以及批判汉族这个农耕民族的奴性及羊性;另外,呼吁人类发展与自然生态环境和谐相处。小说的精彩之处,与其说是对狼、对狼一般的游牧民族的歌颂,不如说是对汉族农耕民族的民族劣根性的批判。这是一本好书,值得每一个中国人仔细阅读,特别是政府官员,应该人手一册,日夜开会学习上级指示精神般钻研。
8.甲午殇思
众多军事人才写的纪念甲午惨败历史教训文章的合集。虽然各家观念不尽相同,但基本概括并分析了甲午战争失败的前因后果,从中学到了不少政治思想方面的精华,也确实值得国人好好阅读。不过在读的过程中,要有自己的主见,毕竟这些作者都是在当前政治体制下培养出来的军事人才,是为当前执政者说话的,每谈到一个点上时,有的作者会把那些官方口号拿出来念一遍,所以你懂的。

ubuntu中默认使用wps打开office文档

下载解压wps后即可直接打开wps,但用户在打开各类office文档(xls、ppt、doc等)时只能选用系统中的默认程序libreOffice,所以我们需要添加wps作为office文档可选的打开程序。

在ubuntu中,有三个文件可配置默认程序:

1./etc/gnome/defaults.list
2./usr/share/applications/defaults.list
3.~/.local/share/applications/mimeapps.list

其中第一和第二个属于系统级配置文件,里面包含了系统中配置好的文件类型及其对应的打开程序;第三个文件为当前登陆用户的局部配置环境,如果与前面系统级的配置有重复,则以局部配置优先,比如:我要修改xls文件的打开方式,我就会在第三个文件即mimeapps.list中加入一行:

application/vnd.ms-excel=wps-sheet.desktop

注意:wps-sheet.desktop是一个自定义的桌面快捷键,存放在与文件mimeapps.list相同的目录,即~/.local/share/applications/。在此不讨论如何创建快捷键。

保存后即可在右击excel文档时发现多出了一个wps打开选项,如图:

同理,我们可以继续修改,实现把word、ppt和其他任何文档以我们指定的程序打开,最后WPS配置后应该如下:

application/vnd.ms-excel=wps-sheet.desktop
application/msword=wps.desktop
application/vnd.openxmlformats-officedocument.presentationml.presentation=wps-ppt.desktop

最后,关于文件类型,可右击文件属性查看,然后按如上格式配置好对应的快捷方式(.desktop),比如,查看excel:

ubuntu系统中chrome浏览器的代理配置

工作环境迁入linux后,一般都会遇到一个普遍问题:怎样在linux环境下寻找windows常用程序的替代品?QQ,Office,邮件客户端等等。QQ目前我暂时用的webQQ,office用的ubuntu内置的libreOffice和金山wps for linux,其它的也都一一寻找到了替代品,如果实在不行,试试wine之类的模拟器。然而这都不是重点,最重要的是我习惯使用的chrome浏览器在linux下的版本无法使用代理功能。

    最终使用的一个曲线解决方案:

1、安装好google-chrome(或者chromium也行)后,我们发现浏览器的设置中,代理配置功能失效,显示为:

在受支持的桌面环境中运行google-chrome时,将使用系统代理设置。但您的系统不受支持,或启动系统配置时出现问题。

但您仍可通过命令行进行配置。如需详细了解各项实验功能和环境变量,请参见 man google-chrome。

2、关闭该google-chrome,并重新从命令行启动,加入一个参数:

yzy@thinkpad:~$ google-chrome --proxy-server="socks5://localhost:7077"

值得注意的是,由于我平常windows环境下使用的代理工具为:chrome+SwitchyOmega插件+MyEntunnel,配置是SSH+socks5,所以一开始没有在–proxy-server参数中指定socks5,导致启动后代理失效。(可通过google-chrome –help了解详细参数)

chrome成功启动后,打开百度输入“ip”,可显示我的代理服务器IP,说明代理成功启用。

3、此时我就可以在chrome中登陆google帐户了,然后我的所有扩展也就随之慢慢下载并安装完成,其中就包括我的SwitchyOmega(如果有没安装,可自行去google store下载)。接下来在SwitchyOmega中配置好我的ssh代理即可成功恢复之前windows环境下的代理配置了。

linux下我的代理工具为:chrome+SwitchyOmega+gSTM(代替windows下的MyEntunnel)。

2014阅读清单

1.黑客与画家
IT名人阮一峰大神翻译的作品,作者为硅谷创业教父paul graham。最初也是在阮哥的个人网站上看到介绍马上购买阅读的,这本书很适合我们这种行业的人阅读,作者以自己亲身编程和创业经验告诫大家,作为程序员应该具备黑客思维方式,同时对各种不同的编程语言的特性要能理解深刻,在不同的开发工作中选择合适的开发语言;要想创业,应该具备独特的思维方式才能出奇制胜。还有更重要的一点,作者在文中极力推崇lisp语言,认为它是一种优秀的更适合黑客思维方式的程序员使用的语言,同时也用比较理性客观的方式推论出100年后编程语言的可能发展方向,其中提到java语言肯定会死(-_-!别冲动,必需理性看待)。

2.中国最穷的小伙子发财日记
4月份在医院住院期间在手机淘宝上看到的,是作者以自己亲身经历为样板编写的自传体励志小说,给当代中国年轻人以激励和指引,阅读后使我有所启发,值得推荐。

3.富爸爸穷爸爸系列
同上,住院期间看的,这是一套系列丛书,让我有相见恨晚之感,相信此丛书一定会改变我的财务观念。该系列好像有几十本,我看的是盗版(不好意思,同时也没分清自己看的是丛书中的哪几本),不过后面又买了正版《富爸爸销售狗》,《富爸爸财务自由之路》。简单讲,这套书讲述了作者的富爸爸和穷爸爸完全不一样的财务思维使得他们最终走上了完全不一样的财务之路:穷爸爸非常聪明,拥有多个博士学位,知识渊博,大学教授,最后又成为夏威夷州的教育部长,可谓无限风光,但穷爸爸认为自己是知识份子,不屑于谈论关于金钱的话题,认为唯有努力工作,省吃俭用,做好储蓄,才能有足够的钱来维持生活,才能活得体面,可惜穷爸爸终其一身都陷于财务窘境之中。而富爸爸具备不一样的财务观念,他认为不能成为金钱的奴隶,人不能为钱工作,而应该让钱为自己工作,让别人为自己工作,最终使得富爸爸成为了夏威夷首富。作者从小受两个爸爸的影响,在成长过程中,他慢慢接受了富爸爸的金钱观,最终使自己在40多岁时实现了财务自由(简单点讲,个人认为,财务自由就是让自己在达到一定年龄时就拥有了足够的金钱满足余生的一切财务支出,实现财务自由的年龄越年轻代表一个人的财务越成功)。
部分经典语录:
穷人会说,我没钱,我买不起;富人会说,我怎样才能买下这个东西。
穷人买的是负债,富人买的是资产。
穷人是为钱工作,富人是让钱为自己工作。
如果你象一个穷人那样思考问题,那么无论你赚多少钱,你仍旧会把钱全部花光而一无所有。
穷人害怕风险,不愿意从目前安全的环境中改变,而富人善于把握住风险中的机会。
邻居告诉我,他有个理财收益是5%,而我告诉他,我从政府的一个投资中获得的收益是16%。几天后,邻居拿着一份他收集的调查报告证明我的收益是十分危险的。可是这么多年过去了,他的收益依然是5%,而我的依然是16%。

4.马云传
想适当看看名人传记,首选了马云,关于它的传记市面上有不少,我是买的亚马逊kindle上的,作者赵建。其实之前看过一些零零碎碎的关于马云的文章,现在算是作了系统回顾,不过这本书的内容大概是截止于07,08年吧,内容有点旧了,至少现在余额宝都出来一年了。他的传奇故事让我肃然起敬,去掉书中对他充满的溢美之辞,也适当提到,马云也是人,也会犯错误,而且也犯过不少错误,但是在决定阿里巴巴的生死命运的节骨眼上,没有犯大错。虽屡次被骗,仍以诚信为本,服务天下客商,实乃不易。

5.史蒂夫 乔布斯管理日志
在此之前当然也知道他的一些事迹。本书不是那种连贯性很强的小说或散文类读物,但通过此书,更进一步了解了乔布斯的性格,成长经历,创业起伏。特别是他的蛮横霸道竟然能对企业的发展带来惊人的力量,这是我等受过小绵羊般正统文明教育的人所难以想像的。这说明世间万物,只要在合适的土壤生成,它就能打破人类的想像力。

6.富同学穷同学
从书名就可以看出,该书作者阅读了大量开启财富思维的书籍,并且一定读过《富爸爸穷爸爸》系列,与该书大概不同的是,穷爸爸在《富爸爸》一书中有一个具体的人物载体,而在该书中,并没有具体指出哪个同学是穷同学,只是泛指了一下。当然,这不是重点,该书同《富爸爸》的宗旨是一样的,都希望当今社会的人们能够树立正确的独立的财富观念,让自己实现真正的财务自由,从而享受美好的人生。同时,两书都反映了一个社会的现象:许多人都在抱怨工作,抱怨生活,想改变现状,甚至作出了计划,但终究成为了行动上的矮子,最终抱憾终生。至此,我也希望自己最终能够勇敢的跨出第一步。《富同学》一书,另外重点提到了一点,人生路上需要不断地编织自己的交际网,为自己的事业提供更多的支点,读到这里,我甚感惭愧,这是我最最薄弱的地方。看来,我还得从小事做起,有意识地自然地与人交际,练习自己的口才,培养自己的情商。

7.人生
路遥的《人生》,先于长篇小说《平凡的世界》。这是一部七八十年代的理想与现实发生碰撞,让人从不同的抉择中慢慢走向成熟的故事;这也是一个个与时代无关,却永远具有在任何时代保持意义的故事,这才是真实的人生。

8.穿布鞋的马云
又是一本关于马云的书,与前面看过的马云传差别不是很大。唯一最大区别是,这本书成书于阿里巴巴上市前夕,内容稍鲜活一点。看完这本,估计很长一段时间不会再看关于马云的书了。

9.路遥十五年祭
该书内容主要是路遥的亲友为缅怀这位过早去世的文学大师而写的纪念文章的合集,关于路遥的出生及成长背景,写《人生》和《平凡的世界》的前因后果,让我深深感受到一位对文学狂热的作家是怎样历尽艰辛才能炼成。特别是书中最后,路遥以较长篇幅描述了他创作《平凡的世界》的生活经历及心路历程。路遥的书是好书,我不仅要把《平凡的世界》再看一遍,以后也一定会再把他的全集买下,仔细看个够。路遥,好走!

10.乔布斯传(50%)

内容较长,暂只看了一半。感觉看《乔布斯传》,不仅仅是对乔布斯一生的传奇讲述,更像是一部近半个世纪以来IT行业的进化史,包括计算机硬件,网络和图形界面的发展,内容十分精彩。另外,值得称道的是,作者为了写乔布斯传,专门访问了与乔布斯一生有过交集的100多位人物,以尽可能客观的方式展现了一个人而不是神的方方面面,包括他的优点和各种性格上的缺点,毫不掩饰。这与前面看过的《马云传》(读马云传,感觉他就是神)比起来,不是一个级别,是收获最大的一本书,强烈推荐。

总结,2014年看的几本书主要是人物传记,不仅了解了几位我想了解的人物故事,更让我感觉到西方人做事的严谨(从写人物传记的角度),中国人应该值得学习。

新浪sae体验

    首先,我想提下云计算的概念。长期以来大街小巷都提到“云计算”,但我一直没弄懂,因为我不知道我能从中获得什么便利,直到开发上接触并用到了PaaS,才有所认识。我对云计算的理解是:云是一台可以无限伸缩的计算机,有无限的带宽,CPU,内存,存储,操作系统,软件服务等资源,用户所有的信息化处理业务都可以接入云,并按需计费,就像我们家中的水电煤气一样,我们需要用多少就支付多少费用,丰俭由君,这是面向大众用户的一种解释。至于云底层的实现,是通过虚拟化的技术将现实中的无数物理服务器,带宽,操作系统等各种资源整合在一起,形成一个具有无限伸缩能力的虚拟计算机。

    另外,从服务层次理解,云计算分为IaaS,PaaS,SaaS三种。IaaS表示基础设施即服务,正如前面讲到的,将所有资源整合成一台虚拟计算机,完成这个步骤的厂商往往是IT巨头企业,如google,amazon,IBM等,这些厂商能将自己遍布全球的数据中心所有资源进行整合,然后面向上层PaaS服务商推出基础设施服务;在此基础上,PaaS(平台即服务)厂商对云的功能进一步丰富,提供各种开发语言的支持及程序的运行环境(web应用服务器,数据库),再加上对应的资源配置功能,即可面向上层用户(SaaS服务提供商)提供服务,PaaS这一层的提供商提供的产品有Google的GAE,Microsoft的Azure,国内的有新浪的SAE,百度的BAE等;最上面这层SaaS,表示软件即服务,这一层服务的提供商利用PaaS提供的程序运行环境,搭建自己开发的程序或现成的软件,面向普通大众消费者提供资讯网站,手机APP访问等网络服务。

    一般而言,PaaS服务的消费者主要是中小企业和个人软件开发者,尤其是IT行业创业的个人或企业,往往基于PaaS平台可以极大地降低创业成本,提供更好的SaaS服务给客户。

    好了,回归正题,有了上面的模型,作为开发人员,我能很好地找准自己在云计算平台中的定位,我所能直接利用的就是PaaS服务,把自己的软件放上去,然后就可以通过浏览器访问了,这里介绍的就是新浪sae(sina app engine)。

    选择sae是因为它可以免费试用,注册后有赠送的云豆用于服务计费。sae目前支持java,php,python语言,用户可以上传web应用和移动应用,提供mysql,kvdb,memcache等传统关系数据库,key-value分布式数据库和用于分布式内存缓存的数据库,另外还为开发者提供了Storage用于分布式的文件存储服务,基于这些高大上的服务,当然少不了后台管理功能。

    首先,我要布署一个java web应用,需要用到后台mysql数据库。我在控制台创建一个新应用,输入对应的二级域名和应用名称,配置好运行所需资源。

第二步,进入该新建应用的管理界面,进入代码管理,上传代码。

第三步,很简单进入服务管理-MySQL,初始化数据库,可以得到一个与应用名称对应的数据库。

第四步,访问应用。

    综上,这是一个sae最简单的应用部署流程,其中需要注意的是,布署的应用是基于本地环境开发的,可能放到sae时会运行出错,此时就要具体问题,具体分析了。比如我发布这个java web demo时,就遇到了jdk的问题,本地用jdk1.7编译,而sae上的jre环境是用的Open JDK 1.6,导致java.lang.UnsupportedClassVersionError: t : Unsupported major.minor version,此时需要本地版本降级编译一下再部署。另外,数据库的用户名和密码是该应用对应的AccessKey和SecretKey,直接在应用代码中修改一下数据库配置即可,或者在应用代码中调用sae的API动态获取,我个人倾向前者,因为不想与运行环境API粘在一起。