架构模式: 服务实例与容器一一对应

架构模式: 服务实例与容器一一对应

上下文

您已应用微服务架构模式并将系统架构为一组服务。每个服务都部署为一组服务实例,以实现吞吐量和可用性。

问题

如何打包和部署服务?

要点

  • 服务使用各种语言,框架和框架版本
  • 编写每个服务包含多个服务实例
  • 用于吞吐量和可用性服务必须是可独立部署的
  • 可扩展的服务实例需要彼此隔离
  • 您需要能够快速构建和部署服务
  • 您需要能够约束服务所消耗的资源(CPU和内存)
  • 您需要监视每个服务实例的行为
  • 您希望部署可靠
  • 您必须尽可能经济高效地部署应用程序

解决方案

将服务打包为(Docker)容器映像,并将每个服务实例部署为容器

例子

Docker正在成为一种非常流行的打包和部署服务的方式。每个服务都打包为Docker镜像,每个服务实例都是Docker容器。有几个Docker集群框架,包括:

结果上下文

这种方法的好处包括:

  • 通过更改容器实例的数量可以直接扩展和缩小服务。
  • 容器封装了用于构建服务的技术的细节。例如,所有服务都以完全相同的方式启动和停止。
  • 每个服务实例都是隔离的容器对服务实例消耗的CPU和内存施加限制容器的构建和启动速度非常快。例如,将应用程序打包为Docker容器比将其打包为AMI要快100倍。Docker容器的启动速度也比VM快得多,因为只有应用程序进程启动而不是整个操作系统。

这种方法的缺点包括(现在感觉已经非常成熟了):

  • 部署容器的基础架构不如部署虚拟机的基础架构丰富。

关联模式

  • 此模式是每个主机模式的服务实例的细化。
  • 每个VM模式的服务实例是另一种解决方案
  • 无服务器部署模式是另一种解决方案。

原文地址:https://www.cnblogs.com/paxlyf/p/11289000.html

时间: 2024-11-08 21:04:39

架构模式: 服务实例与容器一一对应的相关文章

架构模式: 服务集成契约测试

架构模式: 服务集成契约测试 上下文 您已应用微服务架构模式.该应用程序包含许多服务.服务通常会调用其他服务.您必须编写自动化测试,以验证服务是否正常运行. 问题 如何轻松测试服务是否提供了客户期望的API? 要点 端到端测试(即启动多个服务的测试)是困难,缓慢,脆弱和昂贵的. 结论 服务的测试套件,由使用它的另一个服务的开发人员编写.测试套件验证服务是否满足消费者服务的期望. 例子 Spring Cloud Contract是一个支持这种测试方式的开源项目. 结果上下文 这种模式具有以下好处:

每个主机一个服务实例

本文说明了微服务架构的部署模式之一:每个主机一个服务实例. 场景 已经通过微服务架构的分解模式(参考按业务领域分解模式划分微服务),将整个应用程序划分为多个独立的微服务. 目标 每个服务由多个服务实例组成,用于提高吞吐量和可用性. 服务必须可独立部署和扩展. 服务实例需要彼此隔离. 需要能够快速构建和部署服务. 需要能够约束服务所消耗的资源(CPU和内存). 需要监视每个服务实例的性能和行为. 部署必须是可靠的. 部署必须是经济高效的. 方法 在同一个主机(通常是虚拟机)上运行一个服务的一个实例

微服务架构模式简介

转自 http://blog.jobbole.com/96948/ 在2014年,Sam Newman,Martin Fowler在ThoughtWorks的一位同事,出版了一本新书<Building Microservices>.该书描述了如何按照Microservice架构模式设计及搭建一个具有良好扩展性并可持续开发的系统.除此之外,该书还将基于该模式的系统演化流程与Continuous Delivery等当前甚为流行的开发流程结合在了一起,使得Microservice架构模式看起来非常具

【转】微服务架构模式简介

