前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >微服务架构系列01:容器设计原则

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

作者头像
首席架构师智库
发布2020-02-18 11:58:13
7050
发布2020-02-18 11:58:13
举报
文章被收录于专栏:超级架构师

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

首席架构师 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/

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-02-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 首席架构师智库 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 微服务架构系列:容器设计原则
  • 容器的设计原则
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档