首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【双语频道】ONOS架构原理

【双语频道】ONOS架构原理

作者头像
SDNLAB
发布2018-04-02 11:22:44
9300
发布2018-04-02 11:22:44
举报
文章被收录于专栏:SDNLABSDNLAB

The purpose of this ONOS talk is to convey the rationale behind our approach to a few architectural pillars,

接下来我将为大家介绍ONOS架构设计的几个基本理念

Which in my view make ONOS unique, and which make it an excellent platform for developing SDN solutions,

这些理念成就了ONOS的独特性,使其成为一个开发SDN解决方案的优秀平台

Not just for service providers, but also for data center and campus network operators.

不仅对业务提供商来说是这样,对数据中心和校园网络运营商来说也同样如此

Specifically, it is its distributed core which provides high availability, scalability, and performance,

ONOS有一个具备高可用性、可扩展性和高性能的分布式核心

Its northbound and southbound abstractions and models that give applications the ability to configure and control the network without becoming dependent on device specifics,

它的北向和南向抽象及模型使应用开发者无需了解设备实现细节即可配置和控制网络能力

And last but not least, its distributed applications platform that allows users and developers to dynamically extend the base capabilities.

最重要的是,它的分布式应用平台允许用户和开发者动态扩展基础能力

These areas are pivotal as they bring tremendous business value and are what sets ONOS apart.

这些非常重要,它们不仅带来了巨大的商业价值,更让ONOS在众多竞争产品中脱颖而出

In order to attain the high availability, scalability, and performance, required for deployments in service provider and other mission-critical networks,

为了确保在业务提供商网络及其他重要网络上部署的ONOS系统具备高可用性、可扩展性和高性能

ONOS is built as a physically distributed system, as a cluster of separate nodes.

我们把ONOS系统构建成了一个分布式物理系统、一个包含众多独立节点的集群

Of course, there are many different ways clustered solutions can be constructed;

当然,构建集群的方法有很多种

We chose to build it as a symmetric cluster where all nodes are software-wise identical to each other.

我们构建的是一个对称集群,其中所有节点的软件配置都是相同的

Not only this yields many attractive properties not the least of which is simplicity of deployment, but it also fits well with the other desirable characteristics that we wanted the platform to have.

这种方式有很多优点,不仅部署简单,而且同时具备我们期望平台具备的其他特征

Namely, it helps the applications and the platform itself to be able to access the state in a logically centralized manner and with complete location transparency, meaning without regard where in a cluster the data resides.

也就是说,应用和平台可以在逻辑上集中访问状态信息,且无需关注这些信息的具体位置,即不用考虑数据在集群中的存储位置

The symmetric nature of the ONOS cluster also fits naturally with the desired dynamic scale-out model,

ONOS集群的对称性同样符合动态横向扩容模型的要求

Which allows users to dynamically adjust ONOS cluster size depending on changing workloads and the scale of their control domain.

用户可以根据控制域的规模和工作负载来动态调整ONOS集群大小

ONOS takes a multi-faceted approach to tracking network state.

ONOS采用多元化的方式来跟踪网络状态

In deciding what kind of distributed treatment to apply, we consider the nature of the state, which is of course primarily determined by the source of its mutation and its access patterns.

在决定用何种分布式处理方式处理状态信息时,我们会考虑状态本身的特点,而这些特点则是由状态变化来源及状态访问模式所决定的

Without going into details, we could roughly generalize that nearly all edicts on north–to-south state is treated in strongly consistent manner,

我们可以简单地认为所有从北向到南向的状态都是用强一致性方式处理的

Whereas all sensory and telemetry information or south-to-north state is treated in an eventually consistent manner.

而所有感测和遥测到的信息或南向到北向的状态都是用最终一致性方式处理的

Our own firsthand experience tells us that applying the same treatment uniformly results in significant drawbacks, barrier to achieving high performance certainly being a principle one.

但是切身体验告诉我们,一刀切的处理方式会带来很多弊端,如无法实现高性能

Therefore, rather than viewing the distributed core as a monolithic database of all key values store and then picking a technology such as Cassandra or MongoDB and then building the system around it,

因此,我们并没有把分布式核心当成一个存储所有关键值的单片数据库,然后采用诸如Cassandra或MongoDB之类的单一技术来构建系统

ONOS instead views the core as a collection of data structures.

相反,我们把ONOS核心看作是一个由多种数据结构组成的集合

So the core is built around a number of high-level store abstractions, each tailored for its data and each completely insulating the choice of distributed technology from the rest of the system.

ONOS核心拥有大量不同的高层次存储抽象接口,每个存储抽象都是专为特定数据定制的,不同的分布式子系统之间互不影响

