通过软件来控制任何东西的能力是软件定义数据中心吸引人的地方,不过,可扩展性、集成性和其他的考虑因素也应该成为设计SDDC(Software-Defined Data Center)的一部分。
当在设计一个软件定义数据中心时,企业需要考虑的因素很多,包含集成和自动化。在部署的每一步都需要对业务的需求有深入的了解,并且知道需要克服哪些财务的障碍。
有一些企业可能会想通过一个供应商来完成软件定义数据中心(SDDC)的搭建,但这是不可能的。但是如果去考察其他企业的SDDC架构——特别是大型云服务供应商——对决定你的需求程度和决定最有利的基础架构类型是有一定的帮助的。
SDDC设计所考虑的软件
SDDC的关键特征是通过软件来控制各个方面的能力。这相比物理的基础架构变更或者手动控制流程更加灵活。SDDC可以让负载工作在物理基础架构之上独立地运行。它还允许将基础架构管理和负载管理进行分离,两个平面都可以通过程序进行控制,而不是人为的直接操作。比如说一个负载策略可以在现有的web服务器超过一定阈值后增加web服务器的数量来平衡负载。基础架构策略可以是对一个感染的hypervisors部署一个安全补丁。这些策略以及一些自动化的工具的推出,推动着SDDC的发展。
人们容易认为整个SDDC——或者至少从软件方面——应该都来自一个单一的厂商。事实上没有一个厂家能够提供SDDC中的所有部件,并且也肯定不会有统一的产品。举个例子,VMware's vRealize Automation (vRA) 套件包含了很多基础架构的组件,但是却没有能力成为持续集成/持续开发(CI/CD)的工具。如果你去问你的程序员,他们会告诉你CI/CD系统是SDDC架构里面很关键的一部分。VRA也不是设计来更新你物理服务器的固件或者存储阵列内固态硬盘的微码的。这就是SDDC是由不同的厂商组成的原因。这并不是一件坏的事情,不过这会让SDDC的设计变得更加复杂。
SDDC设计的集成关键
观察一下大规模的云提供商,你会发现要建立包罗万象的SDDC是可以达成的。这些云提供商不会从单一厂家购买他们的基础架构,他们会从不同的厂家处购买部件并且进行组装来满足自己的需求。大多数大型云提供商都有自己的开发团队来做不同组件的集成。想象一下如果所有组件都做了集成,那么你可以在数分钟内部署一个VM实例,并且将其连接到正确的内部和外部网络中去——这些都可以从自服务的门户网站、一些脚本命令或者一些应用程序编程接口(API)调用来达成。从财务的角度想象一下要建立这种级别的SDDC需要多少成本,建立一个大型SDDC架构费用是高昂的,但是回报也会非常大。
对于一个企业来说,这种规模的集成并不一定是必须的。首先,很多产品都内建了自动化的工具,你只需要简单地将他们集成在一起就可以了。大多数企业公司有自己的基础架构标准,因此他们不需要对不同的组件进行集成。而且,你的SDDC规模也不会像公有云提供商一样那么大。企业可以指定某一些集成方式来满足自己的商业需求。而云提供商在这方面则要支持客户所需要的所有集成的场景。
在设计SDDC的时候,你会期待将一些组件进行集成,例如最终用户的门户、服务器硬件、软件定义网络和软件定义存储。这也是API发挥作用的地方,它会让一个SDDC组件与另一个组件进行集成。可以使用流行的Rest API来将一些脚本绑定到你经常使用的脚本语言中。可以为你的产品寻找一些有API、绑定或者理想的集成模板。
在设计SDDC中一个比较关键的考虑因素是去定义你的视野范围。通常来说SDDC最有价值的地方在于能快速变化你的环境(比方说生产环境和测试环境)。你可以将首次部署排除生产环境来减少一些风险。一旦开发/测试环境已经被验证并且学到了相关的经验,那么可以让生产环境介入。如果你的企业不是通过敏捷或者DevOps方法来进行软件开发的话,那么CI/CD系统是没有价值的,这种情况下部署自服务、非生产的VM平台就足够了。
本文作者:Alastair Cooke
来源:51CTO