奇迹之流WonderfloW

Nothing Replaces Hard Work!

Touching Moments

今天是闰九月十八,闰九月这种日子据说要一个世纪才会出现一次。我想,出生在这样日子里的孩子,如果像我一样固执的过阴历生日,那么一辈子就只有一岁啦。这就是传说中的永远年轻了吧。

在这样特殊的日子,似乎就该写点文字来纪念一下。但是转念一想,要是没有平日里的那些稀松平常,又怎么会衬托出今天的这种奇妙特殊呢。所以,今天就写点往日记录下的感悟吧。

喝茶

原来我有很长一段时间,在公司喝好的茶,在宿舍喝差的,是无形中给自己努力工作带来了一丝激励,让我对每一天去公司上班有所期待。 想不到这个道理,直到喝完了所有的茶叶,我才明白。所以,自从搬回实验室以后,我又开始了这样的安排。

驾驶员

有的路别人说是错的给你纠正过来你不以为意,直到自己开错了才发现是真的错了。

司机不仅要会开车,还得认路,其实最重要的还是你和副驾驶上的那份责任。

郁结

有时候不知道是别人的郁闷还是自己的郁闷,仿佛美好的事情就该这样,直到有人撕碎了摆在你面前,你不知道该替那人难过还是替自己难过。

气场

昨天仇主席带我参加他的生日宴会,大家都特别投缘。黄梦蝶说:“气场如此相投的人,怎么能不早点认识呢!” 她说的太对了,人都是有气场的,气场不同的人很难相处,气场相同的人相见恨晚。

对未来慷慨

加缪在《鼠疫》里说过一句话,对未来的真正慷慨,是把一切献给现在。

期待

不知道你还记不记得我那天第一次跟你见面,对你抱怨说,似乎每天起床都没有什么期待。 其实自从那天认识你以后,我每天都有了期待。

直到后来你一直对我不理不睬,期待就淡了。所以我时常想起那句话,“有些人,让你对明天充满期待,却从没有出现在你的明天里。”

期待2

后来,我又找到了每天的第二份期待。

每天充分锻炼的又一个好处就是对第二天的早饭充满了期待,起床就有了动力!

青花笔

包装很好的一支青花笔,平时写字似乎也不多,一直舍不得用。直到放的时间长了,都积上了灰尘。某天突然有很重要的东西要写,觉得该用这支青花笔了,写上第一笔画的时候才发现,不知道是因为时间久了还是本身质量就差,写出来的字还不如平时用的笔。

术、法、道

做人、做事都会有“术——法——道”三个层次。怎么区分,怎么对待,怎么理解?先在心里想想这三个问题,再去做。

感谢“看不见的手”

读《经济学原理》也能读出感动来:

> > 亚当·斯密称它为“看不见的手”——引导千百万为自己工作的人促成有利于许多人的结果的神秘力量。在看似混乱的千百万未经协调的私人交易中产生了自发的市场命令。自由的人自由交易,结果是物品和劳务之丰富超出了人们的想象。没有独裁者,没有官员,没有超级计算机提前做出计划。的确,有时一个经济中的计划越多,它就越受短缺、混乱和失败的困扰。 自由的社会秩序,和它所带来的财富与进步一样,都是一种上天的极大恩赐。在这个感恩节以及生活中的每一天,我们都要心存感激。 > >

十次相处理论

狄天说,如果你在聚会或者party上,遇到一个姑娘,第一次见面感觉非常好,其实是有酒精的迷幻作用在里面的。

你需要相处十次,来确定你是否是真的喜欢。

大道理

经常听到很多大道理,有时候不是你不知道这些道理,而是不知道这些场合是否适应这些道理。

是啊,大道理是有场合的,这个世界太复杂,不存在一成不变的道理。

光辉岁月

每次听到beyond《光辉岁月》,浮现到眼前的就是初三的时候,班主任倪飞放学前都喜欢拖堂,给我们补课、总结、批评、励志。但是学校为了防止老师这么做,总喜欢在放学的时候广播音乐,把《光辉岁月》之类的歌放的很响很响,所以倪飞不得不用嗓门跟喇叭比拼谁喊的更响。

现在回想起来才知道,倪飞那时候配合着那种背景音乐,让我们感受到了多么美妙的演讲!

关于跑步的共鸣

关于跑步,那天我真的因为这番话受到了巨大的共鸣和鼓舞:

> > 夕阳西下,红晕满空, 跑着跑着像是进入了诗意的世界, 其实更多时候在觉得自己在一点点变强, 在生活中也更自信了, 那时意识到跑步更多的是有一种宗教似的自省作用, 不是说我跑完我就像超人一样如何如何而是在过程中慢慢认识到自己生活中的界限和不足,更清醒地认识到自我部分, 和日常生活的一种有效隔离。 > >

老妈的吊坠

记忆里,小时候最喜欢捏妈妈脖子上的肉,捏到最狠的那些年,把老妈的结婚时脖子上的金项链都捏断了。

那一天,我们一家三口去万达逛街,说是逛街,其实是帮我买衣服。买完衣服到万达玉石柜台说可以抽奖,老爸一抽就是个一等奖,全场玉石一折,限购两件。

多么拙劣的骗局啊。

但是我转念一想老妈都快二十多年了,脖子上从来没带过东西。

“老妈,快挑一个,多好的机会啊。儿子送你一个吊坠。”

