热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

Docker实现中的微服务

如何解决《Docker实现中的微服务》经验,为你挑选了1个好方法。

我们正在使用Amazon fargate使用Docker容器编写第一个微服务。我们对使用Spring Boot的实现水平有很多疑问

我们将在项目中提供多个微服务,这是一种好的做法,我们将所有微服务都写在一个容器中,还是我必须为单独的微服务创建单独的Docker容器。我们以节省成本的方式使用单个容器,但是这将来会对我们的项目结构造成任何问题吗?

我们正计划在AWS fargate中部署该应用程序,并且我们的应用程序将具有很大的扩展空间,可以在将来扩展,并预计将提供约100至150种不同的微服务。在这种情况下,如果我们也将所有这些微服务也上传到不同的容器中,是否具有成本效益?



1> Graham Lea..:

使用微服务时要记住的最重要的一点是,它们并不是主要解决技术问题,而是组织问题。因此,当我们查看组织是否应该使用微服务以及如何部署这些服务时,我们需要查看组织是否存在微服务样式可以解决的问题。

那么,关于您的体系结构问题的答案将主要取决于技术团队的规模,组织结构,产品的使用年限,您当前的部署实践以及在中期内可能发生的变化。

例如,如果您的组织:

少于25名技术人员,

分为1或2组,

每个都可以在产品的任何部分上使用,

还不到12个月的时间,

并定期(例如每天,每周,每月)一次部署,

而且组织不会迅速发展,

那么您几乎肯定会现在暂时忘记微服务。在这样的情况下,团队仍然是学习领域的新手,因此可能不了解他们真正了解将系统拆分为分布式体系结构的好方法所需的全部知识。这意味着,如果他们现在将其拆分,他们可能稍后会希望更改边界,并且在您已经拥有分布式系统的情况下,这变得非常昂贵,而在整体架构中则要简单得多。而且,只有一个可以共同工作(和支持)系统任何部分的小团队,没有理由投资建立一个平台,单个团队可以部署和维护单个服务。在这个阶段,组织通常会更加关注寻找客户和快速迭代产品(甚至可能是产品),而不是使团队自治并建立大规模的弹性架构。在这一点上,整体架构很有意义,但是设计良好的整体,具有由API强制执行的清晰的组件边界,以及封装的数据访问权限,可轻松在以后将服务提取到单独的进程中。

让我们再进一步看一下,考虑一个组织...

超过50名技术人员,

分为7个小组,

每种仅适用于产品的特定区域,

3岁了

并且有团队希望独立于其他团队在做什么而部署他们的工作。

这样的组织肯定应该建立一个分布式架构。如果他们不这样做,而是让所有这些团队都在一个完整的团队中工作,那么他们将遇到各种组织问题,团队需要协调工作,发布会被延迟,而一个团队要完成对新功能补丁的质量检查部署给员工和客户带来了极大的麻烦。此外,对于成熟的产品,组织应该对领域有足够的了解,以便能够合理地将领域和团队(按此顺序;请参阅康韦定律)划分为明智的自治部门,这些部门可以在不断进步的同时最大程度地减少协调。

您似乎已经选择了微服务。根据您在上面的尺度上所处的位置,也许您想重新考虑该决定。

如果您想继续使用微服务进行开发,但是将它们全部部署在一个容器中,请知道这没有错如果适合您组织的当前工作方式。将来会给您的项目结构带来麻烦吗?好吧,如果您成功了并且您的组织不断壮大,那么很可能会出现这种不再包含单个容器的部署的情况,特别是当团队开始拥有服务并希望仅部署其服务而不部署整个应用程序时。但是,这种自治将以额外的工作和复杂性为代价,并且在此时此刻可能不会给您带来任何好处。仅仅因为它将来不是您系统的正确方法,并不意味着它不是当今的正确方法。诀窍是留意并知道何时进行额外投资。


