AICon上海|与字节、阿里、腾讯等企业共同探索Agent 时代的落地应用 了解详情
写点什么

金山云 CTO 杨钢:用做 WPS 的思路重写了一套私有云系统

  • 2013-12-24
  • 本文字数:3366 字

    阅读完需:约 11 分钟

2013 年初,金山启动私有云项目,该项目旨在为向金山提出了私有云网盘 / 存储需求的政府、大型企业以及中型企业提供服务,项目组由金山云 CTO 杨钢牵头组建。InfoQ 中文站对杨钢进行了专访,了解其私有云服务的技术组成和业务状态。

嘉宾介绍:杨钢,金山云 CTO,首席架构师。杨钢曾历任金山办公软件公司技术总监、首席架构师、助理总裁。他 2007 年开始负责筹建互联网服务研发团队,开展了包括云存储技术在内的多项新技术研发工作。其产品之一便是现在的金山快盘。在他的主导下,快盘推出了开放平台服务,目前已有腾讯(Web QQ)、康佳、创维、金蝶、小米等多个合作伙伴。2012 年初金山快盘团队完成拆分时,他作为创始人之一成立金山云公司,现任金山云 CTO。 杨钢在 2003 到 2007 年的四年时间里担任金山办公软件公司系统架构组长,主持 WPS Office 2005(863 重大专项课题)及后续版本架构制订和技术攻坚工作。从 2008 年开始,他又作为技术负责人,参与核高基重大专项《网络化中文办公服务平台的研发及产业化》课题研发工作。在此期间主持完成了云存储、云计算框架等各个子任务。并推出了 WPS Office Web、金山快盘等多个产品。

InfoQ:金山云私有云的模式是局域网 / 客户自建数据中心模式,还是在金山云的数据中心划分一块私有 Zone 的模式?

杨钢:我们的客户一般选择两种方式,一种是内网部署,另一种是部署在客户自己指定的机房,比如客户自己在电信机房租的空间。大型企业和政府客户都是采取内网部署机制,主要业务就是把公有云上的文档存储、分享、协作功能搬到局域网。

至于放在我们的数据中心私有 Zone,目前是没有的。选择私有云的客户都要求环境的可控性,他们要求自己选机房,自己能够看见自己的设备。

InfoQ:你对私有云业务的观点是什么?几年内快速盈利的短期模式,还是可以有持续发展的业务?

杨钢:我认为私有云模式是目前比较清晰的可以盈利的模式,在未来两年的发展趋势会比较乐观,而且再往后的持续发展也是不错的业务。

很多客户都接受私有云的这种模式:

  1. 它跟卖软件不同:并不是一次性采购,初期采购价一般远低于传统软件。后续则通过支付服务年费来不断获得功能升级和产品维护。因为是存储型业务,客户对持续维护的需求很高,他希望供应商能保障持续提供服务的能力。
  2. 它跟公有云也不同:公有云的出发点是以低成本满足大部分用户的需求,而私有云则是通过人力来提供定制化服务的模式,精细化满足客户的具体需求。

为什么说私有云是可以长期持续的模式?我认为在很长一段时间内,大型企业对把数据放在公共网络上还是不信任的,尤其棱镜门事件之后,政府和中大型企业对公有云的心理障碍变大。私有云在很长一段时间内仍是办公领域的主流。

InfoQ:从技术层面,提供给私有云用户的软件跟金山云公有云的软件是否一致?定制化需求主要在哪些方面?

杨钢:因为上述私有云跟公有云的不同,所以两者在技术上的关注点也是完全不同的。公有云着重于在尽可能低的基础架构成本上提供一些通用性强的服务,而私有云的关注点则在于用较低的人力成本满足定制化需求。

就拿设备这个层面来说,公有云往往是一个专业运维团队管理集中在一起的大量服务器,我们用比较便宜的硬盘和服务器组成存储集群,依赖软件进行冗余,同时运维人员的质量是很高的,而且就算多加一些运维,这个成本跟上万台服务器相比是不算什么的。而私有云的话,如果存储量不是特别大,我们都建议用户使用专业存储设备,例如磁盘阵列。实际上,我们对客户那里的环境会做最保守的设计,因为客户那里有可能连机房空调这样的环节都无法保证,所以设备上会倾向于选择最可靠的。顺便说一句,对存储量需求大的客户,我们有专门为私有云客户设计的私有云存储系统,从性能和架构上我们都有信心跟 EMC 的 Isilon 进行 PK,性价比更高。