老妈高高兴兴的挑选了一个。

我由衷的感谢这个十一万达的抽奖活动。

老爸的老花镜

今天和小兄弟们喝完酒回来,发现老爸正在拿着本“装修笔记”计算着什么。想来自己从来没有为新房子装修操过心,都是老爸在忙。偶然间竟抬头竟发现老爸也戴上了眼镜。

我问老爸怎么突然戴起了眼镜,他说有点老花看不清了,前段时间就在街上配了副眼镜。

这一刻,我觉得老爸超帅,拍了张照片发到朋友圈。

同学说,你爸看着好年轻。

其实我心里却在想,不经意间,记忆里永远30岁爱赌爱玩的老爸,也在这些年戒赌守店为儿子的操心中开始变老了。

眼泪

看电影《亲爱的》的时候,发现周围有个女士感动的掉下了眼泪。然后感叹没心没肺过日子的自己好像多年没掉过眼泪了啊,真是怀念小时候爱哭的自己呢。

就在回家的这些日子里,发现自己有了点小钱,可以时不时孝敬下爸妈的时候,发现岁月总是这样残酷。

当我们才一长大,爸爸妈妈就在我们一声声老爸老妈中被我们叫老了。

莫名的掉出了好多眼泪。

结尾

我一直以为自己的生活枯燥乏味,有时候甚至有些无聊。直到我多次听到别人说我是个热爱生活的人,这真是莫大的赞美。我一定会继续热爱下去的,加油!

十月的尾巴

本来今天这篇日志准备用“社交减肥”这四个字做题目的,但是转念一想这样实在太高调了。一定会招来各种像我这样常年寻找减肥良方而不得的人满怀希冀的点进来,结果发现这狗屁不通的内容而对我嗤之以鼻。然后发现今天不仅是周五,还是十月的尾巴,然后就愉快的定下来这个标题。但是今天的主题,确确实实就是社交减肥。

社交减肥这个新鲜词汇起初我是从champion那里听来的。那天他笑嘻嘻的告诉我,可以用这种方法减肥,通过社交的力量来监督自己减肥。然后我研究了一下社交减肥的起源,原来是2011年美国的科学家用小鼠做的一组对照试验。跟一大群同类生活在一起的小鼠饭量增加的同时,腹部脂肪还是减少了一半。然后研究人员就提出参加更多社交活动可以达到减肥的效果。

然后我仔细思考了一下,我以前的社交活动也不少啊。隔三差五的就约塔斯、狄国奖、仇大叔、欸喽他们出去左吃一顿烧烤,又吃一顿自助的。想想这个方法真是太蠢了,社交怎么能少了吃饭呢?社交怎么能干劈情操呢?社交又怎么能减肥呢?

再来看看三年后的今天,研究人员又来提出了社交减肥新的内涵。他们说通过社交媒体,大家相互交流、督促和鼓励,从而更好地完成减肥计划。仔细想想研究人员这次看上去好像很有道理,然后看看我的朋友圈。

laicb时不时晚上回来就大喊一声:“DiTian,吃泡面!”然后捧回一碗香喷喷的泡面加鸡蛋。这边狄主席的回复就是:“吃什么泡面啊!都吃的撑死了!”每天晚上回来各种南粉北面,鸡腿肉干,香蕉橘子,还偏偏实现不了增肥的目标。然后一边嚼着肉干一边跟我抱怨生活:“哎,活着都不知道要干什么。”再过一会,俊就回来了。一起加入到生与死的讨论,“我只是觉得每天吃饭的时候比较烦,总觉得都吃腻了,人要是能不吃饭多好!”到了实验室,还有今天肉松饼干、明天巧克力,零食从来不会断的太后,以及每次我们一起吃饭吃到很撑的时候都喜欢忧愁的说一句:“我感觉今天只吃了三分饱~”的星宇。

我勒个去,偏偏这帮人还都是瘦子!实际上我目前的圈子里好像就我一个胖子。是啊,多么黑暗的现实,谁跟你互相鼓励、互相监督、社交减肥啊!

由此可见,社交减肥注定是要失败的。但是社交减肥确实给了我们减肥的启示。那就是拒绝社交减肥。这个词的正确读法应该是,拒绝社交->减肥!

Haproxy端口映射(client头中URL/HOST修改后转发)

CloudFoundry是对域名强依赖的云计算集群,没有域名的话几乎无法访问。但是域名备案等事宜所耗时间较长,在上线较为紧急的情况下,就需要实现直接通过“IP+端口”的形式,在公网访问CF集群上部署的APP。

解决方案

配置两层Haproxy,第一层的Haproxy与公网地址绑定。 对第一层的Haproxy进行配置,把外部通过IP+PORT访问的地址映射到后端第二层Haproxy,并把其访问的http Head修改,把Host字段改成能被Cloudfoundry接受的url字符串。 第二层Haproxy就跟CloudFoundry官方配置相同,作为负载均衡把流量导向下层多个gorouter。

Haproxy的安装:(也可通过源码安装)

1
apt-get install haproxy

修改基本的配置文件如下:

配置文件所在地址:/etc/haproxy/haproxy.cfg(用xx.xx.xx.xx代表一个IP地址)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
global
    chroot      /var/lib/haproxy
    pidfile     /var/run/haproxy.pid
    maxconn     4000
    user        haproxy
    group       haproxy
    stats socket /var/lib/haproxy/stats
    debug
    