推荐阅读
  • 本文探讨了如何在日常工作中通过优化效率和深入研究核心技术,将技术和知识转化为实际收益。文章结合个人经验,分享了提高工作效率、掌握高价值技能以及选择合适工作环境的方法,帮助读者更好地实现技术变现。 ... [详细]
  • 科研单位信息系统中的DevOps实践与优化
    本文探讨了某科研单位通过引入云原生平台实现DevOps开发和运维一体化,显著提升了项目交付效率和产品质量。详细介绍了如何在实际项目中应用DevOps理念,解决了传统开发模式下的诸多痛点。 ... [详细]
  • 深入解析Serverless架构模式
    本文将详细介绍Serverless架构模式的核心概念、工作原理及其优势。通过对比传统架构,探讨Serverless如何简化应用开发与运维流程,并介绍当前主流的Serverless平台。 ... [详细]
  • 本文深入探讨了MySQL中常见的面试问题,包括事务隔离级别、存储引擎选择、索引结构及优化等关键知识点。通过详细解析,帮助读者在面对BAT等大厂面试时更加从容。 ... [详细]
  • 本文探讨了现代分布式架构的多样性,包括高并发、多活数据中心、容器化、微服务、高可用性和弹性架构等,并介绍了与这些架构相关的重要管理技术,如DevOps、应用监控和自动化运维。文章还深入分析了分布式系统的核心概念、主要用途及类型,同时对比了单体应用与分布式服务化的优缺点。 ... [详细]
  • 本文探讨了Web开发与游戏开发之间的主要区别,旨在帮助开发者更好地理解两种开发领域的特性和需求。文章基于作者的实际经验和网络资料整理而成。 ... [详细]
  • 本文探讨如何配置 Nginx 以将传入请求反向代理到运行在本地绑定端口上的 Docker 容器,并解决常见的路径重定向问题。 ... [详细]
  • 本文详细介绍了如何使用Docker运行最简单的镜像,并创建第一个容器。通过具体的操作步骤和命令解释,帮助初学者快速上手Docker。完整课程请点击:Docker入门教程。 ... [详细]
  • 本文档详细介绍了如何构建和配置 EFKLK(Elasticsearch, Fluentd, Kibana, Kafka)日志采集工具链,包括命名空间创建、Elasticsearch 镜像拉取与容器运行、证书生成及配置、Helm 安装等步骤。 ... [详细]
  • 本文详细探讨了在微服务架构中,使用Feign进行远程调用时出现的请求头丢失问题,并提供了具体的解决方案。重点讨论了单线程和异步调用两种场景下的处理方法。 ... [详细]
  • 前言无论是对于刚入行工作还是已经工作几年的java开发者来说,面试求职始终是你需要直面的一件事情。首先梳理自己的知识体系,针对性准备,会有事半功倍的效果。我们往往会把重点放在技术上 ... [详细]
  • 本文作为SpringCloud Alibaba系列教程的第一部分,主要介绍如何搭建SpringCloud Alibaba的开发环境,帮助初学者快速入门。SpringCloud Alibaba是由阿里巴巴团队开源的一套微服务工具集,旨在简化分布式系统的构建过程。 ... [详细]
  • 容器与微服务基础:快速入门指南
    探索容器和微服务的基础知识,了解如何通过先进的应用性能管理(APM)工具提升监控效能。加入AppDynamics APM的导览,掌握容器与微服务实施及监控的最佳实践。 ... [详细]
  • SpringCloud电商平台开发指南:实战案例解析
    本文详细介绍了基于SpringCloud构建的电商平台项目,涵盖了从技术选型到项目部署的全流程,旨在帮助开发者快速掌握电商平台的开发技巧。 ... [详细]
  • Go 通过 Map/Filter/ForEach 等流式 API 高效处理数据
    go,通过,map,filter,foreach,等,流,式,ap ... [详细]
author-avatar
秋梯田那路77
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有