亚马逊AWS云计算生态链中有很多的合作伙伴,也有很多依附AWS平台的创业公司,作为第三方服务提供商在为更多的创业公司提供服务。CoreOS就是这样的一家公司,CoreOS是服务于大规模服务器部署的Linux操作系统。本文来自于CoreOS的CEOAlex Polvi,他在文中提出了初创公司在创业初期应该注意的四个架构问题。
我有两次创业经历,第一次创业是从Y Combinator得到创业基金创建了Cloudkick并在2010年9月被收购;第二次是在YC创建了我现在任CEO的公司CoreOS,我喜欢把这次称作“大学二年级”。CoreOS的灵感来当我在思考自于如何通过自己的一己之力创造一个不一样的互联网未来的时候,CoreOS的想法就随之而来来。或许我的想法可以更大——我的想法很远大,想着我或许可以成为维护互联网后端安全的重要分子!
关于CoreOS
CoreOS是服务于大规模服务器部署的Linux操作系统。我们团队从Netflix, Twitter和Pinterest这类大型互联网公司创建弹性并可自由停机的架构中获得了很多的灵感,并将其融入到CoreOS中,从而为大大小小的各类公司提供这类架构。
与其它操作系统相比,CoreOS的区别在于使用containers运行应用程序,只囊括操作系统的重要组件。因此CoreOS属于轻量级,并且比Linux平均RAM使用率低40%。
CoreOS有一套特殊的更新理念。最新的CoreOS使用alpha通道,如果你经常玩耍可以选择alpha通道,但这个不是最安全且通过测试的软件版本;如果你是在生产环境下,建议选择CoreOS稳固通道。这一应用模型能使你的服务器以最快最稳固的方式保持最新最安全最稳固的更新。
CoreOS是开源的,使用者可通过Amazon EC2进行尝试。创建一个服务器只需要简单的选择一个镜像,Managed Linux里有更多的CoreOS配置、使用帮助和支持。最近,CoreOS发布了稳定的版本,也就是说CoreOS已经准备好投入生产并在生产环境下运行了。
通过AWS CloudFormation,AWS使CoreOS实例的集群的创建变得超级简单,对于不了解AWS的开发人员和系统管理人员,AWS CloudFormation提供了简单的创建和管理相关AWS资源的方式,及有序和可预测的配置及更新方式。在CoreOS案例中,通过AWS CloudFormation发行一个安全且可自伸缩的CoreOS集群机器,只需要填写一个简单的表格,即可立即获取一个集群。
四个经验
由于在启动第二个项目时,我非常热衷于创业。在许多方面,CoreOS可通过获取warehouse-scale计算水平帮助初创企业解决规模大小问题。我提到的很多事情都依赖于云供应商,你需要专注于产品差异化,让你的产品能够迅速推向市场
在做Cloudkick和CoreOS期间,我参加过很多国家的企业会议及创业活动演说,花费了大量时间在各类初创企业中,看到了很多初创企业在寻找建立和扩大基础设施的方法时很是彷徨。在这里,我将分享一些创业公司初期应该注意的架构问题。
依赖你的云供应商
在试图搞清楚你的产品市场时,不要只关注在运行Nginx或调优数据库的细微差别上。一定要用云供应商提供的服务,如Amazon Relational Database Service 或AWS Elastic Beanstalk。你的产品可能很特殊但服务器基本架构却不会有特别之处。使用标准的服务并尽可能避免建立和管理自己的服务器,要不惜一切代价的依靠云平台提供的服务,避免服务器带来的负担。
做好重写软件的准备
创业一半是野心一半是搞清楚到底要做什么。设计出一个自己都想扔掉的软件是很正常的,因为不管怎样都有可能犯错。事实上,我认为每一个有着强烈吸引力的软件产品都被重写过;在早期消减一些边边角角很正常,因为与高可伸缩性软件比起来,你更需要高吸引力的软件。
快速迭代
产品要尽快进入市场,就不要过于苛求工程的完美度,要专注于确保创建人们想要的产品;一旦达到最低限度的可用度,就可以发布了;使用云供应商提供的工具,可以在不写自动部署系统或配置数据库文档的前提下发布MVP。即使是以技术优势为代价,发布产品也是初创公司产品交付中最重要的环节之一。
监管每件事
发布后,要确保你的基础设施被监管,产品上线后客户体验至关重要,简单来讲就是宕机次数越少,客户就越喜欢。我曾经有过一个云监管公司,所以我很热衷这个话题,监管能为你了解基础设施工作方式提供更好的洞察力及数据,还能够帮助你调优相关操作。
再重述一下所有这些经验教训:尽快将产品投入市场,专注于产品差异化。服务器环境可以相同,但产品不会,所以要根据人们的需求而不是服务器基本结构创建产品!