defaults
    log global
    option httpclose
    timeout connect 30000ms
    timeout client 300000ms
    timeout server 300000ms

frontend http-in
    mode http
    bind *:81
    reqirep ^Host:\ xx.xx.xx.xx\:81 Host:\ t1.cloud.paas
    option httplog
    option forwardfor
    reqadd X-Forwarded-Proto:\ http
    default_backend http-routers

backend http-routers
    mode http
    reqirep ^Host:\ xx.xx.xx.xx\:81 Host:\ t1.cloud.paas
    balance roundrobin
        server node0 t1.cloud.paas:80 check inter 1000

frontend http-in1
    mode http
    bind *:80
    reqirep ^Host:\ xx.xx.xx.xx\:80 Host:\ t2.cloud.paas
    option httplog
    option forwardfor
    reqadd X-Forwarded-Proto:\ http
    default_backend http-routers1

backend http-routers1
    mode http
    reqirep ^Host:\ xx.xx.xx.xx\:80 Host:\ t2.cloud.paas
    balance roundrobin
        server node0 t1.cloud.paas:80 check inter 1000

配置文件中涉及到的要点

  1. 在global中加入debug可以查看访问的日志信息

  2. frontend表示访问的输入,对应一个backend导向后端服务器。

  3. bind绑定监听的IP和端口

  4. reqirep可以修改http的头,cloudfoundry中gorouter解析域名url的字段是Host,所以我们可以通过reqirep把IP地址换成我们的访问域名地址。

  5. 在balance 后面添加haproxy的地址,可以写多个。

  6. 最后设置option httpclose。每次关闭连接,保证每次访问的字段都被改变。

(这样做效率会降低很多,但是解决了应急的需求)

部分OPTION选项解析

  • option httpclose :HAProxy会针对客户端的第一条请求的返回添加cookie并返回给客户端,客户端发送后续请求时会发送此cookie到HAProxy,HAProxy会针对此cookie分发到上次处理此请求的服务器上,如果服务器不能忽略此cookie值会影响处理结果。如果避免这种情况配置此选项,防止产生多余的cookie信息。

  • option forwardfor :如果服务器上的应用程序想记录发起请求的客户端的IP地址,需要在HAProxy上配置此选项,这样HAProxy会把客户端的IP信息发送给服务器,在HTTP请求中添加”X-Forwarded-For”字段。

  • option originalto :如果服务器上的应用程序想记录发起请求的原目的IP地址,需要在HAProxy上配置此选项,这样HAProxy会添加”X-Original-To”字段。

  • option dontlognull :保证HAProxy不记录上级负载均衡发送过来的用于检测状态没有数据的心跳包。

Haproxy作为服务启动

需要修改一个配置文件/etc/default/haproxy 把ENABLED字段的0改为1. 然后通过service haproxy start就可以启动。 最后调试完毕后记得把global中的debug字段删掉。

参考内容

  1. Cloud Foundry中gorouter源码分析

  2. Haproxy 配置项\配置实例

  3. stackoverflow上的类似问题:haproxy-reqirep-on-host-header-not-forwarding

  4. haproxy官方文档

《程序员修炼之道》的笔记

老样子:印象笔记链接

责任:Provide Options, Don’t Make Lame Excuses.

什么是负责?就是在出了问题时,要提供各种选择,而不是找借口。不要说事情做不到;要说明能够做什么来挽回局面。

软件的熵:Don’t Live with Broken Windows. 不要留着“破窗户”(低劣的设计、错误的决策、糟糕的代码)不修。发现一个修一个,如果没有时间整理,就把出问题的代码放在注释里或者显示未实现。

足够好的软件:Make Quality a Requirements Issue 让用户参与权衡质量的需求

知识资产:Invest Regularly in Your Knowledge Portfolio 1. 经营你的知识资产: * 定期投资:尽管每次投资量小,但是要保持习惯 * 多元化:你知道的不同的事情越多,你就越有价值。你掌握的技术越多,你就越能更好地进行调整,赶上变化。 * 管理风险:不要把所有的技术鸡蛋放在一个篮子里 * 低买高卖:在新兴技术流行之前学习它,尽管很困难,但是收益巨大。 * 重新评估和平衡:这是一个非常动荡的行业,也许上个月才开始研究的热门技术现在已经像石头一样冰冷。 2. 目标: * 每年至少学习一种新语言 * 每季度阅读一本技术书籍 * 也要阅读非技术书籍 * 上课、参加本地用户组织:meetup * 试验不同的环境:windows、linux * 跟上潮流:订阅期刊杂志 * 上网:博客、新闻订阅等等 3. 批判的思考

交流

> > 我相信,被打量比被忽略要好。 ——Made West,Belle of the Nineties,1934 > >

知道你想要说什么;了解你的听众;选择时机;选择风格让其适应听众;让文档美观;让听众参与;做倾听者;回复别人,注重邮件礼仪。

重复的危害:DRY - Don’t Repeat Yourself

糟糕的代码才需要注释,注释也是一种重复

正交系统:又叫模块化、基于组件、分层、松耦合。 对于正交设计,有一种简单的测试方法。一旦设计好组件,问问自己:如果我显著地改变某个特定功能背后的需求,有多少模块会受影响?在正交系统中,答案应该是“一个”。 1. 让你的代码保持解耦。 2. 避免使用全局数据 3. 避免编写相似的函数

