云烟计算-你是云儿我是烟
RSS 图标 Email 图标 首页图标
  • 一种包依赖引发的通宵发布与回滚

    发表于 2010年04月16日 yejun 没有评论

    引用来自架构组姚明同学的邮件:

    Intl-biz/wsproduct里面的代码修改如下:

    public void setIndByAll(Integer indByAll) public void setIndByAll(Integer indByAll, Object… objects)

    对应于intl-biz/wholesalesearch里面的代码:

    WsProductDO.setIndByAll

    由于intl-biz/wholesalesearch是依赖于intl-biz/wsproduct,但是无论Intl-biz/wsproduct里面的代码是否修改,都是能编译通过的。

    那么问题出在哪里呢?问题出在方法签名不一样。

    这里,我们的编译脚本有一个致命问题:

    我们的编译脚本是先编译了intl-biz/wholesearch,这时候对应的方法签名是:WsProductDO.setIndByAll(Ljava/lang/Integer;)

    接着才编译了intl-biz/wsproduct,这时候这个方法签名发生了变化,变成了WsProductDO.setIndByAll(Ljava/lang/Integer;[Ljava/lang/Object;)

    所以到线上的时候,intl-biz/wholesearch需要的是前者,但是intl-biz/wsproduct提供的却是后者,所以出现了大家看到的异常。

    我的看法:

    1. 减少不必要的包依赖;可以走远程服务的走远程服务;
    2. 底层有变动接口签名,一定要通知相关方,当我们改的人不知道相关方有哪些团队时,一定要在发布群里说一下,并找架构组同学REVIEW;架构组同学的信息会比较全面一些;
    3. 发布时的编译顺序很关键,这个编译顺序列表要随时维护;
  • 阿里旺旺值得改进的几个细节

    发表于 2010年02月17日 yejun 2 条评论

    阿里旺旺虽然没提与QQ的大面积竟争,但是这种竟争是实事存在的。不管阿里旺旺的发展重点是电子商务还是商人交友,她本质上是一个IM工具,必须在IM功能上作一些改进。这些改进不会是银弹,但是对于与QQ这样成熟的IM对手,是必须的。
    第一:旺旺的默认创建群组的能力要增强,QQ如果提供非会员默认两个群,旺旺提供8个会更合适。虽然现在旺旺80%的用户创建的群不一定是8个,但找到一个大一些的数字,没什么坏处;要说坏处,也就是系统开销大了一些;这种开销的增大是有益的技术准备;
    第二: 每天的好友数限制增大。设计每天的新增好友数目的就是为了防垃圾用户吧?比如那些专门来发广告的。但我认为这给更多的正常用户带来的不便。比如新员工第一天入职,他的旺旺一定会有很多同事加好友。一个用户换一个旺旺号,一定也会有很多人加好友。或者一个用户通过运营活动或广告,一天内获得了大量好友用户。对于这类设计,我的原则是,宁可让千百个坏人乱加好友,也不要给一个好用户留下不好的使用限制。这种每天新增好友数的限制是非常不人性化的,要解决这个垃圾用户加好友的问题,应该从别的地方着手,而不是加这种限制。不知道QQ这方面的限制是多少?
    第三:给阿里旺旺新注册用户增加一个默认的好友:自已!记得2000年上OICQ的时候,有一个OICQ的版本有个漏洞,可以加自已为好友。一度,别人看到我自已加自已后很好奇。因为后面的版本不再提供这个功能了。几年之后,听说QQ默认给所有用户增加了一个好友,即用户自身。其实这是一个很正常的需求,我们作SNS的时候有两个主要的界面,一个是我的主页,一个是好友眼中的我的主页。QQ好友列表中增加用户自身,好比我可以看到别人眼中的我。所有操作菜单项和我操作我的好友相同。不知道这样处理技术 上会有多大的简化,但从用户使用上来讲,我感觉还不错。

    以上几点建议在ALIWAY上发过,没有太多的共鸣,现POST到自留地上,作为备份。

  • 一个接口服务器配置引起性能问题经验[3]

    发表于 2009年08月21日 yejun 没有评论

    一次发布,我们的前端接口API服务器有18台,这18台全部连到后面的一个内网VIP上,这个VIP配置的域名指向6台机器,这6台机器各有三个进程,相当于18台服务器,由于3个进程一台机器能充分发挥物理机的性能,所以没有用虚拟机。

    发布第二天早上发现,18台机器的系统响应非常慢,但LOAD上升,连接数很大,并且大显的TIME_WAIT。后排查发现,NETSTAT的结果中,大量连接指向一台机器。这台机器竟然是预发布的机器,也就是说,原因18台服务器的请求由一台机器在承担,系统负责太高。

    经验:发布时要检查系统之间的内部调用IP,是否配置在生产环境的VIP上。

  • 一次阿里旺旺SNS应用接口问题解决的经验[2]

    发表于 2009年08月21日 yejun 1 条评论

    想到上回发布阿里旺旺上的一个SNS应用接口,这个应用就是传说中的阳光农场。应用需要调用阿里旺旺的用户资料,比如头像,昵称等属性。调用方式是HTTP接口,登录的时候应用会对当前用户所有好友调接口,获取头像URL。

    在用户量达到70万左右时,系统开始出现问题(每个人会有50个游戏好友,相当于早上登录每分钟5000人的话,会有250000HTTP请求),甚至影响了其它子网站的登录。基于一周的排查,验证,确认问题出在头像接口对头像HTTP服务器压力过大引起,并且由于头像URL大多不同,CACHE的命中不高。

    将头像改成一个固定的相同的URL后,问题解决,因为这个URL头像有缓存,并且命中率100%。

    之后用户量再上升,发现又出现问题。系统登录出现问题。后经排查发现,头像接口服务器LOAD很低,没超过1,连接数很大,全部TIME_WAIT。原来头像接口是通过HTTP调用内网另一台服务器B获取到URL,虽然URL已经成为固定值了,但是内网调用还是存在,并且这个内网调用没有走内部VIP的域名,走了公网的普通域名。而B服务器的VIP对公网HTTP请求有访问速率的控制,内网VIP走相对控制较少。系统改成内网VIP后这个问题缓冲。当然最后是去掉了这个内网的调用。

    经验就是:内网高频高并发调用HTTP最好走内网域名和IP,并要注意内网设备的一些限制。

  • 挖一个新的坑还是把已经有的坑挖深

    发表于 2009年07月20日 yejun 2 条评论

    挖坑灌水是以前混BBS人的日常工作。一些有创意的人可以挖出一个很好的坑。随后,很多有创意的人会在这个坑里灌水,有了后面的水,让这个坑价值倍增。比如当时清华BBS上的名贴:

    原贴:

    一日黄昏漫步,见一男生装酷,
    呕吐,呕吐,只想低头撞树

    以下为跟贴:

    一日自习深处,见一女生撞树,
    呕吐,呕吐,恐龙也敢摆酷
    *************************

    今日黄昏奇遇,见有两人呕吐。
    装酷,装酷,一不留神撞树。
    ****************************

    一日闲庭信步,忽见三人呕吐
    何故,何故?只为都在水木

    *****************

    无事闲逛水木,惊闻四人撞树,
    愤怒,愤怒,罚你四人植树。

    *********************

    那日4人植树,还有一人监督
    残酷,残酷,惨状不堪入目!

    *********************

    都怪有人撞树,害得满版酸句。
    删去!删去!免得大家发怒。

    ***************************

    你笑我郁闷气堵,害我搜肠挂肚
    佩服,佩服,我咬牙切齿想哭

    **************************
    忽闻一人痛哭,不知这是何故
    嘀咕,嘀咕,只缘恐龙撞树!

    ***************************

    昨晚饭后散步,忽有两人偶吐
    跑路,跑路,又遇恐龙撞树

    ****************************

    今天校园路过,忽然发现没树,
    罪过,罪过,大家爱惜树木。
    *****************************

    近来真是添堵,水木烂人无数
    何苦, 何苦, 都来撞俺老树
    **************************

    要死死到别处,此处不备棺木,
    伐树?伐树!也会救人无数?
    **************************

    夜来寻书西陆,看到好书几部,
    佩服 佩服 西陆能人无数!
    ************************

    我本一棵老树,撞我之人无数,
    何故?何故?都因百站无书!
    **********************

    绿林清风小雾,挥扇闲庭信步。
    呕吐,呕吐,树下脑浆无数!
    **********************

    纸虽涨假无数,还有西方沃土,
    树木树木,都来扎根西陆
    **********************

    又见有人撞树,盖因百战龟速,
    悲呼,悲呼,牵连无辜树木。
    **********************

    今夜无书何故?纸张涨价无数。
    求书?求书?先学爱护树木。

    **********************

    半夜点灯看书,百战乌龟走路,
    慢速、慢速,气得一头撞树!
    **********************

    结束一天忙碌,回家蹬上西陆,
    无书、无书,不如开始撞树!
    * *********************

    惊谈百战树木,用途不用细数,
    读书 读书 读出经典无数!
    **********************

    前来百战寻书,却见N人撞树,
    保护,保护,恐龙也是动物
    **********************

    骑猫夜上西陆,百战见人撞树,
    何苦,何苦,终会能见好书
    **********************

    夜半独上西路,偶见人人撞树,
    回复,回复,俺来灌水浇树

    互联网作产品,有时候与灌水并无太大区别。公司发展过程中,一些人,总是以“超人”的眼光能挖出一个又一个好坑,当初的淘宝,支付宝,诚信通等等。现在看来,无一不是好坑。成为好坑的原因之一,就和上面的贴子一样,有大量的水灌入。不管是纯净水还是矿泉水,都能为这个坑增加技术含量。

    创业公司如果经常有新战略和新产品,好比是新挖坑。坑多,挖中宝贝的机率自然就大,这是个常理。但是如果经常挖新坑,那可就有点让人头晕了。

    可是据我观察,很多人喜欢并热爱挖新坑。分析一下原因,大概是认为挖新坑出宝的机会大(第一口水容易喝),花的力气少,没有历史包袱,综合成本低,失败代价小等等。还有人把挖新坑认为是一种“持续创新”的行为。然而我看到的是这些新的坑一般会有些问题,比如挖的太过粗糙,没有持续投入资源,没有太多的积水积累和沉甸,并且这些新的坑一般很容易被放弃。

    互联网产品其实贵在精。互联网就是一工具,把人服务好了,那才是有价值。一个好贴,如果没有后面大量精彩的跟贴来顶,估计是红不了多久。一个原本好好的产品,由于没有深入的专研,长期的开发,经常中途被放弃。或者映到一些因难就绕开去追求另一个更大的坑。

    在不段挖新坑的过程中,很多程序员成为了体力劳动者(我就是一个体力工作者),不断得去重复CRUD,不断得重复项目开关过程。一个团队的时间有一大半投入了重复的流程开启与流程结束过程。这种成本的消耗必然造成团队整体创新能力的下降。这样的团队不出好产品,那是正常的,因为大家天天都很忙,忙得没有人去思考为什么已有的坑不好。看到这样的状态,我真当是痛心。

    新坑是要挖的,但不要挖太多,要么把已经有的坑灌满水再去挖别的坑,要么就是把已经有的坑再搞大。互联网产品哪个不是这样过来的?GOOGLE 的搜索,TENCENT的QQ,看起来很简单的功能作出了多大的文章?互联网一开始就有的老服务:邮件,BBS,导航,到现在已经造成了几家成功的企业。他们还在不断的精益求精,丝毫没有停止创新的意思。我们为什么不实实在在的把手上的东西作深作强?我看不如把用户需求的旧的,土的功能点作得更好用更易用。大部份人都认为那些小功能小需求作了之后不能引起大注意大反响。慢慢得,我们将变得麻木,再也不能实现体会真正的“客户第一”。

    一个伟大的坑,只需要一个人去挖。难以想象当团队里的找坑的人比程序员还多的时候,这个团队会变成怎么样?牛顿被苹果砸了一下发现了万有引力;阿基米德洗个澡发现了浮力定律;伽利略在比萨教堂里注意到一盏悬灯的摆动后得出钟摆的等时性原则,后面还有很多位挖坑的,挖出了一个个学术的好坑。APPLE的产品创意团队一直是由一个人在负责,三十年来也只出过几个系列的产品。这些好坑加以大量的实际应用和后续发展后,才发挥了具大的价值。天下没有这么多的牛顿和伽利略。我还是老老实实去灌水吧。

    扯到这些,是因为今天同一部门的一个牛P找我聊,他要规划新需求作新功能,所以找相关的人收集需求。我非常支持他的工作方式,所以我的观点是:作实际的常用的功能,解决眼前的现实问题,三五年后的坑留到三五年后去挖吧。我们已经挖了太多的坑,是时候停下来休息一下看看。

  • 看农场的倒掉

    发表于 2009年06月26日 admin 2 条评论

    话说去年开始流行搞SNS,长得都和FB一个样。出了很多个FB STYLE的SNS。可是最后火的却是开心农场。

    这是为什么?因为别人疯狂的时候他冷静了,别人作平台的时候,他作ISV。于是他火了。校内,51,KOUBEI关系,淘江湖,连阿里旺旺都有了开心农场。

    开心农场马上成为了一种时尚。开心农场系列游戏广泛出现了,不同版本,不同元素,不同界面的农场让用户从疯狂到疲惫,时间只需要三五个月。当人的心理上满足了每一天的收获,不需要劳动的收获快感后,人心疲惫了。

    外挂出现了。于由FLASH天生的客户端弱安全机制,外挂可以很轻松的模拟HTTP请求。完成农场的发展。外挂,是农场的机械作业时代。

    当用户广泛使用各大农场的外挂时,用户发现,原来的那种收获感和新奇感降低了,取而代之的是对成本的思考。我一天要比别人少花多少时间?我一天又比别人多了多少收获?开心农场成为一种KILL TIME的工具已经达到他的目的,于是KILL TIME和网游一样,需要解决网游的用户长期粘度问题。游戏需要不段加入新的元素,而农场这块小土地主,可玩的空间太小了。也许把农场地图打通,让用户在农场动像RPG游戏一样的走动起来会让农场更好完,但这会加大复杂性,失去一些用户。

    农场的用户使用生命期我没有统计数据,体验告诉我,大约是半年之内,或者更短。而大量农场的出现,会让这个生命周期变的更短,因为用户的好友分散了。

    外挂、农场的泛烂和农场本身的游戏元素过于简单,这将是农场倒掉的强大推动力。

  • 看山寨文化对互联网软件业的影响

    发表于 2008年07月9日 admin 没有评论

    最近有一组非官方力量杀出来,并没有遭受直接的打击,他就是山寨文化。山寨文化是一种由民间IT力量发起的产业现象。主要特点主要关键词有:低价、仿造、快速、平民、全能、短期使用。主要表现形式为通过小作坊,小团队起步,快速模仿成名品牌,涉及手机、数码产品、游戏机等不同领域,并创新出很多新组合功能。这些产品没有经过严格的测试,试用,没有很好的客服,质保,说明书,升级换代快。。。
    对于这种现象,国内有很多讨论, 毕竟,山寨在短期内已经成为大众文化中的一种。
    山寨是中国IT产业的特色,目前主要表现在硬件业。相信软件业也已经被波及,面对这种文件软件业是推还是守?

    软件业从最初的瀑布开发到现在鼓吹的敏捷开发,到精益开发,种种思路无不是让软件交付时间短一些。直到互联网成为软件的现在,软件经理人,架构师,开发人员才发现软件原来需要天天变。互联网软件所谓的优点之一就是:随时升级,随时测试,随时发布。山寨文化正好符合这种需求。

    用山寨文化作软件业有几大特征:
    1:把软件过程当成制造业
    这符合精益制造的思路,从制造业中学习,不断提升软件质量,而不是去期望几次发布解决软件功能和BUG。不管汽车制造业,服装制造业,IT硬件制造业,过程都是流水化,快捷的,每个环节可以独立提升质量。

    2:把软件作成服务
    这符合现在互联网平台互联的思路,平台下鼓励大量小众需求的软件发展,让这些小软件的功能互相交织,自由发展,随时升级,在运动中提升软件质量,而不是通过发布前的多次回归测试,功能测试来保证软件质量。现在的互联网软件开发,主要时间在三个阶段:需求(UC+评审),开发(详细设计+CODING),测试(单元,功能,回归)。三者的时间分配大约是1:1:1。山寨软件从需求到上线,必须很短,所以需求和开发的并行,测试和开发的并行都应该是一种普遍现象。软件上线后,不段处理客户需求,改进软件功能。这样作有几个好处:第一,不需要在需求阶段画大量时间在80%很少用的功能上。这些功能就算有问题,线上用户有很少抱怨;第二,需求长时间的团队内测试,节省三分之一以上时间,因为用户可以边用边看到软件质量的提升。这是让用户感受程序员的心跳。交互性很强;三,软件是服务,不是一次成品,让用户培养这种山寨意识后,用户不再担心软件服务中断。

    3:把用户当成测试者
    告诉用户,使用软件有风险,但开发者愿和你一起提高服务质量。至少让你用的某些功能够用,够某段时间用,够一些人在一定业务场景下安全使用。当然,软件要保证不能害人,不能自燃。

    国内有些软件公司内部已经在非官方的推行这种山寨文化,让这种文化去发挥好的作用,挑战各种旧制度。
    现在的互联网软件平台越来越多,在平台上作软件,开发速度一定要快,一定要符合不段变化的用户需求。用户会快速的进入软件,软件如果不能更好的服务用户。用户会很快选择其它软件。

    让我们一起打造软件制造业,服务老百姓日常网上生活、工作和娱乐事业。

  • 阿里软件互联AEP平台淘宝API调用DEMO

    发表于 2008年07月1日 admin 没有评论

    本代码并不适合TOP平台,因为当时还没有TOP平台:)

    建议PHP开发者使用JSON,因为PHP5对JSON有很好的支持。
    以下是对taobao.shopcats.list.get接口调用实例。
    API官方文档在这里:
    http://isv.alisoft.com/isv/html/showhtml.jspa?html=/html/taobao/api/taobao.shopcats.list.get.html
    [code]
    /**
      * 淘宝API调试
      */

    function getCats(){
      $tvs = new SecurityEnhancedWebService();
      $res = $tvs->taobao_getCates();
      print_r(json_decode($res));
    }
    [/code]

    [code]
    public function taobao_getCates($parent_cid = ‘0′, $v = ‘1.0′, $sip_format = ‘json’){
      $proxy = new Snoopy();
      //准备本次请求参数
      $timestamp = date(”Y-m-d H:i:s”);//’2008-05-02 21:18:58′;
      $sip_sessionid = ‘294fe843d98a455da8918f472a9c3c93′;
      $formVars['sip_timestamp'] = $timestamp;
      $formVars['sip_appkey'] = $this->APP_ID;
      $formVars['sip_apiname'] = ‘taobao.shopcats.list.get’;
      $formVars['v'] = $v;
      $formVars['parent_cid'] = $parent_cid;
      $formVars['sip_sessionid'] = $sip_sessionid;
      $formVars['format'] = $sip_format;
      ksort($formVars);
    //  print_r($formVars);
      //生成签名
      $signStr = $this->CERT_CODE;
      foreach ($formVars as $key => $val) {
          $signStr.= $key;
          $signStr.= $val;
      }
      $sip_sign = strtoupper(md5($signStr));
      $formVars['sip_sign'] = $sip_sign;
      //向AEP发出服务端请求
      $proxy->submit($this->SIP_URL_PRE,$formVars);
     
      return ($proxy->results);
    }
    [/code]

  • 淘宝不改变,还能走多远

    发表于 2008年02月14日 admin 没有评论

    互联网上的网站,如果农村里的大妈都知道她,那她一定是有名的。
    现在TAOBAO还没有到这个程序,TAOBAO也就是城市里的小年青喜欢提起的一个网站,提起TAOBAO,感觉这个人就有点先进了,代表先进的消费能力。
    这个世界需要的是先进的生产力,信息对生产力的促进作用是显而易见的。如果能促进生产力发展,那就有价值,那就可以走得很远很远。
    TAOBAO还能走多远?TAOBAO在免费策略下发展了4年了。最近他需要找到一条路一条赚钱的路。我们都知道,一个企业生存发展只需要一个公式:收入-支出=利润。
    TAOBAO的收入有多少?
    我不知道,因为我不是TAOBAO的几个O,更不是阿里的O。
    我从一个用户的角度看,TAOBAO对电子商务发展起了很大推广作用,但他没有赚到钱,TAOBAO肯定促进了生产力的发展,就像其它信息工具一样。但TAOBAO这个工具作用力还不够大。

    年前听说TAOBAO要搞B2C的商城了,这个业务看来是TAOBAO想赚钱的直接手法了。又听说TAOBAO把YAHOO中国的P2P业务划到下面了。看来这个也是加钱的手 法。这么一来,如果这些都顺利,加上其它的一些收入,TAOBAO是可以赚钱了。赚的很多元化。这里也来钱,那里也来钱。很多,很好看。 TAOBAO想争钱,大家都在看他怎么赚钱。

    网上买东西,真的这样就行了吗?看着那些图片,文字,评论,星级,我就可以买的放心吗?一定程度上讲,是可以买了,也可买一些东西。这些东西的交易过程加快了,生产力发展了,而更多的东西人们需要最好的交易过程,比如视觉上的,语音上的,才可以使用买家消费的安心。TAOBAO作不到。

    TAOBAO这样的网站确实对电子商务交易的推广起了很大作用,但他的作用也仅仅在推广上,现在需要一个东西让商品交易过程最上一层楼,TAOBAO的作用力才可以真正发挥。真正实现大量商品的交易,这个东西有点像电视购物,有点像3D影像,这类技术的应用,才是促进电子商务交易走向赚钱的目标,TAOBA作不到。拥有这些技术服务的平台必将推动电子商务交易的发展。

    4年来TAOBAO没有什么变化。还是在推广,推广,再推广,好像TAOBAO只有运营力量,没有技术力量一样。再这样下去,能走多远?

    王候将相宁有种乎?这句古老的话语对互联网一样适用。

    TAOBAO,不管你是加入08年的平台大战,还是独出一门绝技,去作购物过程体验的创新,等等,都可以再走远一起,但如果你不变,你一定走不远,只会成为别人的铺路石,培育了一个初级的市场,然后被别人取代。

  • 由:可怕的便利性之一”小书店打败西单”想到

    发表于 2008年01月11日 admin 没有评论

    墨鱼同学分享了”互联网才刚刚开始”一书,里面有个例子:
    一个小小的行销案例:我们在学院路一个小书店的门口为一本图书作了专门的展台,读者进门就可以看见这本图书,并且可以拿起它立刻就去旁边的收银台付费。而在西单图书大厦,这本图书没有进行任何活动。只是简单的上架而已。
    几个月后,我们检查销售结果,每一个月学院路上这家书店的销售数量,都超过西单图书大厦。而西单图书大厦的客流量,不知道是这家书店的多少倍!
    这就是市场行销中所谓给消费者提供最大便利性的一个案例。让消费者看到你,拿起你,很容易就消费你。
    我自己也有这样的消费体验,在西单图书大厦的收银台。交费的时候,我看到一本煲汤方面的系列图书,彩色印刷,还挺便宜,顺手就买了两本回家。事后我分析这次交易,我是一个计划性比较强的人,当天我并没有购买这类图书的计划。但是,很方便的拿起,价格也很合适,促进我产生了7秒钟效应,立刻就购买了图书。
    实际上,这个法则,几乎每个超市都在使用。我观察到,我家小区旁边的很多超市,都在收银台旁边放一些口香糖之类的小件货品。消费者很多时候处于可买可不买之间,但常常顺手就放到了自己的购物车中了。

    这个例子看起来很小,很细节,但对于互联网却很重要.WEB2.0时代的互联网的竟争与传统行业相比,有时候更激烈.

    让消费者很方便的看到你,拿起你,很容易消费你,这是我妈妈在小商品市场里工作十士多年卖东西的法宝,这个原则深深得留在我的心中.在互联网时代我也试图应用这一原则.这是一种哲学,我相信!

    一个一线地面部队人员了解这个并不难,大公司的上层能了解并不容易.很多时候一个很好的创新,因为无法得到重视和理解,在一开始就被杀掉.

    创业公司与大公司的是有区别的.大公司能保持创业公司战力的很少.

    上个月与张彪作了一个在线账本,集成上了AEP电子商务平台,然后因为这个应用太小,太便宜,功能太简单就被PK掉了.我不确定这个应用现在就会像小书店一样作得比西单要好.但我肯定以后他可以占领一个街头.

    昨天给支付宝,KOUBEI,阿里软件的同学们分享了WEB2.0的一些体会和感想,也谈了对AEP的未来看法.开放,易用,易消费,易开发,提供大量阿里,淘宝的数据接口是一个美好的梦想.不知道作这个梦的人还有多少.

    我想作的是一个最易用,最开放的平台.