由于两者之间在运营模式(通用 vs 定制)和设备上的区别,这就决定了在软件层面上,我们的私有云软件是重新开发的,没有直接拿公有云的软件来用。实现上当然参考了很多公有云的技术,但都是重新写的。

说到软件实现,这里还是很有意思的。金山私有云这套软件是在 C++ 语言的基础上开发的,但服务端和部分客户端代码是使用我自己维护的一个叫做 C–的编码风格实现的。这个 C–项目是我在 06、07 年那会儿做的,因为一直觉得 C++ 程序员特别难找,甚至于我自己对 C++ 的一些特性也会感到困惑,所以做的这个 C–是一个类似 C#和 Java 的语言风格,仍然基于 C++ 的编译器,工具和库跟 C++ 都是共用的,可以无缝的进行跟 C++ 的混合编程。这样做的好处在于一般的程序员只需要一个星期的培训就可以上手,在性能上又有可媲美 C++ 的优化空间,在开发效率和运行效率之间达成一个很好的平衡。当时本来是想用这个改写 WPS 的,但是 WPS 的代码量太大,折腾的代价太大,结果用在了这个私有云项目上。

其实我觉得严格来说,私有云并不是互联网产品,而是软件产品。互联网团队和软件团队在研发思路、运营思路上是完全不同的。我本人之前是 WPS 的技术总监兼架构组组长,后来做云,所以能够兼顾这两种不同的文化,这事儿说来也挺有意思的。而且因为我本人负责技术工作,所以两套技术上的共享可以协调,代码之间可以互相借鉴,还能够根据实际情况做联合开发。

InfoQ:一般愿意做私有云项目的都是资金方面给的比较多的大客户,当然给客户做单独的服务,成本是要比公有云高很多的。就你的经验,服务一个大客户,需要投入多少研发,多少运维,多少客服?

杨钢:我们目前提供的服务主要有三种:

第一种,面向大型企业和政府部门。这类客户的特点是定制要求非常多,尤其是在安全方面(这里的安全是指国家保密制度相关的安全功能)。公有云在这个需求上几乎没有覆盖,而私有云对保密要求是很多的。

不同的客户会有各种功能需求,而且要和客户本身的系统做深度集成。我们要给每个客户提供产品化的方案,那怎么办呢?我们做了一个非常弹性、灵活的引擎,功能以插件的方式提供,融合到一个架构里面。因为客户持续支付服务费,我们都会提供免费升级的服务,这个升级的思路是给引擎升级,而插件不动。这样子,客户可以不断获得新的功能,同时我们团队也不需要维护大量版本分支。这其实是 Office 和 VBA 的思路:Office 的很多功能是固定的,但是加上 VBA 就可以做出很多东西来。当然,这个技术实现难度是很高的。

因为有这样一套灵活的架构,涉及到定制化方面的插件代码量其实不多,所以架构成熟后,未来预期平均服务一个大客户只需要投入三个人就可以满足定制、运维、客服的需求。

第二种,面向中型客户。这类客户一般是民营的行业用户,对定制功能的需求很少,他们会问,跟他们同一行业的国有企业那边是怎么用的,直接抄过来一份用就可以。这类客户我们只需要投入运维和客服即可。

第三种服务是培训,就是要教客户怎么使用这套系统。培训一般是集中式培训,一般一个客户需要一两次集中培训。

InfoQ:所以,私有云的产品目前是一个什么状态?我们是用什么机制来做私有云软件的管理、持续集成、自动化测试、分支合并的?

杨钢:现在的版本我们叫做金山私有云 2.0,这套引擎是从今年年初立项后开始开发的,现在功能开发已经完成,还在做界面美化、bug 修正、测试等完善工作。有十几个客户已经在使用了。

为什么从 2.0 版本开始,这事儿说起来也挺有意思的。其实金山快盘团队最早是从珠海搬到北京的,当时有一部分人选择留在珠海,然后做了 1.0 版本。今年我们团队在之前的经验上,重新设计架构开发了现在 2.0 版本。新版本最大的特色有三个:一是新加入的远程网盘客户端,不占本地空间,而且因为客户端没有数据留存,可以提高安全性;二是为定制化而生的引擎加插件设计,可以大批量满足定制需求;三是提供了独立的集群存储产品,给需要大量存储的用户提供一个高性价比的选择。