可撤销性:There Are No Final Decisions. 需求是随时会变的,保持代码的灵活性,还需要维持架构、部署及供应商集成等领域的灵活性。

曳光弹:Use Tracer Bullets to Find the Target 在黑暗中用枪射击时,曳光弹与常规弹药交错着装在弹药带上。发射时,曳光弹会留下一条烟火般的踪迹。如果曳光弹击中目标,那么常规子弹也会击中目标。 曳光代码类似一个简单的原型,其好处是: 1. 用户能够及早看到能工作的东西 2. 开发者构建了一个他们能在其中工作的结构 3. 你有了一个集成平台 4. 你有了可用于演示的东西 5. 你将能够感觉到工作进展

估算 1. 理解提问内容 2. 建立系统模型 3. 把模型分解为组件 4. 给每个参数指定值 5. 计算答案 6. 追踪你的估算能力 7. 估算项目进度

调试:Fix the Problem,Not the Blame bug是你的过错还是别人的过错,并不是真的很有关系,它仍然是你的问题。

配平资源:Finish What You Start 配平资源的意思就是当你分配一个资源,用完后,要记得解除。

动态配置:Configure,Don’t Integrate 把抽象编写到程序,把细节放到元数据中,让元数据变得可配置。什么是元数据?即关于数据的数据,如数据库建表语句。 时间耦合:Always Design for Concurrency 平时我们很容易忽视软件架构中的时间。减少时间耦合,即增加并发。 1. Analyze Workflow to Improve Concurrency.分析用户的工作流,把可以并发的内容并发处理。 2. 使用饥饿消费者模型的架构。用一些独立的消费者任务和一个集中式工作队列取代中央调度器。各个消费者任务从工作队列中抓取一项分别处理。完成后接着按自己的步伐前进。每个组件都在时间上解除了与其他组件的耦合。 3. 为并发进行设计,时刻考虑到别的进程也会调用你的内容。必须对任何全局变量或静态变量加以保护。在调用时,测试调用对象的有效性等等。 4. 对并发和时序依赖进行思考还能够引导你设计更整洁的接口。

Model-View-Controller 基于消息订阅/发布的架构模式: sub/pub 从发布和订阅这种架构我们可以得到很多启示,比如MVC架构,视图与控制的分离。

怎样深思熟虑地编程: Don’t Program by Coincidence * 总是意识到你在做什么 * 不要盲目的编程 * 按照计划形式,不管计划是在你脑海中还是写下来。 * 依靠可靠的事物 * 为你的假定建立文档 * 不仅要测试你的代码,还要测试你的假定 * 为你的工作划分优先级 * 不要做历史的奴隶。不要让已有的代码支配将来的代码。

估算你的算法效率 注重算法效率有助于避免盲目编程,但是考虑效率也不要忘了注重实效,最快的算法对你的工作并非总是最好的。小数据的插入排序,其编码和调试时间明显优于快速排序,但效率是一样的。

重构 你应该在何时重构? 1. 重复的代码 2. 非正交的设计 3. 过时的知识/需求 4. 需要改善性能

怎样进行重构? 1. 不要试图在重构时增加新的功能 2. 在开始重构前确保有足够的测试 3. 采取短小、深思熟虑的步骤:把某个字段从一个类移到另一个,把两个类似的方法融合进超类中。

北京container技术大会

可以看我的印象笔记共享,格式更加漂亮一些。

此次去北京参加的container大会,主办方为csdn,实际会议主持为docker中文社区创始人马全一。会议时间为一天,从早上九点开始一直到晚上六点结束,共包含16个主题。虽说是container大会,但实际上基本围绕docker展开。期间也讲到了社区较为火热的IaaS平台openstack,以及PaaS平台Cloudfoundry,总的来说收获颇丰。

会议流程: 会议流程

以下我将按每个有收获的主题分别讲述我的思考和总结。

Jrome(Hello Container Ops)

正如会议流程所示,第一个讲的是docker的开发工程师Jrome。我觉得他讲述了以下两点比较有意思: 1. docker container的应用场景: 1.1 Web applications 1.2 API backends 1.3 Databases (SQL, NoSQL) 1.4 Big data 1.5 Message queues 总的来说就是涵盖了几乎所有linux server下的工作负载,并且是跨linux不同版本的,据说后面还会加入windows的支持。 2. docker的优势/为什么用docker 2.1 非常轻,以容器做隔离性能损失极小。 2.2 平台无关性使开发、上线流程一体化,减轻了大量运维工作。 2.3 使用dockerfile对镜像高度可定制 2.4 部署、迁移,快速、稳定、简便 2.5 镜像的层级化使使管理非常方便,极易备份恢复等 2.6 共享宿主机使文件和信息共享变得非常方便(volume)

喻勇&孙宏亮(container技术在cloudfoundry中的演化)

关于这一项,宏亮学长的内容讲的很精彩,可以在实验室找机会给大家也分享一下这一块内容,在此就略过不表。

