本节书摘来自异步社区出版社《途客圈创业记:不疯魔,不成活》一书中的第2章,第2.7节,作者:陈天,更多章节内容可以访问云栖社区“异步社区”公众号查看。

2.7 发布Alpha版本

在创新工场,确切地说是第三极17楼的日子是艰苦但快乐的。7支队伍朝气蓬勃,人人都很努力地、快乐地工作着。在一个向上的环境里,即便是懒汉,也会被激励着前进,何况我们都是根本不需要鞭策的创业者。这期孵化项目的负责人,大白,就像母亲一样呵护着我们这些在襁褓中的“孩子”。她为我们解决工作上的各种问题,安排“创业辅导课程”,联系创新工场的各种资源。助跑计划后期,大白调任,接手的Xiaoqi同样也是位尽心尽职的好“母亲”。在她们的帮助下,我们几乎可以抛开一切俗务,全心投入产品的完善。创业初期,能有这样一段美好的时光可以心无旁骛地打磨产品,真是无比幸福。至今我很感激助跑计划,感激那段时光。

助跑计划的时光是以周,甚至以天而论的。我们那届采用的是“3+1”模式,即3个月的孵化期外加一个月的时间寻求投资。3个月,13周,92天,要在这么短的时间里打造一款产品出来,并获取到一定用户虽非“不是不可能”,但也很不容易。3个月孵化期结束后,会有一整天的Demo Day,创新工场会邀请感兴趣的天使投资人和做早期投资的VC参加。被看上的项目,将会得到进一步的接洽,甚至获得投资。为此,大白要求我们每周五把项目目前的状况做个Demo,就像3个月后的Demo Day那样。但大白的苦心并非每个团队都理解,有些团队并未好好准备,但我们总是准备最充足的那个。

途我睿在诸多团队里还是有先发优势的,其他团队还在进行UI设计、技术选型的时候,我们已经有可以运行的每日构建。那时还没有Gitlab这样好用的Git衍生产品,所以我用gitosis,在一台最小EC2计算单元上搭建了Git服务,保存代码。没用GitHub是因为我觉得要使用private repo,每月至少花7美元有些不值。不过Nanfang入职后,强烈建议使用GitHub托管,认为这7美元不值得省,GitHub还有很多其他好处。所以我们就把代码库迁移到了GitHub上。现在,我已经成为GitHub的坚定的个人付费用户。

那时的途我睿是个很洋气的团队。我们使用着硅谷创业者常用的开发产品。我注册了4个Amazon账号,这样我就可以使用四台一年免费的最小计算单元。除去前文提到的一台用作gitosis外,一台跑toureet.com,一台跑给编辑们用的翻译系统toureet.me,一台跑Wordpress Blog。之所以弄得这么麻烦,是因为最小计算单元实在太小,怕万一哪个服务流量上来,把其他服务搞挂了。我们使用一家创业公司——CloudFlare(一个提供云安全与云加速解决方案的网站)的安全和加速服务。在Alex的建议下,我们都写官方博客——关于途我睿、创业和技术。写博客有写博客的妙处,在产品还没上线前,你的理念、你对事物的理解,都能为你招揽到不错的种子用户,甚至员工。Alex的这步棋走得很妙。

洋气的下场是不接地气。很长一段时间里我们的服务都在Amazon上,从最小计算单元到超大计算单元(xlarge instance)我们都用过。我知道备案这件事,但我实在不想在开发人手很有限的情况下要匀一部分精力到服务器运维上。备案意味着要脱离AWS,使用本土的IDC。数据在AWS上很安全,我用脚本控制着快照(snapshot)的节奏。快照保存在s3(s3自带备份)上,意味着基本不会丢失。但是如果自己搞个服务器放在机房,就算你是个守法的公民,排除因用户“言行失当”的原因被拔线、断电、拔硬盘的风险,服务器的工作环境、网络环境、硬盘物理损坏、机房工作人员无心之失等事情也要让你头疼(我们后来就遇见过因为机房人员维护其他人的服务器不小心碰掉了我们的网线导致几个小时的网络故障的突发事故)。所以,途我睿正式上线后还在Amazon上裸奔了近3个月,这是后话。和2011年的环境不同,现在的创业者有很多成熟的本土云平台可以选择,如阿里云。

