【问题标题】:How do I manage micro services with DevOps?如何使用 DevOps 管理微服务?
【发布时间】:2019-11-03 21:50:33
【问题描述】:

假设我有一个front end 节点和三个支持的节点toolsblogstore。每个节点都相互通信。这些节点中的每一个都有自己的一组语言和库,并且有自己的Dockerfile

我了解单个单体 Web 应用程序的 DevOps 生命周期,但无法确定 DevOps 管道如何用于微服务。

  • 是否每个微服务都有自己的 github 存储库和 CI/CD 管道?
  • 如何保持版本同步?假设tools 微服务使用blog 2.3 版。但是blog 刚刚被推送到 2.4 版,与tools 不兼容。如何使 stagingproduction 环境与它们应该依赖的版本保持同步?
  • 如果我将服务tools 部署到多个不同的服务器,其IP 可能会改变,其他服务如何找到该服务的最近位置?
  • 对于单体应用程序,我可以运行一个命令并简单地导航到一个站点以与我的代码进行交互。使用多种不同服务进行本地开发的良好做法是什么?
  • 我可以去哪里了解更多信息?

【问题讨论】:

标签: microservices devops


【解决方案1】:
  • 是否每个微服务都有自己的 github 存储库和 CI/CD 管道?

根据我的经验,你可以两者兼得。我看到一些团队将多个微服务放在一个存储库中。 我们将每个微服务放在一个单独的存储库中,因为 Jenkins 管道是在通用中构建的 以这种方式构建它们的方法。这包括在特定目录中包含一些配置文件,例如 “/Scripts/microserviceConf.json” 在某些情况下,这对我们有所帮助。一般来说,您还应该考虑成本,因为 GitHub 有定价模型 这确实考虑了您拥有多少私人存储库。

  • 如何保持版本同步?假设工具微服务使用博客版本 2.3。但是博客刚刚被推送到 2.4 版, 与工具不兼容。我如何保持分期和生产 环境同步到他们应该依赖哪个版本?

您需要向后兼容。意味着如果您的博客 2.4 版本与工具 2.3 版本不兼容,您将具有高度依赖性 和耦合再次成为微服务的主要优势之一。有很多方法可以解决这个问题。 您可以在微服务中引入版本控制系统。如果你有一个刹车改变让我们说你需要支持的 api 旧版本仍然有一段时间,并创建了新 api 的新 v2。像 POST "blogs/api/blog" 然后会有一个新的 api POST "blogs/api/v2/blog" 将有新的功能和工具微服务将有一些你支持的时间 bot api,因此它可以迁移到 v2。 另请查看语义版本控制here

  • 如果我将服务工具部署到多个不同的服务器,其 IP 可能会更改,其他服务如何找到最近的 这项服务的位置?

我不太清楚你在这里的意思。但这朝着微服务编排的方向发展。通常是您的云提供商特定的 服务有工具来处理这个问题。您可以查看 AWS ECS 和/或 AWS EKS Kubernetes 服务以及他们是如何做到的。

  • 对于单体应用程序,我可以运行一个命令并简单地导航到一个站点以与我的代码进行交互。什么是好的做法 使用多种不同的服务进行本地开发?

我建议使用 docker 和 docker-compose 来创建您的开发设置。您将创建 docker 的本地开发网络 代表整个系统的容器。这将包括:您的微服务、基础设施(数据库、缓存、助手)等。您可以在此答案here 中了解更多信息。它在“考虑开发设置”部分中进行了描述。

我可以去哪里了解更多信息?

有多种学习资源。有些是:

  1. https://microservices.io/

  2. https://www.datamation.com/applications/devops-and-microservices.html

  3. https://www.mindtree.com/blog/look-devops-microservices

  4. https://docs.microsoft.com/en-us/dotnet/standard/microservices-architecture/multi-container-microservice-net-applications/multi-container-applications-docker-compose

【讨论】:

  • 很遗憾没有。这里有几个主题要涵盖,我不确定是否有一本书将所有这些内容合二为一。随着时间的推移,我通过实践项目的经验了解到这一点。以及多个喜欢的来源:博客、视频课程、书籍。没有一个单一的来源可以涵盖所有内容,至少据我所知没有。您可以查看有关微服务和 DevOps 的 Pluralsight 课程。我认为这是最接近您正在寻找的东西。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-06
  • 2019-01-25
  • 2019-05-13
  • 2020-02-20
  • 2020-04-26
  • 2020-01-31
相关资源
最近更新 更多