其中Frank(喻勇)除了介绍diego以外,还提到的几点让我感到非常有收获: 1. cloudfoundry现有的不足之处: 1.1 组件内部设计紧耦合,当时设计的时候就没有考虑到要再分割。 1.2 cloud_controller的负载过重,什么事情都要经过它 1.3 复杂的交互形成环状的依赖,使新功能不易添加,老的功能也不易维护。 1.4 Domain Specic,所有应用都是appname.[domain],固定的模式使应用想要使用/扩展一个新域名变得非常苦难。 1.5 platform Specic,几乎只能稳定运行在linux ubuntu平台上 1.6 ruby编写的dea使应用处理效率低下 2. 容器技术影响未来PaaS的走向 2.1 从软件开发的角度看,开发测试和软件发布的流程都会发生较大的变化。产生诸如: * 产品化的container生命周期管理方案 * 多container复杂应用协同工作 * image host交互(类似github) * image的静态安全性

2.2 从云计算产业链来看: * SaaS层面,由于以container形式交付应用变得非常简便,就会出现更多针对云平台的应用; * PaaS层面,container使部署和维护变得简单,DevOps更加实际,将成为巨大的技术推动力,PaaS会更易用; * 而下一代的IaaS也将变得更加强大,可以从各种粒度上面根据需求分离硬件。

在我看来,docker作为容器一旦加入到IaaS层,那么应用可以直接在docker中运行,只要IaaS管理的好,PaaS的概念终将随之淡化。实际上它们之间的界限也就越来越不分明了。

刘永峰(Docker时代,公有云面临的挑战和机遇)

刘永峰是腾讯的产品经理,他指出了目前IaaS存在的问题: 1. 使用门槛高 2. 资源利用率不高 3. 迁移困难 4. 无统一的标准

而他所指的挑战是:Docker弥合了不同的IAAS之间的差异,降低IAAS 服务商用户粘性,使得跨云服务商迁移更加自由。 他所指的机遇是:Docker催生了云计算服务标准化: 1. 服务构建标准化(Dockerfile) 2. 服务交付形态标准化(容器) 3. 服务运行环境标准化(Docker引擎)

他说,云计算的本质不是虚拟化,而是计算变成服务!

他还认为,构建云端集成开发环境将是未来趋势。

李闻(Matrix:基于container的大规模集群操作系统)

介绍了一下Matrix的规模,从哲学的高度讲了一下产品开发要遵守的一些规范。

于顺治(Container在搜狐PaaS平台中的应用实践)

讲述了一下搜狐从用“沙盒”(即针对编程语言做特殊安全隔离的一类容器)到使用container的路程。

描述了container相较于沙盒的一些优势,上面已经介绍过一些。

马全一(构建 Docker 的开发环境)

作为主持人,马全一的报告讲的更多的是部署docker开发环境的一些技术上的流程,这些需要具体的实践才能有所收获。

蔡书(关于性能–Docker)

http://caishu.github.io/csdn2014/#/ 蔡书是红帽的软件架构师,它在会上讲述了提升docker性能的一些方法。 除了docker性能调优的一些参数以外,它还指出可以通过”tuned/tuned-adm”这样的系统工具进行性能调优。 另外,他还指出,docker的优势在于其灵活性,适用于 1. 软件分发; 2. 环境部署与迁移。

而想要获得较高性能的方法就是对container上的应用: 1. 大量同构应用的密集部署; 2. 重计算,轻端口的应用。

它还给出了一张非常精致的图片,展示了所有他说到的概念和工具,确实值得收藏: 概念与工具

艾奇伟(Docker的安全性解析)

艾奇伟又名大鹰,他分析了docker关于安全性方面的设计,提出了docker的弱安全性(本来就没有为安全考虑)

指出安全性和性能有一定的矛盾,而较为安全的做法可能是在虚拟机中跑docker或其他container。

毛文波(网络虚拟化与SDN实现Docker连通)

关于SDN这个主题,宏亮学长的报告中提及较多。

我对网络并不了解,后面需要加强学习。

李明宇(和而不同——OpenStack&Docker)

介绍了openstack中docker的使用方式: 1. 把docker作为虚拟机同一层次的概念,使openstack不仅能管理虚拟机,也能管理docker。原理就是通过调用docker API来实现。 2. 使用Heat这个编排引擎来启动和管理docker镜像。

我之前也研究过一段时间Heat,所以会后向李明宇博士提出了我的困惑,即Heat如何与虚拟机交互获得状态反馈的问题。

李博士也表示没有特别好的办法,只能通过nova list查看虚拟机创建进度,通过nova的其他IP这样分门别类的查看其它内容的状态,但是想要进入虚拟机里面查看目前还没有好的方法。 这也是我目前研究Heat自动化部署的一个瓶颈。

相同的问题也问过网易的学长,他们则说没有尝试过使用Heat部署cloudfoundry这样较为重型的带有明确拓扑关系的集群。

总结

关于技术,以上便是我在container大会的收获。实际上,技术之外,企业人士对产品的敬业精神,对产品的深度思考等,都让我收获良多。我觉得平时我们除了在技术层面的探索以外,也要跳出技术的思维局限,站在更广阔角度思考问题。

白兔和月亮

我常常喜欢患得患失,忧心忡忡。也常常喜欢跟别人讲起周国平这则寓言,《白兔与月亮》

