美国商业财经杂志FastCompany近日撰文称,随着云端应用平台Heroku和Amazon Web Services等出现以及开源社区的发展壮大,如今的互联网创业环境比以往更好,因为创业者可以将服务器等基础设施方面的繁琐工作外包给第三方,并在遇到困难时向成熟的技术社区求助。
伊恩·欧贝(Ian Ownbey)很早就亲身体会了创业公司在成长中遇到的烦恼。
早在旧金山大学一年级的暑假就读时,这名初出茅庐的工程师就来到一家名为Twitter的创业公司工作。当时的欧贝年仅19岁,但已经在开源Web应用框架Ruby on Rails领域拥有扎实的基础。
当时,Twitter正处于爆炸式增长阶段,用户数量飞速攀升。对于这些早期用户来说,频繁看到404错误页面是再平常不过的了。对于欧贝和他的同事们来说,为了让Twitter的基础设施勉强跟得上用户需求增长,他们需要夜以继日地工作许多天。
幸运的是,过去四年间发生了一些积极的变化。
“不得不说,2013年的创业环境比以往好得多了,”如今在社交网络Branch担任工程团队负责人的欧贝说。Branch是一家专注于在线对话的社交网络公司。“随着云应用平台Heroku和各种软件即服务平台的出现,创业者如今可以自行选择花费多长时间在扩大业务规模上。”
云计算是如何简化业务扩张的
过去,互联网创业公司的增长是一把双刃剑:创业者希望有更多的用户,但如果这些用户大量涌入,而网站的基础设施尚未做好准备,服务可能会因此崩溃。与此同时,羽翼尚未丰满的公司没有足够的资金实力部署额外的服务器,以应对偶尔出现的用户高峰,于是就有了早期Twitter频繁显示404页面的问题。
近年来,Heroku和Amazon Web Services等云平台允许工程师将许多基础设施的繁重工作外包给第三方,由第三方在需求增加时快速部署新的资源。正是这个原因,使得欧贝将Branch托管在Heroku平台。这也是为何他的团队使用OpenRedis进行关键数据的存储托管,以及使用CircleCI测试和整合服务并直接与GitHub接入。
“所有这些工作,放在以往的创业阶段,需要我们的三个工程师亲自来做,”欧贝说。“一台运行GitHub分支的服务器,一台运行测试的CI服务器,然后将其连接起来,部署运行Rails服务器和Nginx服务器,并在各服务器之间维持平衡。如今,我们再也不需要做这些工作了。”
“所有这些领域的技术都在进步,”欧贝说。“比如,Node是一项很酷的技术,而且相当复杂,但你根本无法想象四年前它才刚刚面世。AJAX前端库和jQuery等技术的历史同样很短。真正将AJAX标准化的技术直到2006年才正式成为W3C标准,当时Rails项目也刚刚起步。如今,你很难发现一家不使用这些技术的网站。”
技术背后的社区支持与技术本身同样重要
日渐成熟的不仅仅是这些工具,还有围绕这些技术发展而来的社区。以Twitter、Branch等网站均使用的开源开发框架Ruby on Rails为例,在过去几年间,随着Rails越来越多地被各种网络服务部署,这项技术及其相关社区均实现了显著的进步。
“许多Rails社区以往有待解决的问题,如今都已经完全被解决并得以推广。”欧贝说。
这包括模块化web服务器界面Rack、HTTP服务器Unicorn等。随着开源社区的成长和成熟,其作用也越来越大。
“重要的并非Rails社区是否拥有特别之处,”欧贝说,“重要的是社区的开发者们共同努力试图解决相同的问题。这些开发者的聚集,促进了技术之间的合作。”
为了最大化利用开源社区,欧贝更多地依靠真人的交流而非网络交流。“我更愿意寻找真正聪明和高水平的人,并尽量多地与他们打交道,”他说。GitHub、IRC和Hacker News等网络社区拥有无价的资源,但它们始终无法与现实世界中的面对面交流相提并论。
“成熟的大公司拥有雄厚的资金实力,可以雇佣大批专业人士研究软件问题。创业公司却没有这个条件,因此为了解决技术难题,拥有良好的社区非常重要。”
从某种程度上来说,采用任何一项现有的技术都必须拥有良好的开发社区支持,尤其对于时间和资金有限的创业公司来说。这正是WordPress大获成功的原因,同时也是iOS开发的挑战所在。
“苹果采取了至上而下的策略,”欧贝说。“iOS开发并非开源项目,因此没有社区的支持。另外,苹果每年都会在全球开发者大会发布新的东西,使得开发者很难维护代码库,跟得上最新版系统并支持所有设备。”
优化Branch
去年10月,欧贝被Branch公司年仅21岁的CEO乔什·米勒(Josh Miller)招募至麾下。从某种程度上来说,二人志趣相投。与欧贝一样的是,米勒从大学辍学的原因不仅仅是为了追求技术职业生涯,而是为了在一家专注于帮助人们以新的方式进行沟通的公司工作。
“我很惊讶,他对于互联网的想法竟然与我相似”欧贝说。欧贝和米勒不仅热衷于使用技术重塑新的规则,而且希望能够使人们更好地完成他们之前已经在做的事情,比如相互谈话。
所有Branch对话都是公开并存档的,所有参与者均是由之前加入讨论的人所邀请的。这种交流在很多方面与博客评论或问答网站类似,但少了后者的匿名评论或噪音。
Branch的早期用户主要是一些希望借助该平台提高知名度的媒体机构。这为该公司带来了一个意想不到的挑战:如何让所有其他人开口说话。
由于不必担心产品的日常稳定性,欧贝、米勒和Branch其他团队成员可以专注于产品的未来发展。如今该服务已经结束公测,用户基数也在逐渐扩大,因此到了需要优化的时候。Brach如何鼓励普通人贡献内容?应该增加哪些功能?删除哪些功能?移动战略如何实施?米勒表示,Branch计划推出一款专门为移动平台优化的产品,更加注重对话的轻松氛围。但为了做到这一点,Branch仍然有许多有待解决的问题。
“这很困难,因为作为工程师,我们总是希望提出最完整的解决方案,”欧贝说。“我们还面临着巨大的压力,以试图开发出最具扩展性和最智能的解决方案。”
4月9日,欧贝将面临第一次大考:新版本上线。Branch放弃了增加一系列新功能的想法,而是推出全新的大幅度简化的新版界面。新版本删除了许多功能,以更好地专注于产品,鼓励记者和意见领袖之外的普通人更多参与对话。
与第一版Branch在前端使用众多花哨的jQuery动画不同,新版Branch将绝大部分动画取消,取而代之的是更加简洁和快速的界面。尽管jQuery能够开发出很绚丽的网络应用,但欧贝称,“一旦到了某个临界点,浏览器的性能就会不足,因为需要不停地重绘图形。”绝大多数视觉效果被删除都并非技术原因,而是因为产品重心调整的需要。
“我认为,作为一个工程师面临的最大挑战,是对自己的解决方案充满激情,但同时不能被它们所束缚,”欧贝说。“一切事物都在运动中,因此你必须接受变化的理念。我们不必去解决那些根本不需要解决的问题。”
,