OPPO VPC 实践探索

2024-04-03 10:04
文章标签 实践 探索 vpc oppo

本文主要是介绍OPPO VPC 实践探索,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

01 概述

一年前(20年6月),OPPO云网络技术底座开始支持VPC方案,解决了用户担心的云上安全和虚拟实例的性能问题。我们称这个版本为VPC1.0,其采用了先进的智能网卡加速和VXLAN隧道隔离技术,实现了VPC从无到有的突破。

然而由于业务快速增加,短短的一年时间不到,云上VPC环境中的虚拟实例就达到百万级别。这史无前例的实例规模迅速给VPC的故障定位和运维带来巨大压力和成本开销。

经过团队调研业界趋势和当前版本功能,发现1.0版本存在下面问题:

(1) 网络控制器数量逐渐增多,一些相同的配置需要在每个控制器上都配置一遍,每天都有业务上线,经常重复配置,效率低、运维成本高。每个集群使用的IP地址单独管理,缺乏统一的IP地址管理机制,业务开通效率低而且容易出错造成业务故障。

(2) 控制器对于运行的虚拟路由器状态无感知,无法高效的获取系统运行的状态。

(3) 基于pyDatalog的控制器完全计算一次大规模的网络拓扑耗时较长,性能低,导致虚拟路由器无法及时转发超低延时的报文,最终带来业务受损。

(4) 虚拟网络缺乏南北向流量的安全策略防护,已有的东西向安全组策略不能高效的管控虚拟网络之间的互访互通,网络访问控制机制不健全,效率低。

(5) VPC无法跨集群互访、不能同裸金属一起实现VPC隔离组网,需要依赖物理网关打通,这种方式需要频繁更改物理交换机的配置甚至搬迁机器,运维成本较高。

02 VPC 2.0系统需求

分析上述问题的根本原因之后,提出下面的解决方案,具体解决如表1所示。

VPC支持南北向的安全防护功能,VPC支持跨集群互访,VPC支持裸金属组网,控制器OVS流表生成算法重构,增强观测性和日志告警闭环处理。

增加一个VPC的超级控制器vnCenter(Virtual Network Center), 用于给控制器分发统一的配置、实现业务编排及统一的IP地址管理。

问题描述

解决方案

统一的IP地址管理机制, 每个控制器需要重复相同的配置操作

集中到超级控制器vnCenter上处理,由vnCenter自动分发给其他VPC集群

无法快速查询虚拟路由器状态,运维效率低

增强控制器可观测性,增强运维能力

控制器更新流表慢

自研控制器

缺乏南北向安全防护

VPC网关支持ACL功能

VPC无法跨集群互访

实现VPC跨集群互访

VPC不支持裸金属

用硬件网关实现裸金属的VPC隔离

表1  问题与解决方案对照

03 VPC 2.0方案

VPC2.0主要组件系统如图1所示。

图片

图1   VPC系统组件图

Cloud控制台提供统一业务入口和便捷的界面操作,业务操作可视化,关键数据存于数据库中,便于维护和使用。

vnCenter用于给控制器VPC Server分发统一的配置、实现业务编排及统一的IP地址管理。

VPC Server 是整个系统的中心,对云平台提供高效,简洁的业务接口。是整个系统的消息转发枢纽,通常称为控制器。

HostController是位于计算节点的OVS (OVS, Open vSwitch)控制器,它指导OVS如何转发业务报文。HostControllerVPC Server一起称作VPC网络的中枢,承担网络转发的重要职责。

VPC CNI Agent负责计算节点网卡资源的管理和分配,同时对云平台提供了创建、删除等业务接口。它采用智能网卡虚拟化(SR-IOV)技术为虚拟实例分配高速网卡,实现虚拟实例的网络加速。

VPC网关分为东西向的分布式网关和南北向的集中网关。分布式网关提供不同子网的通信功能,解决了集中网关的单点故障问题。南北向的集中网关支持VXLAN隧道,实现虚拟网络和物理网络的互通,并且支持横向扩展和DPDK加速技术。网关还支持ACL功能,集中网关可以是自研产品,也可以是第三方支持EVPN-VXLAN协议的硬件设备。

3.1 控制器

3.1.1 增强业务运维能力和可观测性

控制器支持子网IP地址资源的状态自动更新。若即将没有地址,则触发子网扩容IP告警。运维人员收到告警后,安排扩容,关闭告警。

观测性增强包括计算节点和网关的状态跟踪。控制器不断监控系统计算节点的消息,如果没有及时收到消息,则显示其状态为Inactive状态, 如一直有消息更新,则显示其为Active状态。再结合VPC网关,计算节点IP可以迅速构建出一幅业务的网络拓扑,便于故障排查和问题定位。除此之外,还可以支持VPC网关的状态查看。