> > 在众多的兔姐妹中,有一只白兔独具审美的慧心。她爱大自然的美,尤爱皎洁的月色。每天夜晚,她都来到林中草地,或是无忧无虑地嬉戏,或是心旷神怡地赏月。她不愧是赏月的行家,在她的眼里,月的阴晴圆缺无不各具风韵。 于是,诸神之王召见这只白兔,向她宣布了一个慷慨的决定: “万物均有所归属。从今以后,月亮归属于你,因为你的赏月之才举世无双。 ” 白兔仍然夜夜到林中草地赏月。可是,说也奇怪,从前的闲适心情一扫而光了,脑中只绷着一个念头:“这是我的月亮!”她牢牢盯着月亮,就像财主盯着自己的金窖。乌云蔽月,她便紧张不安,唯恐宝藏丢失;满月缺损,她便心痛如割,仿佛遭了抢劫。在她的眼里,月的阴晴圆缺不再各具风韵,反倒险象迭生,勾起了无穷的得失之患。 > >

突然有一天,我把患得患失的心情与寓言结合到了一起,想起来这个可以治病。

那些本来就不属于我的美好的事物,那些与我无关宝贵财富,得之我幸,失去了,我依然可以欣赏其中的美。

所以啊。

可以宽容一些,原谅那些喜欢标榜吹嘘自己公平公正其实自私自我的伙计。如果你从不在意他们说出的公平公正,那就更不会计较属于他的自私自利。

可以大度一些,孰优孰劣自在人的心中,荣耀或者讥讽,奖金或是奖项,没必要看的那么重。

可以放开一些,就好比老板给他涨了薪水而忽略了你,美女青睐于他人而把背影留给了你;就好比今天杭州细雨微风而厦门依旧烈日炎炎,昆明四季如春而喀土穆四季如火。

就像故事里那只白兔:

> > 和人类不同的是,我们的主人公毕竟慧心未泯,她终于去拜见诸神之王,请求他撤销那个慷慨的决定。 > >

而我看来,尚未得到的,就更无须患病了,自然药到病除。

九月大事记

上次那篇《星斗满天》写完,老秦留言说,“生活充满希望与活力大概就是星斗满天了呢。” 这真是说出了我的心声啊。但是转念一想,自己最近老是无病呻吟,觉得生活没有热情没有期待,平凡平淡到写文章也只能像流水账一样平铺直叙,实在是对不起那个题目,就赶紧换下了。

只是人难免要表达啊,遇到不开心的事情说出来那叫发泄,遇到开心的事情说出来那叫分享。那么这个中间态怎么定义呢?这让我想起来跟学妹的聊天。

“最近挺好的啊,没什么不开心的事。” “那为什么不能是最近很不好呢,因为没什么开心事。”

当时我竟是无言以对,现在想想,我倒有点认同她的观点了。确实是没什么开心事就不开心。不过还好,我感觉最近开心事挺多。

教师节那天,师兄弟们齐聚一堂,跟李老师开交流会。快结束的时候,李老师问起星宇暑假时机器人足球世界杯比赛的事情。星宇说这次没比好,人员也是走走留留,感觉人心散了。李老师说,与其说人心散了,不如说大家本就该各自分开去充电,多年以后大家实力强了,如果心中都还有这个情节,再聚首,那才有拿到世界冠军的可能,不要这么丧气。我当时就想,这样的劝慰,真的比普通的拍拍肩膀强一百倍。

前几天阿里上市了,互联网圈子真是热闹翻了天。想想我们应该很开心,很受鼓舞,搞互联网也能有成为内地首富的那一天。但是再仔细想想,似乎自己在阿里认识的朋友都是没拿到股票的码农,就怎么也开心不起来。但是转过头去,看到身边还有一个每天认真写代码,就想毕业了在淘宝开店的室友,我就在内心对这个伟大的企业肃然起敬。

每天对着一大堆密密麻麻的日志debug(查错),对着毫无文档的代码强行理解其功能,我就明白为什么我晚上回来不想学习了。那天室友问我,“为什么我们要搞云计算?”我刚想回答说不知道的时候,他手里捧着本厚厚的《邓小平时代》,意味深长地说,“因为人算不如天算”。我就明白为什么我晚上回来心情还不错了。

最近李娜还退役了,虽然我不看网球,也不太关注体育新闻,但是微博、微信上铺天盖地的纪念文章,也让我知道了不少故事。想起来看大鹏的《在难过的日子笑出声来》明白的道理,每个精彩的人生都必然有精彩的故事,因为阅历就是最好的素材。我也得赶紧把李娜的《独自上场》翻一翻。

每次跟球主席聊天其实就挺开心的,只是他最近爱上了做菜,每天在菜市场买菜,然后在宿舍鼓捣新花样,一直不跟我们厮混。最近又迷上了健康饮食,创下了23天不吃米饭,只吃紫薯的优良记录。那天我刚写完《星斗满天三》跟球主席说,这次太可惜了,没把你的故事写进去,当时只想着你每天才跑几公里,实在拿不出手。他看完后说,这里面的跑步案例都是危险动作,请勿模仿。我答应他,这次一定把他写进去。

昨天还结识到一大帮朋友,让我兴奋到九月还没过完就忍不住来写这个《九月大事记》。

所以说啊,没有开心事不开心,太对了,那就该找点开心事去做做。

星斗满天(三)

最近我一直盼星星盼月亮,盼着杭州出现一个大晴天。这样,哪怕我翘一天班,不去公司实习,我也要把我们宿舍所有发霉的东西统统拿出去晒晒,好好杀一杀毒。可惜天不随人愿啊,在我盖着散发着霉味的被子到了第四天的今天时,天气依旧是要么早上大太阳,下午下雨;要么上午下大雨,下午大太阳。甚至有一天天气预报说要下雨,结果天晴了一天,让我懊悔不已没有晒被子的生活,结果傍晚开始下雨。让人哭笑不得。