在2014年,Sam Newman,Martin Fowler在ThoughtWorks的一位同事,出版了一本新书<Building Microservices>.该书描述了如何按照Microservice架构模式设计及搭建一个具有良好扩展性并可持续开发的系统.除此之外,该书还将基于该模式的系统演化流程与Continuous Delivery等当前甚为流行的开发流程结合在了一起,使得Microservice架构模式看起来非常具有吸引力.基于这些原因,该架构模式迅速被业界所熟知,并在多个产品中被

MicroService 微服务架构模式简述

原文是 Martin Flower 于 2014 年 3 月 25 日写的<Microservices>. 本文内容 微服务 微服务风格的特性 组件化(Componentization )与服务(Services) 围绕业务功能的组织 产品不是项目 强化终端及弱化通道 分散治理 分散数据管理 基础设施自动化 容错性设计 设计改进 微服务是未来吗 其它 微服务系统多大 微服务与SOA 多语言多选择 实践标准和强制标准 让做对事更容易 断路器circuit breaker和产品中现有的代码 同步是

微服务与K8S容器云平台架构

微服务与K8S容器云平台架构 微服务与12要素 网络 日志收集 服务网关 服务注册 服务治理- java agent 监控 今天先到这儿,希望对技术领导力, 企业管理,系统架构设计与评估,团队管理, 项目管理, 产品管理,团队建设 有参考作用 , 您可能感兴趣的文章: 领导人怎样带领好团队构建创业公司突击小团队国际化环境下系统架构演化微服务架构设计视频直播平台的系统架构演化微服务与Docker介绍Docker与CI持续集成/CD互联网电商购物车架构演变案例互联网业务场景下消息队列架构互联网高效研

服务的扩展性(如何创建具有可扩展性的服务实例,缓存以及数据库)

转自:http://www.cnblogs.com/loveis715/p/5097475.html 在编写一个应用时,我们常常考虑的是该应用应该如何实现特定的业务逻辑.但是在逐渐发展出越来越多的用户后,这些应用常常会暴露出一系列问题,如不容易增大容量,容错性差等等.这常常会导致这些应用在市场的拓展过程中无法快速地响应用户的需求,并最终失去商业上的先机. 通常情况下,我们将应用所具有的用来避免这一系列问题的特征称为非功能性需求.相信您已经能够从字面意义上理解这个名词了:功能性需求用来提供对业务逻

《企业应用架构模式中文版》学习笔记(转)

本书先介绍了一些企业应用开发的基础知识,比如分层架构.WEB表现.业务逻辑.数据库映射.并发.会话.分布策略等等.通过使用场景.解决方案.UML等手段详细介绍了设计模式(包括一些常用的设计模式GOF23和本书上新创的设计模式).了解书中这些模式是干什么的.它们解决什么问题.它们是如何解决问题的.这样,如果你碰到类似的问题,就可以从书中找到相应的模式.可以为你节约成本.缩短项目周期时间.避免风险,以确保项目能够完美的完成. 一.三个基本层次:表现层.领域层.数据源层 层次 职责 表现层 提供服务,

熟悉基于JSP和Servlet的Java Web开发,对Servlet和JSP的工作原理和生命周期有深入了解,熟练的使用JSTL和EL编写无脚本动态页面,有使用监听器、过滤器等Web组件以及MVC架构模式进行Java Web项目开发的经验。

熟悉基于JSP和Servlet的Java Web开发,对Servlet和JSP的工作原理和生命周期有深入了解,熟练的使用JSTL和EL编写无脚本动态页面,有使用监听器.过滤器等Web组件以及MVC架构模式进行Java Web项目开发的经验. 1.说一说Servlet生命周期(非常重要) Servlet生命周期包括三部分: 初始化:Web容器加载servlet,调用init()方法 只执行一次 处理请求:当请求到达时,运行其service()方法.service()自动调用与请求相对应的doXXX