This allows the stores to evolve and improve independently of each other and of the rest of the system.

这使得各存储可以独立演进和发展,且不依赖系统其它部分

It should be pointed out that ONOS benefited from this design decision immediately.

这种设计给ONOS带了巨大的好处

With the store implementations being nicely encapsulated, they have evolved significantly since the first release, and today nearly all of them are based on some combination of these distributed primitives.

由于存储部分实现细节得到了妥善封装,存储自首次发布以来发展迅速,如今几乎所有存储都是基于分布式原语的某种组合

Since the abstractions exposed by these primitives resemble the familiar collections and comprehensive primitives available in Java and other programming languages, this further helps the developers who are likely to already be familiar with such constructs.

由于这些原语所呈现的抽象类似于Java及其他编程语言中广为熟知的集合和原语,熟悉Java或其他编程语言的开发者可以很快上手

It should also be noted that all ONOS distributed primitives and in fact all ONOS clustering, are implemented at top of a single messaging substrate.

还应注意的是,所有ONOS分布式原语和ONOS集群都是基于单个消息底层实现的

This not only simplifies the deployment, it also improves the system security.

这不仅简化了部署,而且提高了系统安全性

Development of the distributed primitives help to further contain the complexities of distributed algorithms and consequently result in drastic simplifications of the various network state stores.

分布式原语有助于进一步完善对复杂的分布式算法的支持,从而大大简化各种网络状态存储

This move not only benefited the core stores, but it also allowed ONOS applications and extensions to easily construct their own.

这不仅有利于Core层存储,也使得ONOS应用和扩展可以轻松构建自己的存储

In our view, it is not sufficient for the platform alone to have the characteristics of high availability, scalability, and performance.

在我们看来,仅平台自身具备高可用性、可扩展性和高性能是不够的

Applications have to have them too in order for the whole solution to have those characteristics.

应用也必须具有这些特征,这样整个解决方案才会具备这些特征

This in fact was one of our primary motivators for this approach.

这实际上是我们采用这种方法的初衷之一

Its benefits are clearly visible in the simplicity and ease with which many of ONOS applications were able to provide distributed stores for tracking and safeguarding their own state.

它的简单和易用是显而易见的,它使得许多ONOS应用可以提供分布式存储来跟踪和保护其自身的状态

I should add that we work with Amazon, Microsoft, and Google to learn from them.

另外我想补充一点,我们和Amazon、Microsoft以及Google都有合作

In other words, we sought practical advice from those leading the world in distributed systems.

也就是说,我们曾从世界顶级的分布式系统厂商那里寻求实用的建议

Another key differentiator for ONOS is its approach towards abstracting the environment to the south, and the network centric abstractions and models provided to applications to the north.

ONOS的另一个独特之处在于其南向环境抽象方法及为北向应用提供的以网络为中心的抽象和模型

It allows ONOS to support many legacy interfaces and protocols with ease and it gives it the elasticity to adapt to the evolving data plane programming models, like P4, without causing applications to be rewritten.

它可以使ONOS轻松支持许多传统接口和协议,并让ONOS能够灵活适应不断演进的数据平面编程模型,如P4,而不用担心会造成应用覆盖

Clearly, standard control and configuration protocols and models are extremely important to us, and we use them in ONOS whenever possible.

很明显,标准的控制和配置协议及模型对我们来说非常重要,我们要在ONOS中尽可能地使用它们

In our view, the value of models standard or otherwise, lies in their ubiquity and we certainly want to help them gain that.

在我们看来,模型标准的价值在于它们的普适性,而这点正是我们想要达到的

However, we do not want to rely on them solely.

但与此同时,我们并不想仅仅依赖这些标准

Why? Because the viability of the platform should not be predicated on a success, meaning a widespread adoption of such models

为什么呢?因为我们不能仅仅通过模型是否成功,即是否得到大规模使用,来断言平台的可行性

Similarly, standard protocols are also important to us, but we do recognize that ultimately, they are secondary to what is really important, and that is the kind of configuration and control that can be conducted with a device.

同样地,尽管协议的标准化对我们来说很重要,但它们的重要性次于设备配置和控制

ONOS should be able to interact with devices regardless of whether they use NETCONF, OpenFlow, a P4-based program, or some custom RPC.

ONOS应能和任何设备通信,无论这些设备使用的是NETCONF、OpenFlow、P4、还是定制RPC

In ONOS, we consider configuration as important as control, if not more.

在ONOS中,我们认为配置和控制同样重要,甚至更重要

Really, the distinction between the two is often drawn rather arbitrarily.

实际上,这两者通常被武断地加以区分