然后我就明白了一个道理:不是我要晒被子,但天公不作美故意要天天下雨,而是天天下雨,才导致我要晒被子,才导致这个世界有了发霉这种事情。所以啊,我自然是盼不到好天气的了。再然后我就被自己想明白的这些给说服了,把开着除湿的空调关了,打开窗户。感受窗外吹进来的微风和一丝凉意,想想这样凉爽的夏天,还是能让人感到难得的惬意!

说起来,我“星斗满天”这个题目,似乎都是不约而同以天气开的头,想想也该是这样。最近回家休息了一段日子,恰巧也是这段日子生了一场病,让我明白了健康的重要性。所以我又重拾起了跑步这项有趣的活动。

说跑步有趣,我从来不是指的跑步本身有趣。想想不断的挥动手臂,抬起脚步,吃力而疲惫的前进,就有趣不起来。

但是,跑步过程中的胡思乱想很有趣。因为身体无聊的做着重复的运动,大脑不可能专注在跑步这件事情本身上,所以就会有时间停下来思考。会想起这一天做过些什么,明天该做些什么,哪些事情是对的,哪些事情是有趣的。这时候的思路会非常清晰,大口的呼吸也让大脑得到了充足的氧气。显然,这是沉浸在小说、游戏、电视电影中时,无法感受到的一种乐趣。

有时候,跑步过程中也会碰到一些有意思的人。比如跑步过程中经常碰到的同一个哥们,那些巧合的日子仿佛就汇聚到了同一天,而空气中散布着的不知是雾还是霾让人总看不真切。但我知道,那哥们旁边总有一个女孩跟他侃侃而谈。一开始两人并肩在最内圈慢跑,后来变成了在最外圈的漫步,再后来就不见了。在那些漫长而空旷,可以让思维任意驰骋的时光里,我可以联想到结果的无数种可能性,但是我还是愿意相信,那哥们应该是成了。这该是另外一种乐趣。

再比如我今天碰到的这个哥们,光着膀子,手里拿着一个类似四六级收音机大小的盒子,边跑边放着那些令人振奋的音乐。要知道,跑步的时候有些激昂的音乐在耳边响起是十分令人兴奋的。随着旋律的不断上扬,仿佛人的疲倦也会被一扫而空,脚下的步伐也会变得更加有力量。所以在跑步的过程中,碰到有两个拿着设备公放音乐的朋友并没有什么稀奇。但是有意思的是,这个哥们随着音乐的节奏,间歇式的跟着唱了起来,嗓音悠远而嘹亮。因为唱唱停停,所以每当跑到一些不知情的跑步者身后突然大声唱起来时,总能吸引到一大片目光。我觉得极为有趣,便跟在这个哥们旁边一起跑起来。直到一圈、两圈、三圈、一直到第六圈的时候,因为跑得太快,我已经跟不上了。但是这个有着洪亮嗓音的哥们依然边唱着那激昂的音乐边有力的向前跑动,丝毫不顾忌周围人的目光。

我走在跑道上,望着那个随着歌声渐渐远去的背影,听到后面的议论,“他在给自己加油打气”。心中不仅觉得这个哥们有趣,更觉得他强大无比。只有内心强大无比的人,才能给人如此畅快淋漓、激昂向上的感觉。也是这哥们让我有了写下这篇日志的强烈渴望。

仔细一想,我的朋友圈虽小,周围这么强大的人还是不在少数,比如每天下班通过跑十多公里回宿舍的敏献……

我不知道人们常说的,跑步会让人变得自信、乐观,是否源自于此。但是我想,这些伙伴,也如漫天星斗,让我时常嘻嘻哈哈,笑对这发霉的世界O(∩_∩)O。

2014.8去南京

这两天去南京玩了一圈,一切皆是原来的模样~

南京火车站因为青奥会的原因显得很气派,到处都是“南京欢迎您”的字样。

地铁到了孝陵卫依旧还是那样凉飕飕的,从一号门进去,一路一直走到活动室门口,就仿佛以往每次回学校的路途。每次回到南理工,不管有意还是无意,第一个经过要去转转的地方都是活动室。只是如今的活动室已经搬空了,倒是墙上还留着娄老师带来的那幅“自强不息”的书法。站在活动室门口,我想,以后每次我都会先来这里看看,直到它被拆掉。这里的回忆实在是太多。

一运被拆快三年了,新图书馆的轮廓也已建成,空地上的野草有的都长成了一颗颗小树,看来被这个和风沐雨的清凉夏日孕育的非常滋润。来到肃驰他们宿舍,三楼、独卫、阳台、以及安静的最里屋,再想想自己现在那潮湿到所有东西都开始发霉的宿舍,哎,都是泪。

很快就见到了翔子的妹子,不得不承认,翔子真是找到一个不折不扣、温婉贤良的好妹子啊!

晚上大家一起去海底捞吃了一顿,期间讲到了踩蚂蚁缠绵悱恻的故事,后来又去唱了会歌,很平淡很开心。现在想来,这么多年来去过许许多多次KTV,可是真的留下记忆的却很少。还记得有一年期末,我们为了庆祝考完试一行人出来通宵唱歌,那天的雪下得很大,路上的积雪也很厚,半夜里大家都很饿,我跟肃驰就在深夜的雪地里走了很久,才找到肯德基,为大家买回了汉堡。那样的日子,真是越来越少了。

