30

微软解颖:SONiC Update 2020

 3 years ago
source link: https://www.sdnlab.com/24464.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

“2020 SONiC产业生态研讨会”于9月19日顺利召开,会上,来自Microsoft的 Principal Software Engineering Manager解颖给大家带来了主题演讲《SONiC Update 2020》。

在介绍SONiC社区2020年的工作报告之前,解颖先简单描述了SONiC的概念。

什么是SONiC

SONiC有几大特点,首先SONiC是一个基于Linux的网络操作系统,其次它建立在交换机抽象‍‍接口SAI之上,所以SONiC‍‍能够支持不同厂家提供的交换机的芯片,再‍‍加上来自各个不同的平台厂商提供的Platform——API的driver,就能够把大部分的功能都抽象于‍‍这些高级的SAI API和Platform API之上。

‍‍‍‍另外一个特点,所有的service都封装在‍‍肯定的容器之内,例如SWSS、SNMP、BGP,每个设备都在一个单独的container里面,当升级一个service或者替代一个service时,就可以轻松地用一个容器替代另外一个兼容的容器。

由于SONiC是一个开源的软件系统,所以它能够和很多其他的开源软件系统结合在一起,‍‍给我们提供很大的便利,‍‍这些便利体现在很多方面,‍‍比如配置管理,状态监控等等。

SONiC的发展

微软‍‍最初进入开源软件社区是在2016年,在‍‍过去的这些年,SONiC一直在‍‍不断发展。‍‍2016年,SONiC已经奠定了上面提到的体系结构的‍‍‍‍基本特点。2017年,SONiC得到了进一步的发展,提供了‍‍很多quality of service方面的功能。‍‍另外,SONiC也提供了Ipv6的支持、Fast Reboot的功能,能够保证在升级的过程当中,数据平面的中断不超过30秒。

a.png

到了2018年,SONiC进一步引入了Warm Reboot功能,该功能可以把数据平面的中断‍‍控制在一秒之内,在很多现有的通用平台上,甚至能够做到无中断的升级。同时也‍‍引入了一些新的service,比如Streaming Telemetry‍‍和一些虚拟化的支持。

‍‍2019年,SONiC也引入了很多新的功能,‍‍‍‍从2016年到2020年之间,SONiC能够支持的速率也不断的发展,从最初‍‍支持的40G‍‍到2017年的100G,未来还要发展到400G‍‍和800G的速率支持。

SONiC社区

‍‍在过去的几年中,可以看到SONiC所支持的平台,以每年2~3倍的速度增长,‍‍这个速度是非常可观的。‍‍SONiC所支持的AISC的芯片种类也在不断的增加,在不断的向高端发展的同时,SONiC也延伸到了一些低端的‍‍交换机的平台上面。

‍‍到2020年为止,解颖表示,SONiC现在‍‍已经被超过10个的云运营商‍‍以及大型企业所采纳。以‍‍微软的Azure network为例,现在‍‍已经做到了新装机完全采取SONiC。SONiC历经多年,被很多运营商‍‍采用,现在SONiC的技术非常成熟和稳定了,截止到2020年初,‍‍据微软不完全统计,SONiC的装机容量已经接近400万个端口。

SONiC社区非常活跃,有很多积极的成员在不断的提供一些新功能,这一年‍‍功能的增长也非常快。看下图,很多知名的厂商,‍‍世界一流的‍‍网络公司‍‍都在其中,值得一提的是,还有很大一部分个人贡献者,他们的‍‍对于SONiC怀着极大的热忱,给SONiC贡献了很多非常有价值的功能。

b.png

‍‍‍‍截止2020年,SONiC社群成员已经超过50个。2019年,‍‍新增了12个新成员,在这些新成员当中,有很多是国内知名的硬件厂商,比如,诺基亚和浪潮,‍‍还有一些‍‍新兴的‍‍硬件厂商,‍‍比如,CREDO和inside packet,它们‍‍在国内也有一定的知名度。‍‍另外,‍‍包括一些‍‍做测试设备的‍‍‍‍知名厂商,例如Keysight。

‍‍同时,也有很多企业用户加入SONiC大军中,‍‍其中,Criteo是一个欧洲的公司,他们和微软一样,2020年的所有的新增装机都采用SONiC,‍‍其他的大型企业对于SONiC的‍‍应用也在不同的阶段,一些在试用阶段,一些‍‍已经在部署阶段,‍‍‍‍那为什么会有这么多大型的网络公司和大型的云计算供应商‍‍都愿意使用SONiC?

‍‍解颖总结了几个方面,‍‍一是SONiC是开源的,这样‍‍能够获得全球性的支持和全球性的供应链,其次,由于现在SONiC已经有了很多‍‍供应商和‍‍企业用户,也就表明SONiC获得了业界的共同承认,SONiC已经是一个稳定成熟的解决方案,对于降低组网‍‍和管理的复杂度‍‍非常有效。

