弹性问题(Rescilliency)是云产品的一大挑战,尤其是团队经验少的情况下。这里分享点小白团队要注意的地方。
第一,要严肃对待,不开玩笑 :). 注意,这不仅仅是个技术问题,尤其在开始的时候,远不是个技术问题。
第二,注意内部,外部,标准,流程等方面的统筹处理。产品大到一定程度,内有自己的平台,框架,服务,应用,外有大量依赖的东东,比如AWS,Ali Yun, Apigee, etc.都要搞好关系。必要时可以考些标准认证什么的,对于较大的企业还是有必要的。 像原来那什么国标900认证类似的。
第三,产品的弹性问题可以从多个层面去缓解。面对客户的应用层,可以从用户体验角度想方法;产品的中间架构,可以从技术框架 + 业务逻辑角度去提升; 底层平台/服务,可以从他们自身的弹性角度来支持。AWS可以挂,但你还是得给用户兜底,所以多考虑,细考虑是必须的。
第四,要拥抱“失败(failure)”,不要抗拒它。就像大禹治水,堵是堵不完的,关键靠疏。云产品的弹性失败是不可能避免,要做的是怎么少发生,发生了该怎么去最小化损耗。
第五, 小白团队(原来没有多少云产品开发经验的)最容易犯的问题就是,还是追求“功能可用”。 这个在单机版的软件里是可以的,在你这能跑的通,基本上在客户那也行; 在客户那能跑通一遍,基本上以后100遍,1000遍也没问题。但是这些假设到云产品这都失效。所以小白团队切记,“功能可用”已不可用。