So for ONOS, abstractions for both control and configuration are extremely crucial.

对于ONOS来说,控制和配置抽象都是非常重要的

We assert that applications should not be at the whim of device protocol and device model details. 我们认为应用不应该受限于设备所使用的协议和模型的细节

Which is why Black Bird, our second release, introduced the driver subsystem intended to support abstracting various facets of device interactions, including configuration.

这也是为什么我们在第二个ONOS版本Black Bird中引入驱动子系统的原因。该子系统可以对设备交互的各方面(包括配置)进行抽象。

Because not all devices support the same aspects of control or configuration, ONOS takes a faceted approach to offering device configuration abstractions.

并不是所有设备都支持相同的控制或配置方式,所以ONOS采用了一种多元化的方法来提供设备配置抽象

This enables applications to engage in selected configuration activities to each device, but without exposing them to the specific details of the models or protocols to which those activities are conducted.

这使应用能够参与各设备选定的配置活动,同时又无需关注执行这些活动的模型或协议的具体实现细节

So, ONOS certainly allows applications to engage in such southbound and implicitly device centric interactions.

ONOS让应用可以参与到与南向设备的交互中

After all, this is how we allow applications to program devices supporting multi-table pipelines yet without exposing applications to the pipeline structures themselves.

我们就是通过这种方式让应用对支持多表流水线的设备进行编程,同时又不让应用感知这些流水线结构的存在的

However, we recognize that there are tremendous benefits to enabling northbound applications to interact in a network-centric manner as much as impossible.

但是,我们也意识到,尽量使北向应用按照以网络为中心的方式进行交互会带来巨大好处

And to that effect, we are investing in services such as our intents subsystem.

为实现这一效果,我们正在研究一些诸如意图子系统之类的服务

Not only this raises the level of language that applications need to speak, it also provides the platform with added degrees of freedom to resolve what might otherwise be conflicting requests.

这不仅提升了应用所使用的语言水平,同时还提供了一个自由度更高的平台来解决可能存在的请求冲突

This is one of the reasons why ONOS deliberately separates the southbound device-centric interactions apart from the northbound interactions which are mostly network-centric.

这是ONOS特意把以设备为中心的南向交互与主要以网络为中心的北向交互分离的原因之一

This extends to our use of the YANG modeling language.

这使我们可以使用YANG语言来建模

On the southbound, we use it to assist in creating device drivers for various aspects of control and configuration via NETCONF.

在南向,我们用YANG协助创建设备驱动,实现基于NETCONF的控制和配置

In this way, the nuances of the different models exposed by various devices are abstracted away from applications.

这样,应用就感知不到各类设备模型之间的差异了

And on the northbound, we are starting to use it as a means for external applications to interact with ONOS network-centric services.

在北向,我们将其作为外部应用与以ONOS网络为中心的服务之间进行交互的方式

In this way, applications that are aware of various network service models, such as L3V**, can interact with ONOS on their own terms.

这样,感知到各类网络业务模型(比如L3V**)的应用可以按照自己的条件与ONOS进行交互

Using this same northbound mechanism, service providers can then create and offer customized network-centric services for their customers using YANG or TOSCA as a service definition language.

利用同样的北向机制,服务提供商可以为客户创建并提供定制化的以网络为中心的服务,以YANG或TOSCA为业务定义语言

To facilitate this, we are developing a tool chain for processing YANG models and also an application capable of composing services by mapping their definitions onto northbound services of the ONOS platform and its many applications.

为了更好地达成这一点,我们正在开发一个处理YANG模型的工具链以及一个业务编写应用,该应用能够通过将服务定义映射到ONOS平台上众多北向服务及北向应用来实现业务组合与创建

This combined approach offers ONOS applications the necessary model extensibility, and at the same time allows applications written for existing devices to work equally well for the new devices.

这些方法为ONOS应用提供了所需的模型可扩展性,同时让为现有设备开发的应用可以同样应用于新增设备

While the ONOS platform itself contains many useful capabilities, one of its key strength is its dynamic extensibility and modularity.

ONOS平台自身具备很多有用的能力,其核心能力之一是基于模块化的动态可扩展性。

It is clear from engagements with our partners and community in general that while there are often shared interests in certain use cases, there are also many diverse uses for which the community wants to create ONOS based solutions.

在和合作伙伴及业界同行接触的过程中,我们清楚认识到,尽管某些用例通常有共同的诉求,业界更希望使用基于ONOS的解决方案来实现多样化的用例

Therefore, it is important to keep the ONOS core as lean and as minimal as possible, and instead allow functionality to be added or enabled on as needed basis.