同时今年过年之后,我们会给所有 1.0 的客户进行升级,把客户也都合并到 2.0 上。

软件维护这一块,因为我们只定制插件开发,不定制引擎,所以引擎是统一开发维护的,这是大部分的代码量。插件代码量相对很少,把插件开发落实到各个小组上,每个小组维护几个插件。在软件开发管理上,基本上跟之前做 WPS 的方式是一样的。

相关阅读:

2013-12-24 17:493745

评论

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

大数据培训-Hive高频面试题分享

@零度

hive 大数据开发

FinClip 与 uniapp:轻应用平台与前端开发框架

FinClip

【IT运维】国内优秀的IT运维企业有哪些?

行云管家

云计算 运维 网络运维 IT运维

MacOS 系统如何把PHP版本升级到 7.4或者更高的版本呢,今天教程来啦

CRMEB

招聘 | 多家区块链项目招募开发者!

One Block Community

区块链 招聘 波卡

2022年3月国产数据库大事记-墨天轮

墨天轮

数据库 TiDB 国产数据库 KingBase gbase8a

如何在 Zadig 上玩转自动化测试,为业务质量保障提供最大价值

Zadig

云原生 软件测试 CI/CD 软件交付

企业怎样有效地进行文档管理

小炮

企业 文档管理

一文搞懂Netty发送数据全流程 | 你想知道的细节全在这里

bin的技术小屋

网络编程 Netty Java’ 4月月更 Reactor多线程

CESS:波卡生态去中心化数据存储的未来

One Block Community

区块链 云存储 去中心化存储 CESS

低代码平台常见的安全隐患,J2PaaS低代码平台如何解决?

J2PaaS低代码平台

低代码开发 低代码平台 企业级低代码平台 J2PaaS低代码平台

Zadig 基于 OPA 实现 RBAC 和 ABAC 权限管理技术方案详解

Zadig

云原生 CI/CD 软件交付

领域驱动设计(DDD)理论与方法

Java工程师

Java 程序员 互联网 DDD 架构设计

行云管家荣膺《中国网络安全行业全景图(第九版)》收录

行云管家

网络安全 行云管家 安全牛

幸运哈希值竞猜游戏系统开发方案

薇電13242772558

区块链 哈希值

基于云服务器ECS搭建网页游戏《浪剑天下》

阿里云弹性计算

玩转ECS 游戏服务器

如何在云端重塑内容生产?来看这场虚拟人主持的发布会

阿里云CloudImagine

阿里云 音视频 视频剪辑 智能生产 视频云

Moonbeam 漏洞赏金计划,最高奖金 100 万美金!

One Block Community

区块链 波卡 Moonbeam

3分钟了解Vue开发小程序的技术原理

FinClip

TiDB 6.0 发版:向企业级云数据库迈进

PingCAP

Redis Stream 专为队列而生,别再用 List 实现队列了

码哥字节

Redis Stream Redis 数据结构 4月月更

OneBlock | 区块链人才聚集地,面向全球的Substrate 开发者社区

One Block Community

技术社区 #区块链#

EMQ 映云科技 & 阿里云推出“一站式工业数字化解决方案”,共建产业数据湖生态圈

EMQ映云科技

阿里云 开源 物联网 IoT emq

波卡动态 | Moonbeam 上第一个3D NFT项目宣布合作

One Block Community

区块链 以太坊 polkadot 波卡 Moonbeam

恒源云(Gpushare)_新功能上线,你确定不进来看看?

恒源云

GPU服务器 GPU算力

解决两大难题,TDengine 助力亿咖通打造自动驾驶技术典范

TDengine

数据库 tdengine 物联网

能让程序员涨薪5K的Hystrix核心工作原理,你真的不打算学吗?

Java工程师

Java 程序员 互联网 微服务 科技

为什么都是技术合伙人被踢出局?

方云AI研发绩效

团队管理 研发管理 CTO SaaS

写作社区 2 周年,全员狂欢燥起来!

InfoQ写作社区官方

热门活动 InfoQ写作社区2周年

真的是最全的一致性hash环讲解了

Java工程师

Java 架构 分布式 算法 hash

Pulsar—新一代云原生消息平台

中原银行

分布式 pulsar 中原银行 分布式消息

金山云CTO杨钢:用做WPS的思路重写了一套私有云系统_服务革新_sai_InfoQ精选文章