2020年新惊喜

Chassis

‍‍2020年,SONiC主要的‍‍努力方向是要解决chassis场景,对此采用‍‍的合作方式前所未有,在整个SONiC的设计过程,八方朋友都来相助,‍‍有‍‍‍‍芯片厂商给SONiC提供了非常适合 chassis场景的AISC‍‍芯片。‍‍另外,也有硬件厂商提供了一些低功耗的连接处理方案,大大的降低在chassis上的功耗。也有很多Optics Solution、Switch Solution、Security Solution等。

c.png

‍‍‍‍为什么SONiC的努力方向定在chassis?SONiC经过多年的发展‍‍和使用,在数据中心层面,尤其是在接近服务器层面已经非常成熟了,‍‍那么SONiC下一步‍‍就一定是向数据中心的边缘和广域网方向发展,向这个方向发展就离不开chassis‍‍场景。

使用SONiC解决 chassis场景,能带来一些什么好处?传统的 chassis是一体化的,SONiC‍‍支持这种场景,但引用SONiC也可以采用另外一种新型组网方式——分离式的 chassis的组网方式,用现成的交换机作为前端口,接到上行口和下行口,另外一部分交换机作为后端交换机,给前端交换机提供交换,这些交换机集中在一起就能组成‍‍一体化的功能模块。这样的好处就是组网有很大的灵活性,可以用现成的交换机搭建出来具有一样功能的实体。

Kubernetes

在2020年,SONiC也在努力把Kubernetes的支持‍‍放在管理层面上来。‍‍‍‍使用Kubernetes来管理版本有一些好处,Kubernetes本身是一个分布式的解决方案,‍‍并且它具有很强的适应力,例如,用Kubernetes做一些功能模块的升级时,我们可以容易地监控升级的过程和升级的结果,‍‍以及升级后的健康状况,升级‍‍过后,如果发现健康状况不满意,我们可以很容易地回到原来的版本,所以,使用Kubernetes主要是做功能模块的‍‍升级,而不是整体交换机OS的升级。

d.png

上面提到的Warm Reboot能够做整体交换机‍‍无间断的升级,引入Kubernetes之后,在‍‍某一些小型的功能模块需要更新的时候,就不需要引入整个交换机升级的升级过程,可以非常自由地把一些小型功能模块进行替换或者升级。

AI agent

另外,SONiC也将‍‍引入AI agent——Kafka agent,有了 Kafka agent后,可以通过一些现有的模块,把SONiC的一些‍‍‍‍关键的健康数据放到一个data base里,就能够和‍‍人工智能的模块联合在一起,实时快速地分析现有数据,了解现行的SONiC网络是否健康,如果出现了故障,它能很快地实时分析出发生了什么类型的故障、故障发生在哪里、通过什么方式解决,然后把解决方案实施在这些节点上,同时监控这个解决方案‍‍解决了现有的网络问题,保证网络恢复了健康。

Test Infrastructure

‍‍‍‍在不断发展功能性模块的过程中,2020年,SONiC社区深刻的意识到,SONiC需要不断的加强测试上的支持。在这方面,SONiC社区得到了很多硬件厂商的支持,例如Keysight、Intel等。

在‍‍社区的成员的共同努力下,2020年SONiC引入了PyTest Infrastructure,引入PyTest Infrastructure后,SONiC在测试流的控制和测试代码的共享上,得到了非常大的提升。有了这些工具,SONiC现在也提供Stand Alone Testbed的支持,它是围绕着硬件环境的测试。

‍‍另外,SONiC在2020年也引入了Spytest测试系统,‍‍这个系统由Broadcom提供,现在SONiC已经完全的支持Spytest的部署和配置生成,这样就可以‍‍‍‍非常方便地和现有的测试‍‍体系结合在一起。SONiC还引Multi-DUT的支持,‍‍相对于过去的测试,Multi-DUT的每一个DUT是一个单独的测试环境,把多个DUT放在一起变成统一的测试环境。

e.png

对于测试环境的升级,SONiC社区‍‍始终把TDD这个概念‍‍贯穿其中,‍‍现在SONiC已经能把很多测试放在PR测试环节上,最终的环境能让‍‍开发人员在写功能时,也能把测试也写出来,‍‍这样‍‍每一个check in的feature都是经过测试的,‍‍只有做到这一点,SONiC才能实现CI/CD。

最后,解颖以SONiC社区未来努力的方向作为结尾(如下图),并且表示,SONiC社区未来将会给业界呈现更多、更便捷的新功能!

f.png


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK