代码之家  ›  专栏  ›  技术社区  ›  Charles Langlois

将实用程序提取到python微服务应用程序库中

  •  -1
  • Charles Langlois  · 技术社区  · 6 年前

    热释光;DR:关于将代码提取到可重用的、结构良好的和可维护的库中,有什么建议或参考资料吗?

    我正在一个微服务风格的体系结构中研究python应用程序,在这个体系结构中,我们将开发和部署一组小型应用程序,每个应用程序解决一个特定的问题,可能(也可能不是)通过与其他应用程序/外部服务交互。

    我们刚刚开始转向微服务架构,所以我们已经在一个整体项目中有了相当多的代码。当我们添加新的微服务时,很明显我们需要将公共代码(例如实用程序、基类等)提取到库中,以避免重新实现或复制粘贴代码,这些代码随后必须单独维护。当我试着这么做的时候(我以前从来没有真正这么做过),我意识到这不是一件小事,而且很快就会变得复杂,我也可能会花一些时间去过度思考。

    我面临的具体问题/挑战:
    *如何在版本控制中最好地分组/分离代码。比如,每个包一个存储库?存储库的数量会很快爆炸。。。

    1 回复  |  直到 6 年前
        1
  •  1
  •   Will C    6 年前

    对于共享库,您可以将其发布到各个存储库中的git,并将其设置为使用Python包管理器在项目中安装它们。

    至于应用程序部署、服务依赖性等,我建议您看看Docker for Containeriation、Docker compose for service dependencies Local、Artifactory或ECR for Docker image registries以及容器编排平台(如Kubernetes)。

    如果你没有太多的微服务,你肯定可以使用mono-repo,但是如果你的工程组织很大,那么下载所有服务的更新是相当昂贵的。另一种选择是,您可以让您的服务在各自的有界上下文中进行划分,所有服务都存在于一个回购协议中,以消除这种威慑。长话短说,这真的取决于你会发现什么有益的。归根结底,最大的问题永远不是你有多少Git存储库,而是你如何定义你的服务的界限,服务到服务的通信和部署服务的基础设施。