如何使用虚拟化加快我们的流程

您是否曾经想立即开始进行一个很酷的项目,但是设置却要花几个小时?
也许您试图向应用程序中添加新的微服务,但这会涉及部署过程中的所有更改,因此您决定坚持使用整体程序?
您是否曾经因为系统设置略有不同而只在生产中发生错误?
如果您对以上任何一个问题的回答为“是”,那么本文适合您! 如果您很幸运,但从未遇到过此类问题-对您有好处! 但是您仍然可以使用这些技术来加快过程。

每个项目都是不同的。 不仅在业务需求方面,而且在应用程序体系结构方面。 有时,您的项目可能由一个带有数据库的简单前端和后端组成;有时,您可能具有许多相互通信的微服务,具有不同保留规则的多个数据库以及连接所有这些模块的一些其他代理和调度程序。
尝试考虑您曾经使用过的最复杂的体系结构。 对于新开发人员加入您的团队,从头开始设置此项目有多困难? 很有可能您将不得不花费数小时甚至数天的时间来设置所有数据库,队列,安装所有必需的依赖项。 但是您可以使用我们基于虚拟化的技术将其减少到几分钟。

虚拟化远非一个新概念。 实际上,在1960年代和1970年代[1]的大型机上使用了它,作为使用同一台机器的各种用户之间的处理器时间共享技术的解决方案。 当您在云中设置VPS时-这就是您所获得的虚拟机。
但是随着Docker等新技术的出现,虚拟化变得越来越流行。 旧技术非常健壮和高效,但是它们引入了更多的复杂性而不是降低了复杂性。 Docker进行了革命性的工作-通过提供每个开发人员可以立即使用的易于使用的工具,简化了整个工作流程。 此外,它还允许您将整个体系结构抽象为单个配置文件,您可以轻松地在项目存储库中共享该配置文件。
无论如何,本文都不是Docker或虚拟化的简介。 它是可以在几乎任何项目中应用的技术的炫耀,它将加速您的开发,部署和测试过程。

我们相信,无论是设置简单的前端应用程序还是创建100个微服务的解决方案,项目设置都不会有任何不同。 这就是为什么在每个项目中都设置一个boostrap存储库的原因,该存储库由配置文件和主要docker-compose文件组成,该文件描述了不同部分的组合方式。 这是设置项目时要获取的主要存储库。 使用一个简单的命令,您就可以获取所有项目模块 。 当项目更改或添加新模块时,这具有很大的优势。
运行项目后,您可以开始修改项目。 如果您的docker-compose设置正确,则可以对所有项目进行实时重新加载,因此无需在每次更改内容时手动重建模块。
有时,您必须使用的项目具有如此多的服务,以至于无法在一台机器上运行所有项目。 幸运的是,您可以指定服务之间的依赖关系,以告知docker哪些组件对于运行它至关重要。 然后,您可以只运行要使用的服务,引导程序将为您启动所有依赖项。
如果需要,可以为数据库提供固定装置,该固定装置将自动加载,因此每个开发人员和测试人员都可以在一个全新的环境中使用所有帐户和数据。 您是否曾经因为本地计算机上没有足够的数据或没有具有适当特权的用户而在测试功能方面遇到问题? 使用此解决方案,不再需要其他固定装置。
我曾经在一个没有设置的项目中工作。 我当时在开发前端,一年后发现后端开发人员从未为应用程序设置前端,也从未端对端地测试他们的任务,这让我感到惊讶。 这主要是因为他们很难在计算机上设置和维护其他组件。 使用我们的新设置,前端将自动更新并运行,并且不使用它不会有任何好处。

我们最近开源了我们的引导存储库解决方案,因此您可以立即开始使用它。 只需转到bootstra-bootstrap存储库,克隆该存储库,即可开始对其进行操作。
整个存储库仅包含三个文件:bootstrap.sh,这是我们用于运行和管理所有依赖项的bash工具。 在modules.txt您可以找到运行项目所需的所有模块的列表。 docker-compose.yml是一个标准的compose文件,其中包含有关模块的所有信息,并为进程提供环境变量。 要运行所有模块,只需调用以下命令:

  ./bootstrap.sh向上 

有关详细文档,请访问我们的存储库。

使用引导存储库具有许多优点。 对于开发人员,它可以加快设置和开发过程。 它还鼓励他们尝试新技术,因为它消除了建立全新环境的开销。 在一个项目中,我们有python后端与php和node.js中的微服务通信。
管理员和开发人员可以使用现成的配方来设置项目。 Bootstrap存储库是某种程度上的体系结构文档。
它还可以轻松实现端到端测试的自动化。 您可以具有从主要配置继承的单独配置,以运行自动和手动tet。
如果您有想法或想要扩展我们的项目,欢迎提出问题和提出要求!


喜欢它? 点击the按钮! 谢谢!

您可以在Twitter和GitHub上找到我。