Microservices 如何使用DevOps管理微服务?

Microservices 如何使用DevOps管理微服务?,microservices,devops,Microservices,Devops,假设我有一个前端节点和三个后台节点工具,博客,以及存储。每个节点都相互通信。每个节点都有自己的一组语言和库,并有自己的Dockerfile 我了解单个单一web应用程序的DevOps生命周期,但无法了解DevOps管道如何为微服务工作 每个微服务是否都有自己的github回购协议和CI/CD管道 如何保持版本同步?假设工具微服务使用博客版本2.3。但是,blog刚刚被推到了2.4版,它与工具不兼容。如何使暂存和生产环境与它们应该依赖的版本保持同步 如果我正在将服务工具部署到多个不同的服务器,这

假设我有一个
前端
节点和三个后台节点
工具
博客
,以及
存储
。每个节点都相互通信。每个节点都有自己的一组语言和库,并有自己的
Dockerfile

我了解单个单一web应用程序的DevOps生命周期,但无法了解DevOps管道如何为微服务工作

  • 每个微服务是否都有自己的github回购协议和CI/CD管道
  • 如何保持版本同步?假设
    工具
    微服务使用
    博客
    版本2.3。但是,
    blog
    刚刚被推到了2.4版,它与
    工具
    不兼容。如何使
    暂存
    生产
    环境与它们应该依赖的版本保持同步
  • 如果我正在将服务
    工具
    部署到多个不同的服务器,这些服务器的IP可能会发生变化,那么其他服务如何找到此服务的最近位置
    
  • 对于单片应用程序,我可以运行一个命令,只需导航到一个站点即可与代码交互。使用几种不同的服务在本地开发的良好实践是什么
  • 我在哪里可以学到更多
  • 每个微服务是否都有自己的github回购协议和CI/CD管道
根据我的经验,你可以两者兼得。我看到一些团队将多个微服务放在一个存储库中。 我们将每个微服务放在一个单独的存储库中,因为Jenkins管道是在一个通用存储库中构建的 以这种方式建造它们的方法。这包括在特定目录中包含一些配置文件,如 “/Scripts/microserviceConf.json” 这在某些情况下对我们有所帮助。一般来说,你也应该考虑成本,因为GITHUB有定价模型。 这会考虑到您有多少个私有存储库

  • 如何保持版本同步?比如说工具微服务使用博客2.3版。但博客刚刚被推到了2.4版,它 与工具不兼容。我如何保持阶段性和生产性 同步环境应依赖于哪个版本
你需要向后兼容。意味着如果你的博客2.4版本与工具2.3版本不兼容,你将具有高度依赖性 耦合也是微服务的关键优势之一。有很多方法可以避免这种情况。 您可以在micro服务中引入版本控制系统。如果您有一个刹车的变化,让我们说一个api,你需要支持 旧版本仍然存在一段时间,并创建了新api的新v2。像POST“blogs/api/blog”一样,将有一个新的api 发布“blogs/api/v2/blog”,它将具有新的功能和工具,微服务将有一些你支持的时间 bot api是可以迁移到v2的。 还要看一下语义版本控制

  • 如果我将服务工具部署到多个不同的服务器上,这些服务器的IP可能会发生变化,那么其他服务如何找到最近的服务器 此服务的位置
我不太清楚你在这里的意思。但这是朝着微服务编排的方向发展的。通常是您的云提供商特定的 服务提供了处理此问题的工具。您可以查看AWS ECS和/或AWS EKS Kubernetes服务以及它们是如何实现的

  • 对于单片应用程序,我可以运行一个命令,只需导航到一个站点即可与代码交互。什么是良好做法 为了在当地发展多种不同的服务
我建议使用docker和docker compose来创建开发设置。您将创建docker的本地开发网络 代表整个系统的容器。这将包括:您的微服务、基础设施(数据库、缓存、助手)和其他。你可以在这个答案中了解更多。“考虑开发设置”一节对此进行了描述

我在哪里可以学到更多

学习这一点有多种来源。其中包括:


  • 不幸的是,没有。这里有几个主题要讨论,我不确定是否有一本书把所有这些东西都放在了一起。随着时间的推移,我从项目的实际经验中学到了这一点。还有多个类似的来源:博客、视频课程、书籍。至少据我所知,没有一个单一的信息来源涵盖所有信息。您可以查看有关微服务和DevOps的Pluralsight课程。我想这是最接近你想要的。