Nanfang加入后,开发的战斗力一下子上了一个台阶。他自告奋勇地建立了基本上线保持同步的本地QA环境,还搭建了Jenkins(一款持续集成的工具)做持续集成。这些用于提升团队效率,增强产品质量的事情他一直在做。我给他稍稍培训了途我睿的系统架构,代码基本上不用给他详细解释,他自己就开始上手了。我记得那时排上日程的通知(notification)、活动流(activity stream)等几个功能都是他添加的。他给我补了Redis(效率很高的一套基于内存的键值数据库,常被用作缓存),Celery(Python的一个任务队列库,常和AMPQ一起使用)在Django下的用法等知识,并且提出了一套利用Redis来缓存途我睿关键数据结构的架构。当时我过于大胆和冒进地使用了尚不成熟的MongoEngine作为MongoDB的驱动,结果MongoEngine序列化和反序列化的低效大大拉低了MongoDB引以为傲的速度,加之旅行计划页面的生成包含不少运算和数据读取,所以网站的性能不够好,于是Nanfang做了一套高速缓存(cache)作为中间层来提高访问速度。这些都是我当时的技术储备无法涵盖的,Nanfang凭借一己之力把途我睿网站的各项技术指标提上了一个台阶。更难能可贵的是,这些功能大部分的JavaScript也是他独自操刀完成,如通知的更新。我更多的时间在给他打下手,充当学徒的角色。

那时iduu还没来,Leanne主做UI。但Leanne缺乏互联网经验,设计的页面感觉一般,所以我更多地是让她做视觉设计相关的工作。

编辑们在菲姐的带领下热火朝天地工作,欧洲的主要城市的数据已经完备。

6月底,一个功能完整的版本已经完工,也许是时候拿到市场上检验一下了。我们选择在7月3日晚23:59上线封测。

这幅图的底稿是用线条勾勒出来的,像心电图一样跳动的景点的创意来源于我哥哥的同事为多哈亚运会创作的一份失败的投标,经他同意后我们将其用做途我睿的首页和宣传海报。我们都非常喜欢这个感觉。伴随着鼠标欢快的点击,随之触动的电流汇聚成一个个欢快的景点,它们构成了一份形象的旅行计划,连接着世界的那一端。没有什么比这幅图更能表达我对途我睿的寄望,可惜,在随后的数次改版中,这幅图,以及其背后的寄托,都被尘封起来,再也没被发现。感谢那位素昧平生的设计师,你给了途我睿一个美妙的、回味无穷的起点。

身未行,心已动。

很有意思的是,伴随着途我睿的封测上线,市面上一下子涌现出来一大堆“我”字辈的专注于制订旅行计划的旅游网站。有些,几乎就是途我睿功能的翻版。

