基础知识:容器在微服务架构中的作用
的企业在过去的二十年中,应用程序部署的方法发生了巨大的变化。作为低成本商品的服务器在90年代末和21世纪初,大型机被取代,公司终于找到了一种负担得起的方式隔离他们的申请来自彼此。他们能够进行部署一个主要服务到每个物理机器。他们还可以配置每个服务器,以满足其托管的应用程序的资源和安全需求。这很方便,因为如果服务器宕机,只有一个应用程序会受到影响。这导致了巨大的增长数据中心内的服务器数量——这不仅变得越来越难以管理,而且导致许多服务器未得到充分利用。
然后是一个新的时代虚拟机(vm)。这使得可以使用相同的硬件来托管,从而更好地利用计算资源2022世界杯阿根廷预选赛赛程多个服务器,每台机器都以自己的方式作为独立的机器运行。然而,在过去的几年里,组织已经开始采用一种不同的方法分区基础设施还有一种新型的应用程序体系结构——使用容器和microservices,分别。本指南简要解释了什么是容器和微服务——它们的优点、缺点以及它们之间的共生关系。
什么是容器?
容器是虚拟机的轻量级替代品孤立的工作负载的操作环境。他们使用不同的方法抽象2022世界杯阿根廷预选赛赛程资源。容器不使用管理程序,而是共享内核安装主机操作系统。因此,它们避免了一个成熟的操作系统的基础设施开销,并且只提供那些资源(例如,2022世界杯阿根廷预选赛赛程安装,依赖关系,代码),这是应用程序实际需要的。这意味着他们可以更快地停止和开始应对波动的扩展要求,提供比虚拟机更好的整体性能。
什么是微服务?
微服务架构是一种软件设计方法,其中将应用程序分解为一个分布式阵列松散耦合的服务。每个微服务执行自己的特定功能独立组成应用程序的其他微服务。微服务可以部署到专用的VM,在某些情况下,这样做可能是有意义的。然而,一般来说,微服务更适合容器,它提供细粒度控制超额资源分配和更有效地使用您的计算能力。
优势
除了更好的性能和更低的基础设施占用之外,容器化微服务通常比传统的单片应用程序更健壮。例如,如果将整个应用程序部署到VM,当机器宕机时,整个应用程序也会随之宕机。但是,使用容器,您可以跨较小的vm集群复制微服务。因此,在VM发生故障的情况下,应用程序仍然能够使用集群中的其他微服务并继续运行。
而且,你可以更新代码和补丁每个微服务的运行环境都是单独的,独立的,而不会导致故障中断到您的应用程序的整体运行,从而有助于消除停机检修时间。
容器化的微服务也让开发人员的工作更轻松。每个微服务都是一个相对较小的独立组件,它允许编码人员处理自己的特定任务,而不会不必要地卷入整个应用程序的复杂性中。此外,容器化应用程序使他们可以自由地用最适合自己的语言编写每个服务。
容器也非常便携,易于使用持续集成(CI)和持续交付(CD)管道,这有助于进一步提高生产率。每个微服务都有一个较小的攻击表面并且与其他微服务隔离。这使得安全漏洞更难以从一个容器传播到另一个容器。
缺点
尽管微服务架构正迅速成为高可伸缩和高成本效益工作负载的应用程序设计选择,但它仍然是一个不可避免的问题不银弹。例如,它可能不适合遗产在应用程序中,重新构建代码库所涉及的工作可能是一场复杂而昂贵的后勤噩梦。
此外,基于微服务的应用程序更复杂的测试和部署。它们也是基于动态基础设施,其中容器不断启动和关闭。这可能会使部署、监视和管理更具挑战性。由于容器是一次性的、短暂的环境,因此需要一种将数据写入其中的方法持久存储在你的容器外面。
集装箱编配
容器编排工具为您提供了一种跨微服务集群提供、配置、协调、扩展和监控容器的方法。主要的开源解决方案包括Kubernetes,便,以及Docker的本地集群引擎,群。虽然Kubernetes是使用最广泛的,但每个产品都带来了一些略有不同的东西,比如灵活性、功能深度和易用性。
基本上,所有编排引擎都能够:
- 在容器之间分配计算资源2022世界杯阿根廷预选赛赛程
- 根据应用程序工作负载添加或删除容器
- 管理容器之间的交互
- 监视容器的运行状况
- 平衡微服务之间的负载
Microservices模式
随着企业采用容器技术,解决方案架构师面临的挑战是如何最好地分解应用程序变成更小的自治服务。微服务模式是一组已建立的拓扑为给定应用程序的体系结构建模。
微服务模式的概念相对较新,而且还在不断发展。然而,目前出现的共同模式是基于下列战略:
- 分裂将设计用于各种用途的大型遗留应用程序升级为执行更多离散业务功能的小型容器化任务。
- 逐步将应用程序中的现有功能替换为单个功能集装箱组件直到整个系统被完全重构。
- 使用不同的微服务来提供不同的服务浏览器的格式(桌面、移动和平板电脑)。
- 创建两个复合仅委托任务和的容器服务单一的集中执行这些单独任务的微服务。
- 设计一个服务网络以获得最大的性能和弹性。
了解更多关于容器的知识
发布日期:2020年6月22日
最后更新:2021年3月17日