写点什么

电信行业的容器化改造之道

  • 2016-08-17
  • 本文字数:5093 字

    阅读完需:约 17 分钟

市场变局

近年来,传统电信运营商正迎来一个最具挑战的时代。曾为电信运营商带来高利润收益的业务规模正不断缩水;曾以引为傲的管理模式、业务推广模式也渐渐成为运营商变革的核心。外有 OTT 厂商入侵,内有虚拟运营商竞争,随着一个业务应用上线时分秒必争来满足不同群体需求以此快速占领市场的新时代的到来,传统运营体系已然很难匹配这一市场变化,运营体系重构也必将重建。

语音业务逐渐被数据业务所代替。运营商的网络从 90% 以上都是语音业务,到今天变成了 80% 的业务被数据所主宰。但在这一过程中,运营商尚未建立行之有效的盈利模式 ; 为运营商带来巨大利润的语音业务正从收费高的语音通道转向低价的数据通道,如微信等。运营商被“管道化”的趋势日益凸显。

语音为王的时代,三大运营商的竞争更多来自内部。移动互联网时代,运营商需要面对来自互联网厂商日益激烈的竞争。话音时代,运营商长期在围墙之内,进入移动互联时代,围墙一下子没有了,运营商如何直面和适应激烈的竞争环境是个全新的挑战。

此外,云计算和大数据时代来临,运营商的传统核心能力越来越边缘化。目前,从云计算、大数据获得的收益仅占到中国运营商不到 1% 的收入,远远低于外国同行。这与中国运营商重电信而轻 IT 不无关系。以网络为主导的运营商内部存在着大量优秀的电信人才,但优秀的 IT 技术人才却是稀缺资源。导致运营商的 IT 系统仍局限于支撑功能的定位,无法为处在激烈的竞争环境中的运营商提供有效的转型战略支持。

行业趋势

电信公司在技术领域是一个保守和激进的综合体,在互联网巨头出现之前,电话通信交换网络及其计费系统已经承担了最大的任务量。电信公司对网络技术不断投入,以确保整个网络的高可用。这其实占据了大量的资金,并产生了许多闲置——低利用率的计算和存储资源,最终带来了整个运营的低效率。

我们认为,未来电信行业必然是一个 IT、CT 融合,电信运营商互联网化的趋势,IT 所占比重会越来越大,电信行业的盈利模式也会从传统的提供通道到提供 IT 资源、提供服务的方向转变。近几年随着大数据、云计算、容器化、微服务、平台战略等新技术和新概念的层出不穷和快速发展,在业务支撑、架构能力、平台扩展性等方面对旧有的烟囱式建设的业务支撑系统提出了巨大的挑战。因此对现有业务和设备进行容器化改造,则成为了一个必然的选择。

容器化的优势

容器技术作为目前一项炙手可热的新技术,具有以下优势:

  • 极其轻量级的虚拟化技术,大大提高 IT 资源的利用率;
  • 标准化的打包、封装、搬运机制,有效提高开发运维效率,降低成本;
  • 秒级启动速度,保障业务的稳定性与高可用性;
  • 类似于积木的分层机制,提供灵活组合微服务;
  • 简化开发版本管理。

关于微服务

另外一个不得不提的概念是微服务。微服务架构是一种特定的软件应用程序设计方式——将大型软件拆分为多个独立可部署服务组合而成的套件方案。虽然这种架构风格的确切定义还未统一,但并不妨碍其在众多企业的实际应用中被实践,并体现出了具备通用特征的业务功能、自动化部署、端点智能化以及对语言与数据的离散化控制能力。

许多如 Amazon、eBay、NetFlix 等公司都采用微服务结构模式,都在尝试改进那些需要频繁更新的,通过网络提供到用户的 PC、平板和智能手机上的应用程序和服务的持续交付,将应用分解为小的、互相连接的微服务,而不是开发一个巨大的单体式的应用。一个微服务一般完成某个特定的功能,比如下单管理、客户管理等等,都有自己的业务逻辑和适配器。一些微服务还会发布 API 给其它微服务和应用客户端使用。其它微服务完成一个 Web UI,运行时每一个实例可能是一个云 VM 或者是 Docker 容器。这种微服务架构模式深刻影响了应用和数据库之间的关系,不像传统多个服务共享一个数据库,微服务架构每个服务都可能有自己的数据库。