《途客圈创业记:不疯魔,不成活》一一2.7 发布Alpha版本相关推荐

  1. 《途客圈创业记:不疯魔,不成活》一一2.1 创新工场初印象

    本节书摘来自异步社区出版社<途客圈创业记:不疯魔,不成活>一书中的第2章,第2.1节,作者:陈天,更多章节内容可以访问云栖社区"异步社区"公众号查看. 2.1 创新工场 ...

  2. 《途客圈创业记:不疯魔,不成活》一一1.6 申请助跑计划

    本节书摘来自异步社区出版社<途客圈创业记:不疯魔,不成活>一书中的第1章,第1.6节,作者:陈天,更多章节内容可以访问云栖社区"异步社区"公众号查看. 1.6 申请助跑 ...

  3. 《途客圈创业记:不疯魔,不成活》一一1.1 途我睿的由来

    本节书摘来自异步社区出版社<途客圈创业记:不疯魔,不成活>一书中的第1章,第1.1节,作者:陈天,更多章节内容可以访问云栖社区"异步社区"公众号查看. 1.1 途我睿的 ...

  4. 《途客圈创业记:不疯魔,不成活》一一2.5 完善拼图

    本节书摘来自异步社区出版社<途客圈创业记:不疯魔,不成活>一书中的第2章,第2.5节,作者:陈天,更多章节内容可以访问云栖社区"异步社区"公众号查看. 2.5 完善拼图 ...

  5. 《途客圈创业记:不疯魔,不成活》一一2.9 UX再造

    本节书摘来自异步社区出版社<途客圈创业记:不疯魔,不成活>一书中的第2章,第2.9节,作者:陈天,更多章节内容可以访问云栖社区"异步社区"公众号查看. 2.9 UX再造 ...

  6. 《途客圈创业记:不疯魔,不成活》一一1.4 合伙组建公司

    本节书摘来自异步社区出版社<途客圈创业记:不疯魔,不成活>一书中的第1章,第1.4节,作者:陈天,更多章节内容可以访问云栖社区"异步社区"公众号查看. 1.4 合伙组建 ...

  7. 《途客圈创业记:不疯魔,不成活》一一2.2 种子融资

    本节书摘来自异步社区出版社<途客圈创业记:不疯魔,不成活>一书中的第2章,第2.2节,作者:陈天,更多章节内容可以访问云栖社区"异步社区"公众号查看. 2.2 种子融资 ...

  8. 《途客圈创业记:不疯魔,不成活》一一2.11 途客圈旅行助手

    本节书摘来自异步社区出版社<途客圈创业记:不疯魔,不成活>一书中的第2章,第2.11节,作者:陈天,更多章节内容可以访问云栖社区"异步社区"公众号查看. 2.11 途客 ...

  9. 《途客圈创业记:不疯魔,不成活》一一2.6 组建团队

    本节书摘来自异步社区出版社<途客圈创业记:不疯魔,不成活>一书中的第2章,第2.6节,作者:陈天,更多章节内容可以访问云栖社区"异步社区"公众号查看. 2.6 组建团队 ...

  10. 《途客圈创业记:不疯魔,不成活》一一2.3 早期产品

    本节书摘来自异步社区出版社<途客圈创业记:不疯魔,不成活>一书中的第2章,第2.3节,作者:陈天,更多章节内容可以访问云栖社区"异步社区"公众号查看. 2.3 早期产品 ...

最新文章

  1. 使用 Global.asax 文件
  2. 学霸现身!博士生发18篇SCI,4篇CNS子刊,开学典礼上全场震撼
  3. 【零基础】讲述网络安全介绍
  4. api权限管理系统与前后端分离实践
  5. linux c 内存elf,gcc加入linux ELF有什么功能?
  6. libevent evhttp学习——http客户端
  7. 又走一人 苹果自动驾驶系统工程项目经理已离职
  8. IPC Binder
  9. 自动化测试框架selenium+java+TestNG——配置篇
  10. caffe+GAN︱PPGN生成模型5则官方案例(caffe版)
  11. View 的测量 MeasureSpec
  12. 2021免费注册TK域名使用一年的方法
  13. dz中footer.php在哪找,dz模版制作教程
  14. css 标点符号换行问题
  15. 技术干货 | PACMOO:基于帕累托最优的公平性约束协同过滤算法
  16. Python Spider 的总结
  17. 鬼谷八荒逆天改命修改教程(3月亲测有效)
  18. 关于anchor的解释
  19. D3D粒子系统设计关键要点
  20. Robot Framework(RF)语法与运用初识

热门文章

  1. 【Web基础入门】一文搞懂HTML + CSS + JavaScript 简单了解
  2. 一款基于jQuery仿淘宝红色分类导航
  3. python自动群发邮件_24.python之自动群发邮件(1)
  4. github Action使用
  5. java内存中读文件_关于内存管理:读取Java中的大文件
  6. pyplot 画多个图时搅合到了一起_【收藏贴】家里来了好些小朋友,什么游戏可以让孩子们玩到一起?...
  7. php语言缺点,php语言优缺点分析
  8. Telegram 群组创建机器人bot
  9. python 随机生成手机号码_Python实现随机创建电话号码的方法示例
  10. 人力资源行业拓客的10个经典方法