docker - docker的UML部署图

标签 docker deployment containers uml

我正在尝试制作一个具有 docker 的部署图,我明白 <<device node>>用于表示物理设备。 <<execution environment>>节点代表软件运行的环境。

由于我将 docker 容器表示为节点,所以我很困惑应该如何表示图像?

在我的图表中,我创建了一个代表 docker 容器的节点以及代表各种图像的内部工件。
我想知道这是否是正确的表示?

最佳答案

UML 语义主要依赖于节点,节点可以分割为 «device»«executionEnvironment»:

Nodes may be further sub-typed as Devices and ExecutionEnvironments. Devices represent physical machine components. ExecutionEnvironments represent standard software systems that application components may require at execution time. Specific profiles might, for example, define stereotypes for ExecutionEnvironments such as «OS», «workflow engine», «database system», and «J2EE container».

相比之下,Docker容器定义:

Containers are an abstraction at the app layer that packages code and dependencies together. Multiple containers can run on the same machine and share the OS kernel with other containers, each running as isolated processes in user space.

根据(UML)书,它不会是一个设备,因为物理层丢失了。但有人可能会争辩说,虚拟设备可以被视为一种特殊类型的设备。尽管如此,Docker本身还是反对容器技术和虚拟机。这应该导致我们将其视为执行环境。更重要的是,还引用了其他容器技术作为执行环境的示例。

由于执行环境可以嵌套,因此在 docker 执行环境中使用操作系统作为嵌套执行环境不会有问题。

一种不太含糊的方法是定义您自己的专用配置文件:然后您可以定义构造型 «DockerContainer»«VirtualMachine» 来添加缺少的表达能力到节点。

关于docker - docker的UML部署图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74543991/

相关文章:

mysql - 将 mysql 服务器与 docker 一起使用的最佳方法是什么?

java - 使用 Spring 和 Maven 时,将代码部署到服务器的最佳方式是什么?

asp.net - 发布 Web 应用程序时如何包含未引用的 dll?

java.sql.SQLException : Opening db :'DB-NAME.sqlite' : Permission denied

css - 父级 DIV 以匹配子级高度

docker - kubernetes pod 的日志究竟来自哪里(在容器级别)?

docker - Spring Boot 容器无法连接到 Kafka 容器

php - Docker-Symfony-Mysql : SQLSTATE[HY000] [2002] Connection refused

php - 带有 Symfony 和 PHP-FPM 的 NGINX SSI

docker - 将 IBM Containers (Dockers) 连接到 Watson IoT 服务实例