康威定律和数据中心网络

news/2024/11/18 16:54:35/

异想天开无罪,为啥不能再激进一点,但异想天开罪不可恕啊。

本文讲的就是数据中心网络,广域网不算,广域网还是要遵循分层,解耦,胖端瘦网原则,但数据中心不是,数据中心经理说了算。

传输网络从一开始就是端网分离的,从电话网开始,甚至从罗马大道时期就如此,负责转发信息的节点和信息的源头目标是绝对分离的,但从我们日常生活的便利性和效率来看并非如此,可我们仍然很少为邻居转递包裹。

无线自组织网络比如 Ad-Hoc,Mesh,每一个通信节点都可同时作为路由器交换机,细节不多说,就本地存储 PFC(参见 PFC 的 100 种优化) 而言,为充分利用资源,拥塞流量在遭遇拥塞时的后备 buffer 应该是动态分配的。这些 buffer 在没拥塞时做什么?自然而然,这些 buffer 可以作为系统的内存被应用服务使用。服务要部署在交换机上?

看起来很别扭,因为我们从没有见过这种网络,不是每个人都有机会玩 Ad-Hoc。

在解耦,分离各司其职的方法论时代,融合显得不合时宜,但对于提高资源利用率而言,我认为融合才高尚。没有交换机,没有路由器,所有服务器都是交换机,都是路由器。这意味着要改变拓扑,改变胖树,CLOS,Mesh 等先入为主的规则拓扑,而是基于业务(or 应用,服务)规划拓扑,以业务逻辑规划拓扑,而不是以流量规划拓扑。

“任何组织设计的系统,其结构都将不可避免地受到该组织沟通结构的限制。” 简单说,软件系统架构会和开发团队的组织架构相互呼应,这就是康威定律。基于它设计网络,抛弃传统的分层,细腰,沙漏模型,或许才是高效的手段,但也只真的高效,数据中心亟待的场景。对于广域网,可扩展性永远是第一位,大于性能。

大 buffer,当它只做 queuing buffer 时,才考虑成本,才用 SSD,NVMe 做后备,但当它可做业务逻辑计算内存时,它就仍然可用 DDR,这就是计算和传输之间的弹性调度,剩下的问题交给一个调度算法,在一片大内存中决策这块 buffer 用于业务内存,还是用于传输 buffer,做一个 yet another malloc。
在这里插入图片描述

如上图,没有任何路由器交换机,为啥不这么规划网络呢?

浙江温州皮鞋湿,下雨进水不会胖。


http://www.ppmy.cn/news/1548036.html

相关文章

企业如何提高招聘能力?

企业如何提高招聘能力? 许多企业在进行招聘工作时,常常会遇到各种问题和挑战。尽管付出了大量的时间和精力,但结果却并不总是如人意。例如,企业可能会经历一次又一次的面试,却仍然找不到一个能够适应岗位要求的合适人…

nginx源码安装配置ssl域名

nginx源码安装 下载 wget http://nginx.org/download/nginx-1.24.0.tar.gz 解压 tar -zxvf nginx-1.24.0.tar.gz 下载openssl apt install openssl 安装nginx cd nginx-1.24.0 sudo apt-get install libpcre3 libpcre3-dev ./configure --prefix=/home/nginx24 --with-http_ss…

Ceph的pool有两种类型

Replicated Pool(拷贝型Pool,默认) 概述: 这是Ceph的默认存储池类型。它通过生成对象的多份拷贝来确保数据的冗余和高可用性。 工作原理: 每个存入的对象(Object)都会被存储为多个副本&#xf…

Flink执行sql时报错

[ERROR] Could not execute SQL statement. Reason: java.lang.ClassNotFoundException: org.apache.flink.table.planner.delegation.ParserFactory flink-1.15.4的lib里面存在flink-sql-connector-hive-3.1.2_2.12-1.15.4.jar时,似乎会跟hdfs产生冲突&#xff0c…

Flutter 应用在真机上调试的流程

在真机上调试 Flutter 应用的方法有很多,可以使用 USB 数据线连接设备到电脑进行调试,也可以通过无线方式进行 Flutter 真机调试。 1. 有线调试 设备准备 启用开发者模式: Android:进入 设置 > 关于手机,连续点击…

nodejs+mysql+vue3 应用实例剖析

文章目录 node.js vue3 mysql 应用后端实现(koa部分)1. 项目初始化与依赖安装2. 目录结构3. config/db.js - 数据库配置与连接4. models/user.js - 用户模型及数据库操作5. controllers/authController.js - 认证控制器6. controllers/userController.j…

红外遥控信号解码

红外遥控信号解码 之前就已经做过红外遥控的解码了,但是一直没有做记录,最近的项目又使用到了红外遥控,索性就把他捡起来记录一下,对于信号的解码,我一般的习惯都是先用逻辑分析仪抓取一下信号波形,然后对…

深入剖析:Spring MVC与Struts的较量

标题:深入剖析:Spring MVC与Struts的较量 引言 在Java Web开发领域,Spring MVC和Struts是两个非常流行的框架。它们各自拥有不同的特点,适用于不同的应用场景。本文将深入探讨Spring MVC和Struts的区别,从底层机制、…