最新发布《数智时代的AI人才粮仓模型解读白皮书(2024版)》,立即领取! 了解详情
写点什么

多云协作部署 P2P 网络的平台化管理畅想

  • 2019-11-03
  • 本文字数:3295 字

    阅读完需:约 11 分钟

多云协作部署P2P网络的平台化管理畅想

本文由 dbaplus 社群授权转载。


随着互联网的发展,从 PC 互联网,到移动互联网,再到物联网,不同的业务模式也会有不同的网络形态。从最初的门户网站,只需简单文本信息和图片数据的传输,提供一些信息服务,到搜索服务,诞生了像 Google、百度这样的科技巨头,再到即时通讯、社交网络、电商等。


随着应用的交互频次增加,互联网业务规模数据量也越来越大,业务功能也越来越复杂,因此互联网的后台承载都离不开服务,不同服务之间布局也从单一机房扩展到分布式机房,甚至跨越大范围地理位置,通过广域网相连工作。

现阶段网络设计

现有的公司服务网络,通常采用树状拓扑结构,网络中的服务部署在规划好的网络区域,通过防火墙代理等实现对外提供服务。


网络后端服务从单点到多服务、多数据库,其中也不乏一些技巧的处理技术,例如缓存、消息队列、负载均衡、反向代理等,但是无论如何,网络主体结构功能还是对外提供服务,内部服务都不会直接对外进行暴露。内部服务之间通过设计定义好的通信协议进行通信,调用关系经过严格的结构设计,进行垂直或者水平拆分。


但是不同的业务会促使不同的网络形态的应用,传统的组网和网络服务构建方式不能很好的让所有服务节点进行对等访问,大规模后端服务组件之间根据不同的业务功能并没有通用化去处理。所以与此不同,P2P 网络很好的实现了对等访问,并且能够将业务分摊到对等节点。

P2P 网络

随着业务形态演进发展,对等式网络(peer to peer, 简称 P2P), 又称点对点技术在不同领域得到了应用,例如迅雷、电炉等下载软件。P2P 网络是无中心服务器、依靠用户群(peers)交换信息的互联网体系,它的作用在于,网络的参与者共享他们所拥有的一部分硬件资源,这些共享资源通过网络提供服务和内容,能被其它对等节点(Peer)直接访问而无需经过中间实体,减低以往网路传输中的节点,以降低资料遗失的风险。


与有中心服务器的中央网络系统不同,对等网络中的每个用户端既是资源(服务和内容)提供者(Server),又是资源获取者(Client),任何一个节点无法直接找到其他节点,必须依靠其用户群进行信息交流。


区块链技术底层网络便是一种 P2P 网络技术。基于现阶段的网络部署方式,所有 P2P 网络节点服务都需要处于同一层级的网络当中,以达到互相访问的目的。


P2P 网络中有四种模型,集中式、纯分布式随机网络,混合式和结构化 P2P 网络。其中纯分布式是我们所说的理想状态下的 P2P 网络,所有节点对等,既可以作为服务,也可以作为客户端,节点之间随机建立连接形成一个随机拓扑结构。纯分布式结构不存在集中式结构的单点性能瓶颈问题和单点故障问题,具有较好的可扩展性;混合式是将部分节点用集中式拓扑进行连接,每个集中式节点的中心节点进行纯分布式网络连接,实际应用中,混合式结构是相对灵活并且比较有效的组网架构,实现难度也相对较小。

局域网 P2P 网络

理想的 P2P 网络节点可以部署在任何地方,但是拘束于现实的网络规划,实际的网络中还包含各种局域网,再从局域网连接到公网,服务中实体所处的位置往往跨越多层网络,使得理想中的纯分布式 P2P 网络实现起来较为困难,尤其是在平台化、智能化管理网络中,结合公司安全,不容易实现自动化管理。


对于确定用途的 P2P 网络,网络服务部署机房通常为规划好的局域网,网络中的系统服务之间能够互相访问,例如公司服务器实体往往处于统一局域网当中,符合部署 P2P 网络时需要系统之间网络能够对等连通状态的要求,比较容易实现网络服务的部署。