Docker 作为一种开源的应用容器引擎,帮助开发者将他们的应用以及依赖打包到一个可移植的容器中,便于应用的部署和扩展。而随之产生的微容器概念和微服务正好相辅相成,通过 Docker 封装的应用可以轻松运行在以扩容能力见长的云计算平台上。

围绕着云托管环境的如此多的应用程序和服务部署活动,微服务架构已经深度依赖于容器化技术的使用。容器将微服务进程和应用程序隔离到更小的实例里,这些实例仅仅使用虚拟化了的操作系统,而不是整个虚拟机以及 VM 所包含的整个抽象硬件资源。

微服务不是 Docker,但 Docker 天然是为实现微服务而存在,利用 Docker 技术可以很方便的对宿主机资源进行隔离、划分,同时因 Docker 本身极其轻量化的特点,可以做到宿主机的高密度、高可用性、高弹性的应用,从而做到 IT 资源利用价值的最大化。

电信企业容器化改造的几点考量

结合行业经验,我们认为电信企业容器化改造需要考虑的因素包括:

  1. 业务层面:因运营商对业务的稳定性和连续性有比较高的要求,故容器化的演进路径必然是从边缘业务到核心业务,从简单应用到复杂应用,具体到业务,首先可以考虑在 Web 前端进行容器化迁移,第一步选择某些相对独立的,不涉及 BOSS 系统的模块,如网上商城等,第二步逐渐切入到一些涉及用户数据的非核心业务如积分兑换等,最后迁移与用户计费直接强相关的业务,如业务套餐办理等。
  2. 技术层面:目前原生 Docker 在服务发现、负载均衡、容器生命周期管理、容器间网络、存储等方面还存在诸多的不足,因此目前有许多第三方厂家提供的开源解决方案和商业化版本,如 Google 的 Kubenetes、Apache 的 MESOS、Rancher 等,各家方案各具特色,难分高下,当然仅从容器编排引擎的角度来看,Rancher 可以兼容 Kubenetes、MESOS 和 Docker SWARM 着几种主流的编排引擎。是固定技术体系框架,还是选择灵活兼容的模式,是需要慎重考虑的因素之一。
  3. 兼顾到成本效益:综合考虑容器化付出的成本代价与未来收益之间的平衡。传统的短信、彩铃以及客服中心业务因本身业务在萎缩,因此不太建议进行容器化。
  4. 还要考虑现有硬件的负载能力问题,容器化并非包治百病的良药,某些对并发吞吐量要求更高的业务,直接运行在裸机上,通过系统调优提高性能,容器化未必是最好的选择。

容器化过程中的注意事项

运营商传统业务网络经过多年建设运营,业务模式涵盖了交易、计费、服务等各种核心业务,系统功能各异复杂度高,并且多个厂商多种系统并存,这些成为容器化迁移的一大障碍。摸清这些系统之间的架构关系,避开不必要的坑,是容器化之前就需要做的工作。

在底层架构考虑方面主要需要考虑操作系统、数据库等平台软件之间的兼容性问题,另外需要考虑收费软件厂商的支持力度、License 管理政策是否允许容器迁移。

虽然 Docker 以及微服务看起来很美,但是要真正的实施落地,除需要足够的人才技术储备,还对运维团队的自动化流程也提出了更高的要求和挑战。容器化改造之后,一台宿主机上运行的容器可以成千上万,如何对这些容器的故障进行维护,需要对原有的运维流程和团队进行更新升级以适应新的业务情况。所以选择专业的产品化的容器技术厂商不失为探索过程中的有力保障。

答疑环节

问:电信行业的容器化与其他行业有何区别?

张鑫:电信行业相对其他行业,IT 信息化程度较高,在技术领域是一个保守和激进的综合体,在互联网巨头出现之前,电话通信交换网络及其计费系统已经承担了最大的任务量,但近年来,曾为电信运营商带来高利润收益的业务规模正不断缩水;曾以引为傲的管理模式、业务推广模式也渐渐成为运营商变革的核心。

外有 OTT 厂商入侵,内有虚拟运营商竞争,语音业务逐渐被数据业务所代替。运营商的网络从 90% 以上都是语音业务,到今天,80% 的业务被数据所主宰。但在这一过程中,运营商尚未建立行之有效的盈利模式 ; 为运营商带来巨大利润的语音业务正从收费高的语音通道转向低价的数据通道,如微信等。运营商被“管道化”的趋势日益凸显。

