云端架构:基于云平台的41种可复用的架构最佳实践
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

4.6.2 统一资源纳管

公有云端包含不同的云服务商,对资源的统一纳管是通过底层平台提供的API进行对接的。主流公有云服务商均提供有API和PHP、Python、Java、Node.js等语言的SDK,CMP需要适配这些云服务商的SDK。访问API或SDK时需要公钥(Access Key)和私钥(Private Key),经过认证签名即可进行访问。这种方式对于任何开发者均可进行开发和集成。在混合架构下,本地环境可能包括OpenStack、VMware等虚拟化平台,这些虚拟化平台同样提供API,只不过可能并未提供外网访问,只能在内网进行请求,将CMP在本地环境中进行私有化部署,就能访问到内网网络可达的OpenStack、VMware或交换机等资源。CMP对异构资源的统一纳管如图4-22所示。

img

图4-22 CMP对异构资源的统一纳管

为了便于支持多个云服务商及私有虚拟化平台,将所有对API、SDK或其他接口的调用以插件形式集成到CMP的资源抽象层,将上层资源展示管理与底层资源对接进行解耦,扩展新的底层平台,且不影响对上层资源的展示、运营、运维操作。CMP对资源实现首次拉取接入后,还会定期对纳管资源的数量、状态进行更新,创建、删除、更新的云主机等资源也会定期反馈到CMP管理界面中。

以上对公有云资源的纳管和对本地环境的纳管都是以被动拉取的方式进行的,即通过API或SDK一定可以请求到已经存在的资源,但缺少主动探知的功能。CMP会提供Agent来感知发现网络可达的范围内还有哪些设备资源,并在发现资源后在CMP操作界面中进行显示。Agent的安装和使用需要得到用户授权,否则不会进行资源的探测。