区分逻辑和真实操作
对公有云资源的操作都必须区分逻辑操作和真实操作,方便管理员的管理。比如有的用户只能逻辑上删除一个公有云网络,而不允许真实删除公有云网络。又比如对可用区这种概念,用户只能逻辑性地清除它以及它的子资源,而不能真实删除一个可用区,因为这是公有云的固有属性。
升级原则
对于混合云产品来说,私有云的部分是可以随产品升级而升级的,但公有云部分的升级,则可能影响到产品的稳定性。因此要注意两个原则:
一是对公有云的操作失败范围要尽量控制在可以控制的范围内,比如错误或数据结构控制在有限的package内,避免公有云API的调用失败影响到产品整体流程。
二是对公有云上有可能变更的行为和资源保持弹性和可降级处理,比如公有云上的可用区是有可能新增和关闭的,而每个可用区内能看到的资源类型也是不对称并且会发生变化的(例如库存变化),因此需要有机制能动态地识别这种变化并进行相应处理。对于第二点来说,还需要开发人员对每个公有云本身的实现机制有深入的理解。
以上几个设计原则虽然并不轻松,但一旦建立完成,一方面可以在UI上做出许许多多令人赞叹的智能化设计。另一方面,公有云资源的操作可以达到毫秒级响应,在全异步的框架下,一个管理节点可以帮助用户管理成千上万个云资源,从而用户可以摒弃掉公有云控制台。
用户可以在混合云平台上做什么
对于用户来说,混合云帮助他屏蔽了许多实现细节,那么用户只需要按照场景去使用即可。在这里我们列举用户可以在混合云平台上做的事情。
灾备场景
用户指定本地数据中心的磁盘、镜像或云主机,可通过备份策略、备份组或直接手动的方式,备份到远端公有云。混合云平台帮助解决连通以及去重的问题。
互连场景
用户指定本地数据中心通过VPN或专线的方式连接公有云VPC,或直接连接几个公有云VPC,或把自己几个数据中心与公有云组成星形网络,互相通过内网访问。在此基础之上,用户可以让自己的业务跨云部署,或跨云使用负载均衡。至于连通的细节由混合云平台处理,用户只需要指定连通目标即可。
弹性场景
用户将本地数据中心的云主机弹到公有云,或者反过来从公有云弹到本地数据中心,从而解决业务迁移和弹性扩展问题。这个场景可以极大节省用户的资源成本,从而通过混合云平台解决数据迁移的问题。
多云管理
用户不需要再登录公有云控制台,在本地完成所有操作。本地平台还可以帮助用户解决跨帐户、跨地域管理的问题,从而可以将用户的资源管理速度提高几个数量级。
总结
本文从系统概念层面阐述了我们在研究和实践中对混合云的认知,即混合云应该是让私有云和公有云之间能进行帐号打通、网络打通、存储打通,并以流畅的用户体验极大降低用户在不同云之间的分裂体验,从而使用户能够专心于业务架构,而不用关心基础资源如何打通的问题。
针对这一全新的混合云认知,本文提出了混合云的设计目标以及围绕该目标应有的实现手段、设计原则。