专栏首页智能计算时代微服务架构系列01:容器设计原则

微服务架构系列01:容器设计原则

微服务架构系列:容器设计原则

首席架构师 2020-02-11 23:31

微服务提供了巨大的好处,但也带来了巨大的新挑战。在创建基于微服务的应用程序时,微服务体系结构模式是最基本的支柱。

在本指南的前面,您学习了关于容器和Docker的基本概念。这是开始使用容器所需的最低信息。尽管,即使容器是微服务的推动者,并且非常适合微服务,但是它们对于微服务体系结构来说并不是必需的,并且本体系结构部分中的许多体系结构概念也可以在没有容器的情况下应用。但是,由于已经介绍了容器的重要性,本指南主要关注两者的交集。

企业应用程序可能很复杂,通常由多个服务组成,而不是单个基于服务的应用程序。对于这些情况,您需要了解附加的体系结构方法,例如微服务和某些域驱动设计(DDD)模式,以及容器编制概念。注意,本章不仅描述容器上的微服务,而且还描述任何容器化的应用程序。

容器的设计原则

在容器模型中,容器映像实例表示单个进程。通过将容器映像定义为流程边界,您可以创建可用于扩展流程或对其进行批处理的原语。

当您设计一个容器映像时,您将在Dockerfile中看到一个入口点定义。这定义了生命周期控制容器生命周期的进程。当流程完成时,容器生命周期结束。容器可以表示长时间运行的流程,比如web服务器,也可以表示短时间运行的流程,比如批处理作业,这些作业以前可能是作为Azure WebJobs实现的。

如果流程失败,容器将结束,协调器将接管。如果协调器被配置为保持五个实例运行而其中一个失败,协调器将创建另一个容器实例来替换失败的流程。在批处理作业中,使用参数启动流程。当流程完成时,工作就完成了。这个指导稍后会逐步深入到协调器上。

您可能会发现希望多个进程在一个容器中运行的场景。对于该场景,因为每个容器只能有一个入口点,所以可以在容器中运行脚本,根据需要启动任意多的程序。例如,您可以使用Supervisor或类似的工具在一个容器中启动多个进程。然而,即使您可以找到每个容器包含多个进程的体系结构,这种方法也不是很常见。

原文:https://docs.microsoft.com/en-us/dotnet/architecture/microservices/architect-microservice-container-applications/

本文分享自微信公众号 - 首席架构师智库(jiagoushipro),作者:南极真君

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-02-11

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 「第一部:容器和Docker」(1) 容器和Docker 简介

    容器化是一种软件开发方法,其中应用程序或服务、其依赖项和其配置(抽象为部署清单文件)作为容器映像打包在一起。容器化应用程序可以作为一个单元进行测试,并作为容器映...

    首席架构师智库
  • 「第二部:容器和微服务架构](17) 编排微服务和多容器应用程序

    如果您的应用程序基于微服务或只是跨多个容器拆分,那么使用面向生产的应用程序的编排器是必不可少的。如前所述,在基于微服务的方法中,每个微服务都拥有自己的模型和数据...

    首席架构师智库
  • 「第二部:容器和微服务架构」(2) 容器化单体应用

    您可能需要构建一个单独的、整体部署的web应用程序或服务,并将其部署为一个容器。应用程序本身可能不是内部单一的,而是由几个库、组件甚至层(应用程序层、域层、数据...

    首席架构师智库
  • 重磅!K8S 1.18版本将内置支持SideCar容器。

    Kubernetes的目标不仅是使分布式应用程序的部署和运维变得简单可靠,还旨在能轻松地创建“云原生”应用程序,即易于创建在云环境中运行的分布式应用程序和服务,...

    justmine
  • ofo 基于 K8S 容器云平台的实践

    | 为 | 容 | 器 | 技 | 术 | 而 | 生 |

    CNCF
  • 重磅!K8S 1.18版本将内置支持SideCar容器。

    Kubernetes的目标不仅是使分布式应用程序的部署和运维变得简单可靠,还旨在能轻松地创建“云原生”应用程序,即易于创建在云环境中运行的分布式应用程序和服务,...

    架构师修行之路
  • 关于监视容器我们了解的5件事

    本文将介绍如何构建一个管理上万容器的可扩展的,高可靠的监控系统。本文是基于 Sysdig 容器监控工具的构建经历编写,如果您决定开发自己的工具,以下的设计决策可...

    张张张我是张
  • NVIDIA NGC 容器现在开放更多使用者、更多应用程序、更多平台使用

    NVIDIA在 SC18 发表的全新多节点容器、与 Singularity 容器的兼容性及 NGC-Ready 计划,让更多人能接触到资料科学、人工智能和 HP...

    GPUS Lady
  • 『中级篇』容器的资源限制(22)

    IT故事会
  • 大白话讲解Promise(一)一文 的学习+新领悟

    1、Promise是一个构造函数,自己身上有all、reject、resolve、then、catch。。。。。

    申君健

扫码关注云+社区

领取腾讯云代金券