RobertNeumayer译者
无明跟着容器原形设备的涌现,容器原形设备的测试变得与机械镜像的测试同样要紧。
保守的原形设备治理是一项手动职责,由系统治理员治理静态效劳器。当代云平台的主动化手腕改革了这类做事方法:原形设备每每被描画为“代码”,原形设备治理系统会对原形设备主动做出变动。因而,原形设备的变得越发动态,周转工夫也要短不少。
原形设备测试框架每每被用于考证机械镜像的形态(AmazonMachineImages、GoogleComputeImages或OracleOCIImages)。跟着容器原形设备的涌现,容器原形设备的测试变得与机械镜像的测试同样要紧。
在MySQL,咱们有不少原形设备,咱们越来越多地行使容器来接替实在(虚构)机械。别的,越来越多的焦点原形设备运转在Oracle的云原形设备(OCI)上。这请求咱们完成多个级其它主动化,而且能够行使原形设备测试来考证咱们的效劳器(或虚构机、容器)的形态。原形设备测试还用于考证咱们颁布的一些工件的形态。
在这篇博文中,咱们将重心先容何如行使主动化原形设备测试来考证MySQLServerDocker镜像。咱们将对比三个可用于举行容器测试的框架,并给出示例代码。
主动化原形设备测试原形设备测试用于测试原形设备的形态:Apache效劳器是不是在监听80端口?是不是准确设置了DNS效劳器,这些设置是不是准确反响在resolv.conf文献中?要安置的二进制文献是不是都曾经存在于机械镜像中?
这类测试能够做为bash足本的一部份,因而每每被用于设置职责,也许在(手动)缔造实例后举行手动考证。主动化原形设备测试更进一步,它假定需求对不少原形设备和足本的准确性做出考证,以及动态的当代云处境有不少东西需求过程手动的方法责罚。
原形设备测试器械每每与Ansible、Puppet或Chef等设置器械连合行使。设置器械在机械上安置软件,测试框架则保证它们能够一般运转。而后,任何东西均能够过程代码来示意,并行使功具举行主动化。
咱们的重心是测试Docker镜像,对咱们来讲,这些做事有点倾向底层。由于咱们悉数的Docker镜像主借使由过程测试并颁布的yum软件包层构成,这些层位于特别牢固的OS层之上,咱们重要想要考证软件包的版本是不是准确,以及这些二进制文献的机能是不是一般。在镜像建设期间,或许会产生网络阻碍,涌现软件包安置不完备的状况,咱们想要过程主动化测试来捕获它们。
在评价测试器械时,需求思虑到如下两个方面的题目:
设置谈话,即想要测试的体例(可用包、须要的文献等)
测试实行,即何如运转测试(local/ssh/container)
关于如下的器械,咱们将