打断痛苦的循环
在这一点上,很多有潜力的初创公司一开始便围绕{敏感词}、配置及价格转。首先,应用程序托管在哪里;第二,即使你找到了托管应用的地方,服务和支持能否
跟得上应用的发展;第三,他们是否允许你的“硬件”(还包括预算)从低配开始且和容易拓展;第四,是否提供快速迭代设计或架构的简单的方案;第五,你是否
需要雇佣系统管理员去配置维护您的应用服务器和数据库;最后,如果将来要使用不同的托管方案,你能否建立自己的平台而不被锁在现有架构?
结果是平台即服务(PaaS)可以解决许多这些困境,对此我也震惊不已,我认为OpenShift是个出色的解决方案。通过将你的开发环境转移为一个云托
管的解决方案,特别是到那种开源免费的托管层面,这样可以避免那些典型的服务器基础设施带来的痛点。这篇文章的其余部分我将讨论所有使用
OpenShift的可行方式,或其他的一些PaaS方案,使你的创业启动有较低的成本、更高的可靠性和更快的产品迭代。
节省成本
OpenShift有一个慷慨的自由层,它给你的是一种建立奏效应用而不仅仅是幻灯片或有限的服务的方法,而大多数其他托管PaaS平台还停留在试验或入
门级。这基本上给了你免费的服务器创建你的应用,一个多语言支持的PaaS(支持多种编程语言)可以让你尝试一下不同的语言或根据应用的需要混合使用它
们。这比获得AWS的微实例还好。在这里你可以得到操作系统已安装的服务器,应用服务器和数据库实例也已安装就绪,且所有这些都由PaaS运营团队运维保持更新。
下面来谈谈运维团队,当你的项目开始的时候,你不需要雇佣全职的运维团队来进行基础设施布局。另外,在项目刚开始的时候,你的应用不复杂也不需要运维人员。但在
一般情况下你得关注应用的安装,配置,服务器维护等基础设施建设上,而在开发上的时间就会减少。如果你选用EC2(
亚马逊弹性计算云),你还得自己架设配置服务器集群、自己来选择AMI(亚马逊云机器镜像
)、
配置网络设置、配置服务器软件以及维护OS和服务器软件。所以你得花费启动资金雇佣一个系统管理员或是减少编码时间自己丰衣足食了。如果在PaaS上部署
你的应用,后台将完成所有(或是很多)系统管理的工作。在OpenShift上,除过你得编码外剩下的OS,网络,服务器方面的工作都交给
OpenShift了。这能为你节省巨大的花费和时间,很多开发者不清楚情况还对此产生抱怨。
平台的可靠性和安全性
前面我们提到初创团队里没有系统管理员,所以配置和维护的工作就得开发者自己来完成了。这就意味着团队里很少有人关心系统更新、创建冗余和监控网络流量增加的情况。但在PaaS上,平台都可以完成这些工作。
举个例子,当你在OpenShift上创建了一个可伸缩的应用,其实在后台我们加速了负载均衡、启动服务来监控大量的
HTTP请求、应用SELinux和Cgroup策略、配置和开启你得应用、为你的代码创建一个git仓库、创建钩子来编译和部署你得代码、发行你得
DNS入口,还有当你的应用需要更大空间时我们会为你动态添加。想想看,这些可能在1分钟之内就能完成,但是再想想如果是你的系统管理员或是开发者做这些事是怎样的情况。
如果当你某个地方做的不对,你的网站停止工作或是你得服务没有按照人们期望的方式正常工作,那么你又得减少编码、团队讨论、招聘新人或是家人团聚的时间
了。但如果你用OpenShift,你将到专家的服务,让专家管理你的系统,让你的系统具有可靠性和可重复利用性。当你要启动下一个应用,不论你需要一个
新的服务还是新的应用,我们将再次为你服务。你不需要去找3个月前纪录的笔记,也不需要记下你以前的工作步骤。
最后,PaaS也会为平台和服务器软件提供安全更新,完成这些工作不需要你在邮件列表里进行订阅,不需要计算出严重程度,不需要关注版本以及机器是怎样打
打补丁的。我们利用红帽团队的经验来决定哪个补丁什么时候用。高风险的补丁我们会及时通知到每一个人,而低风险的补丁会优先考虑的。但是,在PaaS我们
的团队不会去做我们不能胜任或是招致额外花费的任务。 更出色的架构和语言扩展性
最后,使用PaaS的最大好处之一就是架构和代码拥有更好的扩展性,特别是对于那些多语言平台。举个例子,在OpenShift上,如果你的某个网络服务
开发者非常熟悉Python,但是其他开发者却喜欢用Java-没问题,两种语言都行。事实上我们倾向于把Python, Java, PHP,
Ruby, NdeJS和Perl作为开发语言。熟悉Python的开发者不一定非要学Java和vice
versa-你能让他们各自在一个独立的服务上工作。你可能会说,“为了代码的一致性,我们应该都用同一种语言开发”。在一个非初始项目或者比较大的项目
规模的情况下,我会同意你的观点,但是在一个初始项目中你的主要壁垒是快速执行和快速迭代开发。让你的开发人员用他们习惯的语言开发吧。当你变的强大和出
名的时候,你就可以开始均衡你的代码库了。
另一个例子就是使用NoSQL作为数据存储而不是RDBMS。你的团队不一定使用过NoSQL,但是一定听说过这是一个有史以来最棒的产品。比起花时间弄
清楚如何安装,配置和运行它,你可以以它为原型,而不是只能运行,实例化的PasS。实际上,使用OpenShift,你可以免费地运行,运行你想要的原
型,析构应用程序或数据盒带(data cartridge),并在其他程序重复用这些容量。
由于传动装置(OpenShift服务器)可以是同型号的,它也可以为不同架构选择之间的性能检测创造一个良好的平台。除了替换数据存储或者app服务器
(如Tomcat和JBoss之间的对抗)以外,在同一个架构升级,观察性能的差异是非常简单与直接的。在传动装置创建所基于的节点上,可能会有单独的运
行差异,通过更多长时间的测试
,你可以相当清楚的认识到何种架构更有利于你的应用需求。当这个做完之后,你可以删除这些传动装置,将不会有更多的费用(如果你已经超越了免费的层次)。
通过PaaS你具有了用你已知并且喜欢的语言和数据库创建应用的灵活性。或者拥有迅速而简单的办法规范多种解决方案。你可以让团队中不同的成员以它们希望
的方式工作,同时又通过共享的git存储库和SSH公共密钥非常容易的进行合作。开发者可以持续的做开发工作,不需要关心系统管理工作。有一个来自于
Red
Hat家族的专家团队,可以帮助让你们代码数据之下的一切都是最新的,并且尽可能的安全。你的团队只需关注于创建尽可能好的应用,不需要分心与焦虑。
一个警告
当选择一个PaaS -锁定的程度时,我想就一个重要的考虑作最后的声明。当你使用别人的平台,而不是你自己的,重要的是要注意,在那个平台你被“强行”停留的程度。为了应用程序的运行,有些PaaS平台需要你使用特定于平台的库。如果这些平台定价或服务条款发生变化,而你
又无法接受,你会面临着一个艰难的决定——要么花费宝贵的开发周期来移植平台或接受新的成本/条款。正如你可能期待我给予的信念,OpenShift力求
避免锁定,并开放源码,所以你总是可以自己搭建整个平台,我们使用标准的语言和数据库,而不需要任何特殊的库,在工作中唯一需要的工具是Git和SSH。
唯一的移植只需要设定一些变量,它们承载了用户数据库和其他信息并在你的新平台中重嵌到合适的位置,这种移植是从我们的平台到其他的平台。
综上所述,一个PasS服务(我偏好OpenShift)就是现代创业公司搭建万丈高楼的一个最佳的方法。
下一步