通常现有的 P2P 网络服务本身可以采用 Docker 容器化部署方案,局域网集群采用 Kubernetes 集群方案来管理局域网集群资源,结合 Kubernetes Flannel 网络方案实现,集群中容器服务可以处于有 Flannel 规划的同一局域网当中,实现纯分布式组网。


云计算同样原理,可以在同一云资源中规划集群,进行 P2P 网络部署。但是对于跨云或者在由多个局域网形成的更大的网络中,不同的区域集群中节点往往不能直接相互通信,由此给理想的纯分布式 P2P 网络部署带来了挑战。

多云协同计算

在如今的云计算时代,P2P 网络部署在单个云集群中,采用集群内部通信,可以实现理想的纯 P2P 网络。但是对于多种云混合协同工作时,不同的云提供方往往属于不同的客户,在云计算安全策略上拥有不同的权限,例如防火墙权限和策略,不同公司的管理策略不同,这让实现理想的 P2P 网络步骤较为复杂,在不同部门协同工作时,处理流程长、周期慢,对客户而言,这里是亟需优化的地方。

多云 P2P 网络

将 P2P 网络部署到不同云上,让不同客户加入到 P2P 网络,是这里的核心能力。但是局限于上面所说的多云协同计算中的问题,需要在不同云安全部门,或者安全策略中进行配置,需要多方协作;同时要保证云计算中的节点网络能够互相访问,多云计算中不同云之间通常采用公网进行连接通信,但是同一云计算主机之间通常采用局域网通信而禁止公网流量的发生,这导致多云 P2P 网络节点中存在两种不同的网络形式,公网 IP 和内网 IP,而让节点服务能够智能的区分何时使用公网 IP 通信,何时使用内网 IP 通信是一个困难的问题。


现在的做法有,P2P 网络中各服务采用域名的方式进行表示访问,通过系统 host 文件进行域名配置解析,每一个服务所在系统均需配置网络中其他节点域名解析对应的 IP,这里可以控制是内网 IP 还是公网 IP,从而实现以多个云计算为服务资源的理想的纯分布式 P2P 网络。


对于 P2P 网络服务本身架构也可以进行相应的设计,例如:让 P2P 服务本身按照混合式 P2P 网络组网方式进行工作。单个云中不同主机之间采用集中式网络模型,该网络的集中心服务与其他云的中心服务构成纯分布式 P2P 网络。在这样的网络构建方法当中,所有的云中都只需有一个服务与其他云进行通信即可。这里就需要对 P2P 服务本身的网络机制、服务发现重新进行规则设计,对于不同的业务场景也会诞生不同的 P2P 网络规则。

平台化管理

在平台化管理工具流行的今天,对于 P2P 网络管理,我们也可以建立一套管理平台,进行 P2P 网络的创建、监控、管理,对于这样一套系统首先要解决的便是对于不同云平台环境的适配、权限获取问题。对于 P2P 网络,拥有去中心化属性,平台化管理首先平台方需要获取各方资源权限(通常由各方授权),获取各方资源后,根据各方网络特点进行 P2P 网络节点部署,进行代理部署操作。网络上走原有的网络通道,P2P 网络与多云计算机中的 P2P 网络设计一致,每个云平台与 P2P 网络管理平台形成一个集中式的星型网络结构。


对于平台化管理 P2P 网络中的网络规划难题,通常简单粗暴的方式是让每一个节点都知道其他节点的地址,这里从系统层面来说,可以通过系统配置 DNS 服务来解析对应节点域名 IP 来解决。但是对于通过内网 IP 通信的节点来说,就需要通过搭建局部网络 DNS 进行解析,公网 IP 可以通过外部 DNS 进行解析,这样一来,就需要内外部 DNS 协同工作来对不同节点解析其他节点的 IP 地址。这里的内部 DNS 也可以通过修改本地 hosts 文件直接进行配置,但是这样的方法使得平台的工作量变得巨大,对 P2P 网络的动态扩展能力也形成拦路虎。


根据 Kubernetes 的网络方案,我们其实可以想象在多云的网络中是否可以存在像 Flannel 这样的网络插件让多个不同云计算的复杂网络抽象成一个 overlay 的局域网,在未来不管有多复杂的云计算资源加入,都可以很轻松的实现理想 P2P 服务部署。期待这样的一个开源方案诞生。

总结