控制器业务日志入库,定期搜索异常日志,触发告警,运维人员收到告警后,处理潜在风险,关闭告警。

3.1.2 OVS流表计算优化

原有的OVS流表计算引擎是一个单线程的Python程序,无法并行计算流表。网络规模大时,计算时间太长,容易引起业务短暂中断。为此我们采用Go语言,重新设计了一套OVS流表的生成算法,自主开发了HostController程序。其支持流表的并行计算,简化了业务逻辑,提高了流表计算效率。满足原有业务低时延的要求。按需模式经过优化后的首包时延可以降为原来的十分之一。

3.1.3 增强VPC网关接入能力

虽然自研VPC软件网关具有弹性和性能兼顾的综合优势,但其单台转发容量受制于CPU的主频和网卡的数目。在大数据和AI计算业务场景下,并不具备优势。因而我们开发了采用第三方硬件设备充当VPC网关的功能。

采用第三方硬件网关除了可以增加系统的吞吐量外,还可以借助硬件网关的VXLAN隔离能力,将裸金属纳入VPC逻辑范围内,实现虚拟机、容器、裸金属统一组网。如图2所示展示了VPC混合组网的场景。

图片

图2 VPC混合组网

VPCServer引入GoBGP后具备了和通用硬件设备交换EVPN-VXLAN路由的能力,从而可以实现裸金属和虚拟实例的隔离访问的功能。

对于一般的互联网数据中心(IDC,Internet Data Center)物理区,其和VPC网络之间是路由互通模式,可以在网关应用特定的防火墙隔离。

3.1.4 增强VPC网关安全能力

基于OVS实现的安全组功能可以很好地实现东西向的安全访问,但对南北向的安全防控,却有点力不从心。为此我们开发了网关的安全访问控制控制(ACL)功能。其基于五元组的方式实现防火墙级的安全保障。VPC控制台支持ACL的配置和查看,并且支持复制功能,高效实用,有利于业务维护。

如图1所示,VPC控制台可以针对每个VPC配置单独的ACL策略,并自动同步到VPC网关上,用于实现防火墙的功能。

自研VPC网关的ACL功能采用用户态DPDK技术实现加速,并不会因为添加了ACL而带来转发性能的明显下降。

3.2 vnCenter 业务编排能力

3.2.1 统一编排所有控制器

图片

图3  vnCenter统一管控VPC控制

如图3,对于一些通用的配置可以通过vnCenter操作,实现一次配置所有集群生效,高效实现配置的同步。

例如常见的租户信息,用户信息以及用户和VPC的关系,这些都是全局统一的,一次配置可以实现多个集群/可用区都可以使用,不需要每个集群单独配置。

vnCenter上可以查看所有VPC的可用子网信息,通过vnCenter上可以实现VPC网络地址的统一管理和分配,避免地址的冲突。

3.2.2 多集群业务编排能力

图片

图4   DCI互通业务编排

vnCenter可以在多个集群之间实现VPC互通业务,并不需要专用的硬件设备。可以很好的支持业务的备份和集群多活功能。如图3所示。VPCServer在收到vnCenter的集群间业务编排后,开始进行网络拓扑的更新,并指导HostController完成集群间的VPC互通。

04 收益与展望

新版本VPC上线后,提高了网络的稳定性、改进了系统业务承载能力及运维效率,为用户带来良好的体验并得到客户的一致赞赏。

尤其是新上线的控制器HostController,裸金属,ACL功能使VPC的应用场景进一步扩大,推动更多的业务迁移到VPC环境运行。给用户带来更多业务收益。VPC后续版本将向支持高性能和eBPF方向演进。

原文连接: OPPO VPC 实践探索

这篇关于OPPO VPC 实践探索的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/872613

相关文章

基于MySQL Binlog的Elasticsearch数据同步实践

一、为什么要做 随着马蜂窝的逐渐发展,我们的业务数据越来越多,单纯使用 MySQL 已经不能满足我们的数据查询需求,例如对于商品、订单等数据的多维度检索。 使用 Elasticsearch 存储业务数据可以很好的解决我们业务中的搜索需求。而数据进行异构存储后,随之而来的就是数据同步的问题。 二、现有方法及问题 对于数据同步,我们目前的解决方案是建立数据中间表。把需要检索的业务数据,统一放到一张M

深入探索协同过滤:从原理到推荐模块案例