传统运营商长期在围墙之内,进入云计算、大数据、移动互联时代,围墙一下子没有了,运营商如何直面和适应激烈的竞争环境是个全新的挑战。

问:Rancher 与同类容器管理平台相比有何优势?

张鑫:Rancher 的解决方案设计时就考虑了同时支持虚拟机和容器,而这种实现方式在 Google 被验证过,并进行了大规模部署。从 2015 年 4 月开始,在 RancherVM 项目中已经尝试了这个方案,并从很多用户那边得到了非常好的反馈。在容器中运行虚拟机的好处是可以使用相同的工具来同时管理虚拟机和容器。事实上由于虚拟机和容器的行为方式非常类似,Rancher 为 Docker 容器所开发的 Rancher CLI 命令行和 UI 图形界面完全可以无缝地适用于虚拟机。

另一方面通过使用 RancherOS 做为融合基础架构平台的基础操作系统。RancherOS 的内核被编译成可以完美支持各种虚拟化平台。

问:Rancher 是基于哪些技术实现,与 k8s 有何关系,相比其他容器集群管理技术有哪些优缺点?

张鑫:Rancher 是基于 Cattle 调度编排框架,而 K8S 是一个 Docker 容器的编排系统,它使用 label 和 pod 的概念来将容器换分为逻辑单元。Pods 是同地协作(co-located)容器的集合,这些容器被共同部署和调度,形成了一个服务,这是 K8S 和其他框架的主要区别。相比于基于相似度的容器调度方式(就像 Swarm 和 Mesos),这个方法简化了对集群的管理。

由于 Swarm 的原生 API,基本上实现了各家编排引擎的核心功能,尤其是内置到 Docker Engine 中的作用是巨大的。在集群维护和节点管理方面 Swarm 的确天生就比较优秀,毕竟是采纳百家之长,但是真正落到应用管理和服务编排方面,Swarm 仍有一些路需要走,而 Cattle 与 Rancher 其他组件的融合已经达到了“开箱即用”的水准。

此外,Rancher 与其他同类容器平台相比,部署比较简单,用户无需了解 Mesos、K8S 的架构和细节,Rancher 可以快速方便的一键部署和升级;

Rancher 和底层基础架构集成良好,如 Rancher 部署的 K8S 默认和 Rancher 的 overlay 网络,Rancher-dns,Rancher 的负载均衡都进行了集成,方便用户使用;Rancher-catalog 应用编排层面的集成也较好。

问:电信行业使用容器怎么做好安全?

张鑫:容器的确也存在不足,如无热迁移,网络隔离性、安全性支持比较薄弱,Docker 发布 libnetwork 增强网络特性,很多项目也在致力改善容器网络。电信行业容器化的演进路径必然是从边缘业务到核心业务,从简单应用到复杂应用。

问:电信行业使用容器的自动化测试有什么实践?

张鑫:目前一些地方运营商正在做进一步 POC 测试和业务部署,相信很快从集团和地方层面就会有实际应用。

问:电信业务最终落地到 Docker 上的是什么业务?相对应的规模是怎样?

张鑫:因运营商对业务的稳定性和连续性有比较高的要求,故容器化的演进路径必然是从边缘业务到核心业务,从简单应用到复杂应用。具体到业务,首先可以考虑在 Web 前端进行容器化迁移,第一步选择某些相对独立的、不涉及 BOSS 系统的模块,如网上商城等;第二步逐渐切入到一些涉及用户数据的非核心业务如积分兑换等;最后迁移与用户计费直接强相关的业务。

问:电信行业一直在提 NFV,容器化能够很好的支持 NFV 么,有没有相关的应用实例?

张鑫:NFV 主要还是涉及到网络虚拟化,容器里目前涉及不是很多。

问:这会不会限制容器技术在电信业的应用?现在各家厂商貌似都在发力 NFV,一旦相应的技术方案成型,会不会使得容器化很难做到电信的数据层面?

张鑫:一个新技术的兴起和发展,主要还是在于新技术本身的优势特点、以及给行业客户带来的价值,有些技术可能是并存,或者是作为补充。电信行业一般还是愿意创新和敢于尝试新技术,所以应该还是能做到电信数据层面的,当然也要看推进的方法。