现阶段,通过多云协作的方式来统一部署 P2P 网络形成平台化管理还有很多问题需要解决,例如 P2P 网络对比传统中心化系统的性能问题,但是 P2P 网络也有自身的优点,例如天然的高可用等。相信随着技术的发展,P2P 网络会被更广泛的应用,平台化、智能化管理是很好的发展方式,期待越来越多朋友关注到这一块。


作者介绍


汪昌帅,甜橙金融技术创新中心资深经理,对大数据、分布式计算领域技术有研究,目前关注区块链、容器化、云计算等领域技术结合应用。


原文链接


https://mp.weixin.qq.com/s?__biz=MzI4NTA1MDEwNg==&mid=2650782370&idx=2&sn=6b13472becdd05b2d5672cbf0f7bb97d&chksm=f3f90f37c48e8621cef5eb19f2506d58d178e0077d97695bcd5337d90364491b0f8d978b5ebd&scene=27#wechat_redirect


2019-11-03 08:001625

评论

发布
暂无评论
发现更多内容

AI+CFD:面向空天动力的科学机器学习新方法与新范式

百度开发者中心

飞桨

netty系列之:让TCP连接快一点,再快一点

程序那些事

Java Netty 程序那些事 1月月更

便捷、高效、智能—从运维视角看星环科技大数据基础平台TDH

星环科技

大数据

Web or Native 谁才是元宇宙的未来(上)?

Orillusion

开源 WebGL 元宇宙 Metaverse webgpu

Web3:创作者经济的黄金时代

CECBC

“5G+区块链”护航新生儿转诊“生命通道”

CECBC

设计电商秒杀系统

奔奔

Hoo虎符研究院 | 币海寻珠——波卡平行链Moonbeam生态一览

区块链前沿News

虎符交易所 波卡

【量化】量化交易入门系列5:量化交易学习书籍推荐(一)

恒生LIGHT云社区

金融科技 量化策略 量化投资 量化交易 量化

CODING 携手 Thoughtworks 助力老百姓大药房打造“自治、自决、自动”的敏捷文化

CODING DevOps

敏捷 thoughtworks CODING 项目协同 老百姓大药房

x86架构应用如何向Arm架构低成本迁移

北京好雨科技有限公司

Sophon联邦学习,让数据发挥真正的价值

星环科技

联邦学习

一篇域名从购买到备案到解析的详细教程

冴羽

前端 vuepress 域名解析 域名 域名备案

TDengine在中节能风力发电运维系统中的落地实践

TDengine

数据库 大数据 tdengine 物联网

multi-key索引和wildCard索引场景比较

MongoDB中文社区

mongodb

基于javaweb,springboot银行管理系统

叫练

银行 毕业设计 计算机毕业设计

sql审核-避免离线sql导致的db集群故障

名白

sql db sql检测 SQL审核 SQL审批

激发数字化时代权益运营新动能

鲸品堂

运营 数字化 通信运营商

Golang:定时器的终止与重置

CRMEB

12 Prometheus之监控Kubernetes

穿过生命散发芬芳

Prometheus 1月月更

Go 分布式令牌桶限流 + 兜底策略

万俊峰Kevin

Go 微服务 限流 Go 语言 令牌桶

Avaya大中华区CTO李农:阿里云计算巢加快Avaya应用云部署

阿里云弹性计算

弹性计算 年度峰会 计算巢

【量化投资入门】带你通过恒有数数据接口来实战量化指标

恒生LIGHT云社区

量化策略 量化投资 量化交易 量化

Sql server之sql注入篇

喀拉峻

网络安全 信息安全 SQL注入

文末有惊喜| 青藤ATT&CK论文入选国家级期刊

青藤云安全

聊聊Netty那些事儿之从内核角度看IO模型

bin的技术小屋

Netty nio Linux Kenel Linux网络编程 #java

反直觉投资--《香帅中国财富报告》摘录(4/100)

hackstoic

投资

如何帮助金融客户“用好云”?

金融 混合云 数智化

MongoDB find getmore操作慢问题排查

MongoDB中文社区

mongodb

如何保证redis与数据库一致性

zdd

redis

政法委社会治安防控平台建设,重点人员联防联控系统开发

a13823115807

多云协作部署P2P网络的平台化管理畅想_服务革新_dbaplus社群_InfoQ精选文章