因此,重要的是尽量精简ONOS核心,然后根据需要增加或激活新功能

This is where ONOS own platform applications come in by effectively acting as ONOS core extensions.

ONOS原生平台应用作为ONOS核心的有效扩展加入到该平台

Users can selectively activate the functionality that is applicable for their environments.

用户可以选择性地激活适用于当前环境的功能

This includes high-level functionality such as integrations with external systems such as OpenStack, or various traffic steering applications such as segment routing.

这些包括高层次功能,如集成OpenStack之类的外部系统或分段路由之类的流量调优应用

But it also includes low-level functionality such as drivers or protocol providers required to interact with specific environments.

同时也包括低层次功能,如与特定环境交互所需的驱动程序或协议提供机制

ONOS extensions seamlessly augment the functionality of the base system at all layers within,

ONOS扩展应用可以增强ONOS内部各层的基本系统功能

Whether it is new southbound drivers and protocol providers, or whether it is a new distributed core component for tracking new type of state or a northbound service for accessing that state.

这些扩展应用包括新的南向驱动程序和协议提供机制、跟踪新状态类型的新分布式核心组件、访问新状态类型的北向服务等

This extensibility also applies to the ONOS REST API, command line interface and the graphical user interface.

这种可扩展性也适用于ONOS的REST API、命令行界面、图形化界面

Our goal was to enable applications to extend these surfaces so that the new functionality completely blends in and from the user's point of view become structurally indistinguishable from the base platform.

我们的目标是实现界面扩展,让新的功能可以完全融入,并且从用户角度看来,新功能在结构上与基础平台完全无缝融合

This is why ONOS developer tool kit provides tools and starter code that make it very easy for developers to get started with developing their ONOS-based applications.

这就是为什么ONOS开发者工具包提供了相应工具和初学者代码,方便开发者基于ONOS开发应用

It should also be fairly obvious that this extensibility presents tremendous business opportunities for vendors and system integrators by allowing them to build their own differentiating value at top of the commodity ONOS platform.

很明显,这种可扩展性为厂商和系统集成商带来了巨大的商机,让他们可以基于商品ONOS平台构建自身的差异化价值

I hope that through the course of the talk, I manage to convey the merits of the approach that ONOS takes with regard to constructing its highly available, scalable and high performance distributed core.

希望通过我之前的讲解,大家能清楚了解我们用来构建分布式ONOS核心的方法的优点,正是这些方法确保了ONOS核心的高可用性、可扩展性和高性能

I hope that I helped you see that it is equally important to do so in a manner that it enables applications to be developed with those same attributes in order to allow robust solutions to be built.

希望大家同样认识到,应用也必须具备这些特征,这样才能最终构建强大的解决方案

I also hope that it became clear that the approach to abstractions for network control and configuration is one which is the most sensible in the long run, as it allows ONOS platform and applications to transcend the gradual evolution of devices and the various controller configuration protocols.

同时我还希望大家能够清楚认识到,对网络控制和配置进行抽象的做法长远看来是最明智的,它让ONOS平台和应用可以忽略设备及各类控制器配置协议的逐步演化

The rapid growth of the ONOS community, the influx of proposals for new features and diverse use cases, the rate at which new functionality is being developed for the ONOS platform and the number of global ONOS deployments all attest to the value of its extensibility and usability.

ONOS社区的快速发展、各种新特性和用例建议书的大量涌现、ONOS平台新功能的快速开发、全球ONOS部署站点的日益增多……这些都是对ONOS可扩展性和可用性的最好证明

We see a tremendous exuberance in energy building behind this project, which I personally, find very exciting.

ONOS项目蕴藏着勃勃生机和巨大发展潜力,非常振奋人心

While we as a community have done a lot of good work in the last year and a half, there is still a vast field of opportunities for the project ahead.

在过去一年半的时间里,我们ONOS社区运行的很不错,而且未来还有很多机会在等着我们

I strongly encourage everyone to learn more about ONOS and use cases it enables, and to come and join the rapidly growing ONOS project community.

强烈推荐大家多了解ONOS,包括ONOS用例及功能。欢迎大家加入我们这个快速发展的项目团队

Have a great day, and thank you for listening.

感谢收看,再见

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2016-06-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 SDNLAB 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 MongoDB
腾讯云数据库 MongoDB(TencentDB for MongoDB)是腾讯云基于全球广受欢迎的 MongoDB 打造的高性能 NoSQL 数据库,100%完全兼容 MongoDB 协议,支持跨文档事务,提供稳定丰富的监控管理,弹性可扩展、自动容灾,适用于文档型数据库场景,您无需自建灾备体系及控制管理系统。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档