@lsmn
2018-03-22T07:13:55.000000Z
字数 2525
阅读 2071
平台
IaaS
IaC
在过去的十年中,人们对基础设施即代码(IaC)工具的关注度越来越高,这主要是由于基础设施即服务(IaaS)和API驱动的基础设施的出现。InfoQ和Ankyra创始人Bart Spaans探讨了同质化此类工具面临的挑战,他是基础设施和发布工程领域的专家。
在过去的十年中,人们对基础设施即代码(IaC)工具的关注度越来越高,这主要是由于基础设施即服务(IaaS)和API驱动的基础设施的出现。目前,在这个领域中,其中一项挑战是,为了定义、部署和配置一个完整的平台需要组合使用多种工具。InfoQ和Ankyra创始人Bart Spaans探讨了同质化此类工具面临的挑战,他是基础设施和发布工程领域的专家。
正如Keif Morris在文档中描述的那样,使用IaC的一种标准模式是使用一个像HashiCorp Terraform或AWS CloudFormation这样的基础设施自动化工具来声明网络、计算和存储,然后,使用任意一种“CAPS”工具(Chef、Ansible、Puppet、SaltStack等)提供引导指令和配置管理。通常,使用多种工具意味着团队不得不学习不止一种技术(和配置语言),另外,所有配置源文件的协调和版本控制也是一项挑战。
近日,InfoQ采访了Spaans,了解他对基础设施及发布工程现状的看法,另外还讨论了他们创建另外一种工具选项“Escape”的动机。他们是在设法克服当前工具中存在的部分缺陷。
InfoQ:您好,Bart,非常感谢您今天抽时间接受我们的采访。您可以简要地介绍下自己以及新推出的Ankyra Escape项目吗?
Spaans:您好,Daniel,非常感谢。我叫Bart Spaans,是Ankyra的创始人,这是一家专注于自动化软件交付的公司。Escape是我们开源的发布工程工具集,可以用于跨层、跨环境、跨云的软件构建、测试、版本控制、部署和操作。
Escape源于我们多年的云基础设施和交付管道工作,我们一直遇到同样的问题:我们有许多极好的云、令人惊叹的自动化工具、节省时间的软件即服务,如此一来,理论上讲,公司应该专注于提升业务价值,但实际上,大量昂贵的资源都投到了这些东西的整合上
所有这些层、工具和服务,虽然本身都不错,但需要统一成一个整体的平台,这做起来非常复杂。当有多个环境(CI、perf、演示、过渡……)、微服务、数据迁移或其他“操作繁重”的事情时,这变得更困难了。
我们推出Escape就是为了处理那种发布工程、配置和部署复杂性,让用户返回来关注重要的东西。
InfoQ:我相信,有些读者可能会疑惑,这个工具和其他类似的工具,如Terraform、Ansible、Chef等,是什么关系。您能为我们说明下他们的差别吗?
Spaans:Terraform、Ansible、Chef等工具都是针对软件栈中一个或多个层。例如,Terraform用于在云环境中配置新虚拟机,Ansible或Chef用于配置那些机器。这些工具很棒,如果你可以在一个工具里管理所有的东西,那么你应该那么做。然而,在现代技术栈中,我们看到,通常需要多个工具和环境才能构成一个完整的平台。在这种情况下,问题变成了:我如何编排所有这些不同的工具,如何进行版本控制并推动代码跨环境部署?
Escape让封装所有这些工具成为可能,它把你的平台分割成逻辑组件,围绕这些组件提供最佳的发布工程流程实践。就上面的例子来说,你可以分别测试和发布Terraform代码和Chef/Ansible代码,然后再把它们合并成一个内聚单元,方便代码向生产环境的部署。
InfoQ:这个工具的灵感是来自Cloud Foundry的BOSH或者谷歌的某个SRE工具吗?
Spaans:当然。我认为,BOSH在工程发布和环境管理方面做的许多事都是正确的,但是它的适用范围仅限于虚拟机。对于Escape,我们希望创建一个工具,把版本控制、打包、配置、部署和操作软件带到栈中的任何一层。
我喜欢谷歌的SRE工具是因为它是声明式的,而且由强大的API驱动,这个东西确实为我们设计Escape带来了灵感。
InfoQ:您认为,支持多个云供应商的基础设施管理工具有多重要?
Spaans:我认为很重要,因为它可以简化供应商迁移,开辟混合云解决方案。归根结底是为了保持竞争力,是为了能够响应变化,尝试新东西。
我还认为,随着计算商品化以及更高级抽象的发展,就像在Kubernetes和无服务器中看到的那样,我们将会见证一些很酷的东西。例如,下一代基础设施管理工具可以根据预期的成本或网络延迟转移负载。
InfoQ:现代基础设施和系统工程师面临的最大挑战是什么?
Spaans:在我看来,最大的挑战是管理现代栈的复杂度和广度。在交付应用程序及应用程序代码本身时发挥作用的所有工具、云和服务都需要一定的配置。
管理整个栈的部署和配置,尤其是当环境不只一个时,情况会变得非常复杂,经常会导致脆弱但昂贵的临时解决方案。避免这种情况,构建一种快速可靠的交付通道,具备操作这种复杂环境的能力,在我看来是最大的挑战。
InfoQ:您从使用Escape的用户那里获得了什么反馈?
Spaans:从“这就是我一直在寻找的工具”到“我不确定那是干什么用的”,我们什么都听过,因此,那非常有趣!通常,对于每天都被这些问题困扰的人和公司,我们感同身受,但是,我认为,我们仍然可以用一些方法向不同的人介绍Escape。
InfoQ:Bart,谢谢您抽时间接受我们的采访!您还有其他的东西想和InfoQ的读者分享吗?
Spaans:Daniel,这是我的荣幸。非常高兴与您交谈!我们一直在寻求反馈,因此,我们希望读者从GitHub(https://github.com/Ankyra)上检出这个项目。
要想了解更多有关Escape的信息,请查阅项目网站及文档页面。
查看英文原文:Ankyra Presents “Escape”, a Release Automation Tool that Manages Platforms as Logical Components