王峰+赵慧玲+杨明川
摘要:“开放化”和“软件化”是运营商网络重构的重要目标,开源软件技术是运营商网络重构的重要技术手段。认为当前运营商领域的开源技术体系正在日益完善中,但是在软件能力、知识产权、社区运营等方面仍存在一定风险。运营商需要将开源技术的引入提升到企业战略的高度,强化开源管理的重点举措,弥补在网络发展和业务创新中的软件短板,并遵循完善软件研发模式,深度参与社区建设,实现重点领域突破的工作步骤,有序推进开源技术在现网的规模引入。
关键词:运营商;开源软件;网络重构;管理策略
开源软件是一种源代码可以被任意获取的计算机软件,这种软件的版权持有人可在许可证协议规定下保留部分权利,进而允许软件被任何人用于任何目的的学习、修改和发布[1]。开源软件有助于降低软件研发的进入门槛和采购成本,缩短开发周期,提升软件代码生产率,是推动互联网产业飞速发展的重要动力。
网络的“软件化”和“开放化”是当前运营商网络重构的主旋律。在这一背景下,开源软件日益获得运营商的关注。传统的运营商网络发展模式具有建设周期长、业务创新受厂商设备限制等问题,网络一旦部署即相对“固化”,因此亟需借助软件技术支持网络架构和能力的灵活调整,以适应瞬息万变的互联网时代发展需求。同时,互联网应用服务(OTT)业务的蓬勃发展使得运营商面临被全面管道化的风险,运营商为了在降低成本的同时拓展新的业务领域和价值,实现与互联网厂商的平等对弈,就必须要掌握与之相同的工具和武器,开源软件技术无疑是其中非常重要一个方面。借助开源的力量,运营商有望克服现有网络中存在的大量私有、封闭的接口和协议导致的难题,推动软件系统之间的接口开放化和协议通用化,实现网络资源和能力的更大程度的开放。
当前,主流运营商都将基于开源技术打造自身的软件领域核心竞争力作为工作重点,并取得了一定成效,例如:AT&T计划将现有开源软件所占比例从5%提升到50%,包括基于开源OpenStack技术着手建立AT&T Integrated Cloud平台等[2]。中国的三大运营商也同时在开源领域发力,例如:中国移动联合Linux基金会发起OPEN-O编排器项目,主导发起业界首个基于容器的开源网络功能虚拟化(NFV)项目OpenRetriever等;中国联通和ON.Lab(开放网络实验室)共同推进开放网络操作系统(ONOS)控制器、端局数据中心化(CORD)项目等;中国电信在其CTNet 2025网络架构白皮书[3]中,明确提出在网络重构过程中将优选开源软件技术,实现研发运营一体化,并已经在主流开源社区建立了重要影响力,例如成功入选OpenStack开源社区的黄金会员。
在业界的推动下,开源也得到了众多标准化组织特别是以实现“互操作”为目标的通信网络标准化领域的重视。这主要是因为受到各方利益限制,传统的标准制订过程过于冗长,并且最终的标准文本通常是仅能满足基本互连互通需求的最小子集;而开源软件可以以事实标准的身份出现,其开放性能够加速标准的制订和验证,并能避免读者在标准文字描述上的理解差异。其中,最典型的是软件定义网络(SDN)领域最具影响力的标准化组织开放网络基金会(ONF),它不但率先提出“from pdf to python”标准化工作策略,而且还通过和ON.Lab的整合,全面推进文本标准和开源代码的协同制订和发布[4]。
1 开源软件技术体系
开源软件能够有效地满足软件研发在高效率、低成本等方面的需求,并已经渗透到各行各业的方方面面,乃至很多新兴技术从诞生伊始就和开源项目紧密绑定。对于运营商而言,需要更多关注在网络、数据中心、业务平台、IT系统以及终端等领域的开源技术发展,建立和完善相应的技术体系,为开源技术的选型、整合、应用和优化提供基础。
1.1 网络领域开源技术
网络是运营商赖以生存的根基,开源软件的理念主导了当前网络走向开放化、软件化的趋势,主要体现在利用SDN、NFV等技术的网络演进和改造。
(1)在SDN领域,开源软件主要体现在控制器层(OpenDaylight、ONOS等开源SDN控制器)和应用层(OpenStack作为应用驱动SDN资源);同时,在网络转发设备层,开源的虚拟网络设备(Open vSwitch)和以“X86处理器 + Linux操作系统”为基础的白牌交换机等也日益获得关注。
(2)在NFV领域,网络功能将以基于X86服务器虚拟化的方式承载,因此开源的虚拟化平台(基于内核的虚拟机(KVM)、Docker)及其管理平台(OpenStack、Kubernetes)成为主流;同时,为了弥补X86服务器在网络处理上的不足,以开源的数据平面开发工具(DPDK)技术为代表的网络数据包处理加速技术发挥了巨大的作用。
(3)运营商越来越关注编排层在网络的架构演进、资源协同和业务创新中的重要作用,因此以OpenMANO代表的开源编排器项目是当前网络开源领域的热点。
1.2 数据中心领域开源技术
数据中心是运营商的重要资产,也是运营商打造创新业务的基础,其开源引入的重点在于以云计算、大数据为代表的互联网技术。
(1)在云计算方面,从底层基础设施的各类开源虚拟化技术(KVM计算虚拟化技术、Ceph存储虚拟化技术、MidoNet网络虚拟化技术)及其开源的资源管理平台(OpenStack),到中间的平台层开源软件技术(CloudFoundry),再到上层将各种各样的开源应用软件作为软件即服务(SaaS),开源软件已经实现了全堆栈覆盖。另外,以Docker为代表的容器技术是当前云计算领域关注的焦点,它能够在基础设施即服务(IaaS)层面支持更便捷的资源按需供给,并作为平台即服务(PaaS)平台为“微服务化”应用创新提供支持。
(2)在大数据方面,Hadoop开源平台一度被视作大数据处理技术的事实标准,而在后续演进中的实时计算框架(例如Spark)、流处理计算框架(例如Storm)、图计算框架(例如Neo4j),乃至被称作Hadoop 2.0的先进大数据計算框架都是来自开源社区。当前,在海量数据分析和应用的前沿,也有大量的开源项目推动技术发展,例如:深度学习领域的TensorFlow、Caffe、Deepnet等。
1.3 业务平台及IT系统领域开源技术
业务平台及IT系统是运营商较早引入开源的领域,主要体现在以Linux + Apache + MySQL + PHP为典型代表的开源软件体系,以及在软件系统开发中引入的各种开源软件框架(Struct、Spring、Hibernate)。同时,在处理业务数据时,为了提升系统的安全性、可靠性和扩展性,业务平台通常还会引入开源的防火墙(iptables)、负载均衡(LVS、Nginx)、系统监测控制(Zabbix)等软件设备。当前,随着业务访问量和数据处理量的激增,越来越多的开源分布式处理技术成为业务平台的必需,例如Redis分布式缓存、MongoDB分布式数据库、Swift分布式对象存储以及用于分布式应用系统协调的Zookeeper等。
1.4 终端领域开源技术
终端领域中的开源技术最典型的就是Android系统,它借助开源的力量,构成完备的生态体系,从而一举战胜了闭源的iOS系统,占据了移动终端市场的广阔市场,并将在后续继续成为该领域的霸主。同时,以OpenWRT为代表的开源嵌入式系统,在家庭网关等领域也被广泛应用。当前,物联网是终端领域的热点,这同样也体现在开源项目的竞争上,例如:Google发布的物联网底层操作系统Brillo等。
2 开源管理重点举措
商业购买和自主研发一度是运营商软件体系中最主要的研发途径;但是如果单纯依赖商业软件,其特有的封闭性将使得运营商可能被软件厂商“绑架”,从而丧失议价权,造成采购成本的提升。同时,如果商业软件中植入有恶意代码,也很难被侦测。然而,如果运营商采用完全自主研发,虽然能够在业务适配度、代码掌控力、软件安全性等方面获得较高保证,但是其弊端在于代码研发过程中的质量风险以及相关软件研发队伍的低利用率等问题。
开源软件的兴起为运营商的软件研发提供了新的模式,主要体现在其开放的特性足以消除用户对采用封闭商业软件的顾虑;其架构和实现在开源社区的群力打造下不断完善,有助于缓解独力研发的压力。需要引起注意的是开源软件在其带来便利优势的同时也存在着不可小觑的风险,需要使用者在管理上建立更加全面细致的举措。
2.1 开源软件风险分析
开源软件的首要风险来自于软件能力方面。开源软件依托相对松散的社区提供代码维护和支持,因此在质量保障、运行稳定性等方面容易出现问题,例如:项目进度难以得到保障乃至出现项目中止的情况。同时,开源软件缺少对运维的完备支持,需要用户自行部署和维护,导致较高的运营成本(OPEX)。特别是对于软件研发能力相对较弱的运营商而言,在面对部分开源软件代码质量差,软件升级易导致版本不兼容,软件代码大量冗余,性能和稳定性无法满足业务需求等问题时,需要耗费大量的人力物力,从而削减了开源引入的优势。因此,运营商在选取开源软件时,需要充分借鉴业界已有的最佳实践,选用合适的软件版本,并随时跟踪社区进展,检测新版本后向兼容性,同时根据需求重构开源软件关键环节,在掌控代码细节的同时定制开发,满足业务实际需求[5]。
开源软件的另一个风险来自于知识产权。虽然开源软件源代码的公开性使得使用者可以非常容易获得软件,但是它和闭源商业软件一样,也是受到著作权保护的作品。其中,许可证制度就是开源软件在其自身发展过程中形成的知识产权管理方法。不同许可证在开源约束的严格程度上有所差别,更加宽松的开源许可证要求将更加适合于商业应用。因此,运营商应培育熟知开源知识产权保护法律的人才,建立开源软件的引入应用的管理审核机制,在应用开源软件前务必熟知其许可证授权模式,进而通过积极参与各类型开源社区的运作,广泛了解开源应用案例,对开源知识产权的纠纷进行剖析和熟知,避免陷入产权风险[6]。
最后,开源社区的建立和开源软件的研发在当前受到了越来越多的商业利益的驱动,最典型的体现是众多巨头加入并主导社区工作。为了确保自身利益不受侵害,并增强产业影响力,运营商的软件研发团队必须能够深度掌控开源代码实现,以确保软件代码的质量,并积极参与社区建设。另外,必须承认的是凭借多年的研发和市场经验,商业软件确实在很多场合中具有开源技术不可比拟的优势。
2.2 开源管理机制重点举措
开源软件能够有效地弥补运营商在网络发展和业务创新中“软件缺位”的短板,形成一套成熟的基于开源的软件应用和发展机制,涵盖软件架构的设计、软件开发与协作流程、软件部署、软件版权管理、软件运维等各个方面,已经成为运营商发展的必需。其中,运营商开源管理机制的重点举措包括:
(1)将开源软件研发实践提升到企业战略地位。运营商应把参与开源社区的重要性提升到与传统参与标准制订的同等甚至更高地位,一方面有利于将自己的诉求体现到开源软件中,另一方面也有利于培养一支真正深入开源软件核心开发的队伍。
(2)培育企业文化、转变企业生产模式。运营商要应用开源软件,首先必须有浓厚的软件开发氛围、有相应的软件研发流程支撑、有很好的软件工程师激励手段以及软件工程师培育计划。
(3)培养开源软件架构师。核心开源软件都有庞大社区协作研发、市场运作、合作推广模式,开源软件的引入绝不仅是利用开源软件代码,而是要培育既熟悉核心技术又熟悉开源运作的架构师队伍,能够基于需求和现状对开源技术进行正确选择,并充分借助社区力量和与生态系统协作,带领团队开展基于开源软件的研发和集成。
(4)培养开源软件研发人才队伍。开源软件的引入和应用并非不需要自身具备强大的软件研发能力,相反开源软件只是促进自主研发的重要手段,运营商应转变传统模式,坚持自主研发,培养一支强大的软件研发团队,能够将开源软件真正应用到企业的业务场景中,并且结合现网应用进行迭代开发和持续优化。
(5)发扬开源精神。积极在已有开源软件的基础上进行创新、扩展和優化,并且将研发成果回馈到开源社区,提升技术影响力。在开源模式中,企业或个人共享越多,越会得到社区的认可,从而具有越高的地位,乃至主导技术的发展和社区的运作。
通过上述举措的实施,运营商将能更好地掌控开源软件这一“重型武器”,实现更低的软件研发部署成本,更快的业务创新和客户响应速度,更好的人才成长环境以及更优的客户体验保障。
3 开源工作建议
开源软件在现网的规划和引入不能一蹴而就,运营商需根据自身的发展需要和能力水平制订切实的实施步骤。总体而言,运营商开源工作的开展主要包括完善软件研发模式、深度参与社区建设、实现重点领域突破等3个阶段。
3.1 建立基于开源软件的研发模式
加速开源软件技术的学习、研发和引入过程,运营商必须遵循开源软件技术的特点调整现有软件研发模式。开源软件具有项目起点高,进入门槛低,利用众筹和敏捷开发等特点。与传统的商业软件提供部署和运维服务不同,开源软件需要用户自行完成相关工作,并根据业务需求自主开展二次开发。虽然开源软件有效地缩减了软件开发周期和采购成本,但是它要求用户建立专业的软件开发团队,并为软件的运行维护支付必要的成本。
基于开源软件的研发模式需要根据业务需求选取最合适的开源项目,充分借鉴开源社区中已有的软件架构和代码实现,进而进行必要的重构,以切实保证开源软件的应用效果,可行的方案包括在软件设计阶段,利用开源软件搭建初始系统进行技术验证与研发评估;在迭代开发阶段,将开源模块集成到软件系统中以缩短研发周期,在全面检查开源代码质量的同时针对业务环境变化重写相关开源代码;在软件提交阶段,注意在完成软件系统交付的同时,将修订后的开源代码提交给社区,并考虑将研发过程中的其他成果陆续回馈社区。
3.2 深度参与主流开源社区建设
根据业务发展和应用实践的需要,运营商可在重点领域选取合适的开源社区进行探索,积极参与社区讨论和贡献开源代码,逐步熟悉社区运作经验并建立社区影响力,进而为更广泛领域的开源软件技术引入积累经验。
以中国电信自主研发的“蓝存”分布式对象存储为例[7],它是以开源的Ceph为核心的分布式对象存储产品。与其他相关的开源技术相比,Ceph在技术成熟度方面具有优势,能够满足海量、高并发的数据访问需求。在研发过程中,蓝存团队发现开源社区提供的Ceph软件在支持规模运营方面存在不足,从而自主研发了资源管控门户、用户存取权限控制、文件接口协同高可用等关键技术,并积极和社区沟通,尝试将相关的代码回馈给开源社区。同时,蓝存在研发中涉及到了Ceph核心系统与Zabbix、Keepalived等开源技术的整合,相关的经验也陆续贡献给社区,这些都是深度参与社区建设的必要活动。
3.3 在重点开源领域实现突破
开源软件通过建立“事实标准”的方式正在迅速取代传统的书面标准的地位,因此以建立开源社区的方式树立产业地位,已经成为业界的共识。当前,“软件定义一切”已经成为主流,软件将在各个方面发挥其前所未有的作用,其中必将会涉及运营商能够占据主导的领域。因此,运营商需要把握这一机会,巩固既有优势,引导产业发展。
运营商在网络领域拥有旁人无法比拟的优势,而围绕这一核心开展开源软件技术研发是必然方向。当前,上层网络创新业务和底层网络基础设置之间的协同是业界共同关注的焦点,它也是运营商为用户提供支持“随选网络”等创新业务的NaaS的重要掌控点,因此与该方向相关的网络编排器、云管理平台、网络控制器等开源项目,都需要运营商的主导和参与。运营商已经在相关项目上发挥了重要的引领作用,例如制订NaaS服务需求、设计SDN控制器北向接口等等,如果后续将相关成果整合到相应的开源软件项目中,将更有助于强化运营商在网络产业中的主导地位,并将影响力扩展到其他开源社区中。
4 结束语
开源软件技术的研发和实践是运营商网络重构的重要手段。通过全面深入的调研和评测,运营商可以从主流的开源技术体系中合理选取开源技术方案,并结合自身需求开展以开源为核心的自主研发,加快软件系统的上线和优化,增强核心技术掌控,建立产业影响力。
但是,开源软件技术的深入学习、全面掌握和顺利应用绝非一日之功。当前,运营商应该抓住开源软件的发展机遇,从技术研究、产品开发、运营模式、人才培养、企业文化等多方面进行变革,充分利用开源软件的既有优势,才能“站在巨人的肩膀上”,取得更长足的进展。
参考文献
[1] Open-source software [EB/OL]. [2017-01-18](2017-03-06).https://en.wikipedia.org/wiki/Open-source_software
[2] AT&T Wants 50% of Its Software to Be Open Source [EB/OL]. [2016-01-05] (2017-01-20). https://www.sdxcentral.com/articles/news/att-wants-50-of-its-software-to-be-open-source/2016/01
[3] 中国电信集团公司. CTNet 2025网络架构白皮书[R/OL]. [2016-07-11] (2017-01-12). http://www.chinatelecom.com.cn/news/06/bps/
[4] Open Networking Foundation. ONF Review [EB/OL]. [2016-12] (2017-01-11). https://www.opennetworking.org/about/onf-overview
[5] 赵慧玲. 网络重构及其挑战[C]//2016全球网络技术大会(GNTC), 2016
[6] 开源中国社区. 如何为你的开源项目选择一个合适的开源协议[EB/OL]. [2016-07-07](2017-01-03). https://www.oschina.net/news/74999/how-to-choose-a-license
[7] 中国電信云计算实验室. 蓝存分布式对象存储[EB/OL]. [2017-01-22](2017-01-20). http://cloudlab.ctbri.com.cn/