问:容器化改造目前能够达到什么程度,稳定性怎么样?会不会容易与一些方面发生冲突,有没有一些更好的方法将 bug 控制在很小的范围?系统如果遭到攻击那么会不会导致数据丢失,有相关的安全措施吗,比如定制版本的安全软件?

张鑫:容器化改造目前还是提升客户系统效率,降低硬件采购成本,这一点对客户带来的价值还是很大的。由于是开源平台,参与贡献者较多,版本更新较快,一些 bug 也会很快解决。

容器只是一组进程,其隔离性不如虚拟机好,如果主机意外掉电有可能引起数据丢失,但是任何安全都是相对的,攻击的类型也有很多,不能一概而论。

问:运营商有没有在电信业务上使用容器的案例?电信业务的核心是管道、数据搬运,所以转发性能非常关键,容器技术在这方面有优势吗?

张鑫:目前主要是在 poc 阶段,很快就有案例。移动、电信都在推进,具体内容就不方便说了。转发性能应该是针对路由交换,容器强调的是并发性。


感谢魏星对本文的策划和审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们。

2016-08-17 17:022076

评论

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

机器学习算法之——卷积神经网络(CNN)原理讲解

迈微AI研发社

神经网络 学习 算法 CNN

Linux-技术专题-buffer/cache理解

洛神灬殇

【杭州】阿里巴巴搜索推荐事业部开发岗位招聘

iSausage

Java 阿里巴巴 推荐 搜索

XSKY新一代分布式文件系统XGFS揭秘——元数据服务

XSKY星辰天合

前端科普系列(1):前端简史

vivo互联网技术

大前端 Web

牧羊少年奇幻之旅

W

读书笔记 感悟

获奖公布丨程序员的七夕骚话该怎么讲?留下你爱的表白~

InfoQ写作社区官方

写作平台 话题讨论 七夕 热门活动

区块链最激动人心的未来是什么

CECBC

大数据 区块链技术

小小的代码分支模型如何撬动研发过程管理

陈晨

机器学习算法之——逻辑回归(Logistic Regression)原理详解及Python实现

迈微AI研发社

学习 算法 逻辑回归 正则化 梯度下降

Java 生成解析二维码

喜瑞斯

Git 常用命令总结

迷羊

git

机器学习 | 卷积神经网络详解(二)——自己手写一个卷积神经网络

迈微AI研发社

Python 神经网络 学习 卷积神经网络 CNN

给路灯按上“电话卡”,从此不仅只照明还给管理员“打电话”

华为云开发者联盟

人工智能 物联网 物联网化 华为云 路灯

浅谈备受开发者好评的.NET core敏捷开发工具,讲讲LEARUN工作流引擎

Philips

必看的数据库使用规范

Simon

MySQL 技术规范

一.操作系统概述

Winter

操作系统

构建统一监管制度 加快数据要素立法修法

CECBC

区块链 金融 区块链数字经济

vivo web service:亿万级规模web服务引擎架构

vivo互联网技术

架构 Web 浏览器

机器学习算法之——隐马尔可夫模型原理详解及Python实现

迈微AI研发社

Python 学习 算法 隐马尔可夫模型 HMM

Java基础知识篇(2020最新版)准备放进收藏夹吃灰的勿进

简爱W

Java

赋能云端管理 激发智能边缘 英特尔发布超能云终端解决方案

最新动态

MySQL5.7应当注意的参数

Simon

MySQL 参数

区块链加未来3至5年可以预见 上链将成为常态

CECBC

区块链 金融 数字时代

如何优雅的备份账号相关信息

Simon

MySQL

InnoDB 事务加锁分析

vivo互联网技术

MySQL 数据库 innodb

从零开始的深度学习实用教程 | PyTorch官方推荐

迈微AI研发社

人工智能 学习 算法 教程 PyTorch

2020中国RPA指数测评报告|T研究

人称T客

大数据技术思想入门(一):分布式存储特点

cristal

Java 大数据 hadoop 分布式

200 行代码就能骗人的首个聊天机器人

程序员生活志

编程 机器人

我一个普通程序员,光靠GitHub打赏就年入70万,要不你也试试

程序员生活志

电信行业的容器化改造之道_语言 & 开发_张鑫_InfoQ精选文章