物理部署图

简介: 物理部署图描述系统运行时的硬件配置与软件部署结构,展现节点、构件、物件及连接关系,常用于理解分布式系统。它从运维视角出发,揭示应用如何在硬件上部署运行,是开发与运维协同的重要工具。

一、什么是物理部署图
部署图描述的是系统运行时的结构,展示了硬件的配置及其软件如何部署到网络结构中。一个系统模型只有一个部署图,部署图通常用来帮助理解分布式系统。
综上所述:物理部署图更多地是以运维的视角描绘运行时的系统的网络与部署结构。
二、为什么要画物理部署图?
一个好的开发人员要懂得一定的运维知识。
物理部署图核心要解决的是:应用工程(软件)怎么和硬件合到一起运行。
三、物理部署图核心元素

  1. 节点(Node)
    节点是存在于运行时的代表计算机资源的物理元素,可以是硬件也可以是运行于计算机上的软件系统:如ECS云服务器实例、或Kubernetes的节点Node。如下图:
    image.png

  2. 构建(Component)
    构件(component)是系统中遵从同一组接口且提供其实现的物理的、可替换的部分。每一个构件能实现一定的功能,为其他构件提供使用接口,方便软件的复用,使用构件最重要的是复用。个人将Kubernetes节点Node中的不同Pod理解为Node节点的不同构件。如下图所示:
    image.png

  3. 物件(Artifact)
    物件是指软件开发过程中的产物,包括过程模型(用例图等)、源代码、可执行程序(如jar包)等。如下图表示一个运行在节点实例中的Kubernetes Pod构建中的一个java可执行程序jar包。
    image.png

  4. 连接(Association)
    节点之间的连线表示系统之间进行交互的通信路径,这个通信路径成为连接,如下一节示例图所示,连接中有网络协议。

  5. 框架(Frame)
    一个或多个节点可以组成一个框架,其中节点也可以包括构建与物件等元素。如下图多个Kubernetes节点Node可以组成一个框架(k8s集群)。
    image.png

四、物理部署图示例
image.png

相关文章
|
存储 数据采集 Prometheus
深入调查研究
【10月更文挑战第28天】
297 2
|
3月前
|
Java 关系型数据库 MySQL
SpringSecurity
本课程面向具备SpringBoot、MyBatis、MySQL等基础的后端开发者,系统讲解SpringSecurity权限管理,涵盖认证原理、自定义认证、OAuth2.0集成等核心内容,配套完整源码与实战案例。
|
3月前
|
缓存 监控 NoSQL
支付方案专题
本文记录了一次Java应用CPU使用率异常升至104%的排查过程。通过分析发现,问题由Full GC频繁触发导致,根源在于将大体积Excel数据以List<Map>结构加载至JVM内存,造成堆内存膨胀且长期驻留。结合JProfiler工具定位到大对象后,提出“治本”(移出内存存入Redis)与“治标”(减少冗余字段)两类解决方案,并总结了排查思路:优先检查JVM而非机器监控,善用工具分析堆快照,结合代码逻辑与现象验证推断。
 支付方案专题
|
3月前
|
监控 Java 测试技术
OOM排查之路:一次曲折的线上故障复盘
本文复盘了线上服务因Paimon与RocksDB集成引发的三次OOM故障。从线程激增到堆外内存泄漏,排查过程曲折复杂,最终定位到SDK中RocksDB通过JNI申请内存未释放的根本原因,并通过架构优化解决。分享了MAT、NMT、async-profiler等工具的实战经验,总结了一套系统性的内存问题排查思路,为类似技术栈提供借鉴。
|
3月前
|
消息中间件 监控 Java
RocketMQ:底层Netty频繁OS OOM
本文记录了一例Java应用因Netty多ClassLoader加载导致堆外内存超限引发OS OOM的排查过程。通过NMT、Arthas等工具分析,发现多个中间件独立加载PooledByteBufAllocator,各自绕过MaxDirectMemorySize限制,累计占用远超1G堆外内存。最终定位RocketMQ客户端为主要内存使用者,建议短期调小Java堆以腾出空间,并推动中间件优化。
|
3月前
|
存储 缓存 运维
一场FullGC故障排查
本文记录了一次线上JVM Full GC导致CPU使用率飙升至104%的问题排查与解决过程。通过分析发现,问题根源是将大Excel文件解析为List<Map>结构后长期驻留内存,造成堆内存膨胀,频繁Full GC。结合JProfiler工具定位大对象,最终提出“治本”与“治标”两类优化方案,并总结了JVM性能问题的排查思路与方法。
一场FullGC故障排查
|
3月前
|
Java easyexcel 开发工具
[MES]分页与Excel批量上传(☆☆)
本文介绍如何从零运行项目代码并应对常见开发难题。涵盖克隆仓库、环境配置、分页与批量上传功能实现,强调需求不明确时的沟通策略,并梳理涉及的Git、Maven、SpringBoot等核心技术点,助力新人快速适应职场开发节奏。(238字)
 [MES]分页与Excel批量上传(☆☆)
|
3月前
|
人工智能 Java 关系型数据库
[Blog]JPA实现分页需求(☆☆)
本任务要求在原有博客系统中实现分页查询功能,需掌握SpringBoot、MySQL、Maven及JPA基础知识。建议使用AI辅助开发,预计耗时1小时(AI助力)至4小时(手动实现)。注意:JPA为拓展内容,可灵活运用工具,重在实践与结果,无绝对标准答案。
[Blog]JPA实现分页需求(☆☆)