文章目录 前言一、协同过滤1. 基于用户的协同过滤(UserCF)2. 基于物品的协同过滤(ItemCF)3. 相似度计算方法 二、相似度计算方法1. 欧氏距离2. 皮尔逊相关系数3. 杰卡德相似系数4. 余弦相似度 三、推荐模块案例1.基于文章的协同过滤推荐功能2.基于用户的协同过滤推荐功能 前言     在信息过载的时代,推荐系统成为连接用户与内容的桥梁。本文聚焦于

系统架构师考试学习笔记第三篇——架构设计高级知识(20)通信系统架构设计理论与实践

本章知识考点:         第20课时主要学习通信系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分),而在历年考试中,案例题对该部分内容的考查并不多,虽在综合知识选择题目中经常考查,但分值也不高。本课时内容侧重于对知识点的记忆和理解,按照以往的出题规律,通信系统架构设计基础知识点多来源于教材内的基础网络设备、网络架构和教材外最新时事热点技术。本课时知识

AI(文生语音)-TTS 技术线路探索学习:从拼接式参数化方法到Tacotron端到端输出

AI(文生语音)-TTS 技术线路探索学习:从拼接式参数化方法到Tacotron端到端输出 在数字化时代,文本到语音(Text-to-Speech, TTS)技术已成为人机交互的关键桥梁,无论是为视障人士提供辅助阅读,还是为智能助手注入声音的灵魂,TTS 技术都扮演着至关重要的角色。从最初的拼接式方法到参数化技术,再到现今的深度学习解决方案,TTS 技术经历了一段长足的进步。这篇文章将带您穿越时

Prometheus与Grafana在DevOps中的应用与最佳实践

Prometheus 与 Grafana 在 DevOps 中的应用与最佳实践 随着 DevOps 文化和实践的普及,监控和可视化工具已成为 DevOps 工具链中不可或缺的部分。Prometheus 和 Grafana 是其中最受欢迎的开源监控解决方案之一,它们的结合能够为系统和应用程序提供全面的监控、告警和可视化展示。本篇文章将详细探讨 Prometheus 和 Grafana 在 DevO

springboot整合swagger2之最佳实践

来源:https://blog.lqdev.cn/2018/07/21/springboot/chapter-ten/ Swagger是一款RESTful接口的文档在线自动生成、功能测试功能框架。 一个规范和完整的框架,用于生成、描述、调用和可视化RESTful风格的Web服务,加上swagger-ui,可以有很好的呈现。 SpringBoot集成 pom <!--swagge

轻松录制每一刻:探索2024年免费高清录屏应用

你不会还在用一些社交工具来录屏吧?现在的市面上有不少免费录屏的软件了。别看如软件是免费的,它的功能比起社交工具的录屏功能来说全面的多。这次我就分享几款我用过的录屏工具。 1.福晰录屏大师 链接直达:https://www.foxitsoftware.cn/REC/  这个软件的操作方式非常简单,打开软件之后从界面设计就能看出来这个软件操作的便捷性。界面的设计简单明了基本一打眼你就会轻松驾驭啦

深入探索嵌入式 Linux

摘要:本文深入探究嵌入式 Linux。首先回顾其发展历程,从早期尝试到克服诸多困难逐渐成熟。接着阐述其体系结构,涵盖硬件、内核、文件系统和应用层。开发环境方面包括交叉编译工具链、调试工具和集成开发环境。在应用领域,广泛应用于消费电子、工业控制、汽车电子和智能家居等领域。关键技术有内核裁剪与优化、设备驱动程序开发、实时性增强和电源管理等。最后展望其未来发展趋势,如与物联网融合、人工智能应用、安全性与

vue2实践:el-table实现由用户自己控制行数的动态表格

需求 项目中需要提供一个动态表单,如图: 当我点击添加时,便添加一行;点击右边的删除时,便删除这一行。 至少要有一行数据,但是没有上限。 思路 这种每一行的数据固定,但是不定行数的,很容易想到使用el-table来实现,它可以循环读取:data所绑定的数组,来生成行数据,不同的是: 1、table里面的每一个cell,需要放置一个input来支持用户编辑。 2、最后一列放置两个b

【HarmonyOS】-TaskPool和Worker的对比实践

ArkTS提供了TaskPool与Worker两种多线程并发方案,下面我们将从其工作原理、使用效果对比两种方案的差异,进而选择适用于ArkTS图片编辑场景的并发方案。 TaskPool与Worker工作原理 TaskPool与Worker两种多线程并发能力均是基于 Actor并发模型实现的。Worker主、子线程通过收发消息进行通信;TaskPool基于Worker做了更多场景化的功能封装,例