回家的路上,在南京地铁二号线转一号线的时候,刚出地铁门就有一个楼梯,走下去就可以直接坐一号线的车。而反过来一号线要想换二号线,就要绕很远。以前,每次回家我都要为这样的设计,先开心一下,想想真方便,然后又转念一想,过几天回来还要绕那么远又觉得忧愁。而这一次,我似乎只需要享受它的便利就好了。

高铁还没有到无锡站的时候,老爸就开车到我们约好的老地方等着接我了。这次南京的旅程也算是顺利结束了,丝毫没有受到前几日突然感冒发烧的影响。一路上打了很多喷嚏,感冒的症状算是正式从发烧转到流鼻涕这一项了。

回到家,洗了个热水澡,躺到自己的床上,想想就算路上的风景再美,累了的时候,还是家里,最好。

读《活着》有感

张艺谋根据余华的小说拍的电影《活着》被人广为赞誉,但实际,小说本身的内容比之电影,要更沉重、残酷、精彩的多。小说描述的是一个近在眼前的年代,发生的真实到近乎血腥的故事。

我很喜欢韩寒的这个序言:

这部作品的题目叫《活着》,作为一个词语,”活着”在我们中国的语言里充满了力量,它的力量不是来自于喊叫,也不是不自于进攻,而是忍受,去忍受生命赋予我们的责任,去忍受现实给予我们的幸福和苦难、无聊和平庸。作为一部作品,《活着》讲述了一个人和他的命运的友情,这是最为感人的的友情,因为他们互相感激,同时也互相仇恨;他们谁也无法抛弃对方,同时谁也没有理由抱怨对方。他们活着时一起走在尘土飞扬的道路上,死去时又一起化作雨水和泥土。与此同时,《活着》还讲述了人如何去承受巨大的苦难,就像中国一句成语:千均一发。让一根头发去承受三万斤的重压,它没有断。我相信,《活着》还讲述了眼泪的广阔和丰富;讲述了绝望的不存在;讲述了人是为了活着本身而活着,而不是为了活着之外的任何事物而活着。当然,《活着》也讲述了我们中国人这几十年是如何熬过来的。我知道,《活着》所讲述的远不止这些。文学就是这样,它讲述了作家意识到的事物,同时也讲述了作家所没有意识到的事物,读者就是这时候站出来发言的。

其实这本书以前我也读过部分,但是那时候是不懂的,就像现在来读高中时通篇华丽辞藻微言大义的作文,老师给的分数再高,也只是流于表面。

而这个月,又有两个极为熟悉的亲戚朋友的父亲相继过世了,这让我无比真实的接近了这些生死之事。明白了这期间的沉重、深刻与严肃,甚至不知道安慰的词句该从何开始。我明白了那是一种旁人无法体会到的苦难、不舍和勇气。

所以无论是余华的原版小说《活着》,还是张艺谋的电影《活着》,里面都没有旁人对于苦难的劝慰,也许更多的是表达了什么叫自顾不暇。因为对手是命运啊,命运可以安排给你荣华富贵,也可以设置各种可能的苦难与你纠缠不休。所幸,我在其中的间隙看到了丈夫与妻子久别重逢的拥抱;小男孩在运动会上得了第一后父亲的骄傲;聋哑女儿与偏头女婿结婚生子的喜悦……

福贵(故事主人公)说:

活着,好好活着.我们只能等待被时间和命运遗弃,而没有权利抛弃生命.在命运面前,也许不能不感叹人类的无力吧.改变不了活着的事实,就改变活着的态度吧,只要活着,总有希望,态度也许至少是可以改变活着的状态,或者好,或者差.只是在生命的尽头至少可以告诉自己,我们活过,也曾经努力过.

程浩说:

命运嘛,休伦公道。

而这么沉重的情节,在余华笔下却写的并不压抑也不矫情,甚至可以用轻佻来形容。

“家珍死得很好。”福贵说。那个时候下午即将过去了,在田里干活的人开始三三两两走上田埂,太阳挂在西边的天空上,不再那么耀眼,变成了通红一轮,涂在一片红光闪闪的云层上。 福贵微笑地看着我,西落的阳光照在他脸上,显得格外精神。他说: “家珍死得很好,死得平平安安,干干净净,死后一点是非都没留下,不像村里有些女人,死了还有人说闲话。” 坐在我对面的这位老人,用这样的语气谈论着十多年前死去的妻子,使我内心涌上一股难言的温情,仿佛是一片青草在风中摇曳,我看到宁静在遥远处波动。 四周的人离开后的田野,呈现了舒展的姿态,看上去是那么的广阔,天边无际,在夕阳之中如同水一样泛出片片光芒。

就像喝苦药的时候加了一点糖,让这药的味道既不会让你苦的觉得它是毒药,也不会让你觉得这药甜蜜平淡的像是假药。是的,它就是一味药。

老人和牛渐渐远去,我听到老人粗哑的令人感动的嗓音在远处传来,他的歌声在空旷的傍晚像风一样飘扬,老人唱道: 少年去游荡,中年想掘藏,老年做和尚

就是这样,用轻佻而欢乐的口吻,在命运面前自顾哼唱。