NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

又拍云张聪谈安全、HTTPS、自定义、CDN 的未来趋势

  • 2016-10-25
  • 本文字数:2419 字

    阅读完需:约 8 分钟

近期,EGO 对又拍云研发构架师张聪进行了专访,在专访中张聪阐述了他对 CDN 未来独特的见解,听得小拍崇拜不已,赶忙为大家搬来采访稿,大家快来跟小拍一起跟随张聪了解一下 CDN 的未来吧!

专注于场景化 CDN 业务的又拍云,自创办以来,业务、团队一直在快速扩张。在这个过程中,又拍云完成了技术选型、替换、迭代优化等一系列工作,既有国内较早引进 ngx_lua 的壮举,也难以避免地有踩过一些坑。EGO 特别采访了又拍云架构师张聪,听他聊聊又拍云在基础架构方面的那些事儿,也聊聊关于 CDN 未来又有哪些可能。

下面是经过编辑整理的采访内容:

EGO:先简单介绍一下自己吧?

张聪:我 4 年前加入又拍云,之后一直从事 CDN 领域的工作,非常有幸经历了又拍云 CDN 从早期起步比较简陋、用户量比较少的阶段,到今天业务量不断扩大、技术体系不断变革完善的整个发展过程。

最早团队小的时候,什么事都需要自己去做,像写代码、上线、运维等都得一个人搞定,现在 CDN 团队不断扩大,除了技术之外,我也开始负责一些管理团队的工作,虽然中间也遇到了很多问题,但也收获了很多经验,也是跟着公司的变大不断去适应不同的挑战。

引入 ngx_lua、二次开发、开源

EGO:能分享一下您在又拍云最有成就感的事吗?

张聪:公司成立以来,又拍云业务一直在不断快速扩张,在这个从小变大的过程中,肯定需要对架构进行改造和升级,否则就无法承受业务的增长,所以我们曾面临了一些技术选型的问题。

最早的时候,又拍云 CDN 用 Nginx C 模块进行业务开发,但它的维护成本很大。我们作为一家创业公司,就想选择开发尽可能方便、效率尽可能高的技术,经过多方考量之后,我们引入了 ngx_lua 项目。虽然当时 ngx_lua(下图)在国内没那么普及,应用也还不是很广泛,但我们觉得它非常符合我们的需求,就把它引入到了又拍云的 CDN 开发框架里了。

在创业公司,技术选型还是非常自由的,只要关键的核心技术人员能够胜任某些新技术,公司一般也会支持这些新技术以及架构上的调整。

引入之后,其实也遇到过很多困难,因为 ngx_lua 在国内的使用不多,很多资料都偏向国外,国内甚至很少能够找到交流的人,包括招人的时候,也很难招到相关的技术人员。我们是先自己摸索,慢慢地把线上系统从旧模式替换到新的模式。同时,我们也招了一些技术比较好的新人,从头培养,这样持续半年、一年之后,他们就能适应新的开发方式。中间也踩了很多坑、付出了很多代价,但当我们都跨过去后,整个 CDN 业务基础的开发环境也就顺利转变过来了。

这样,后续的开发、功能逻辑的迭代、维护都比之前轻松了非常多,而且在之后很多 CDN 功能的演进中,我们的效率都是比较高的。我们也总结出了很多文档,能给新来的技术同学学习,同时,这个项目在国内也越来越流行了,我们也能跟国内同行有更多的交流。

现在回过头来看,当初把 ngx_lua 引进公司,到后面 CDN 整个技术发展方向再到现在,这个选择是非常正确的,整体加速了开发节奏、节省了维护负担。对我们这样 CDN 领域的创业公司来说,就需要在条件有限的情况下选择一项更高效的技术。

这也是我印象比较深刻的一件事,对技术人而言,能经历这种引入一个新技术,到自己慢慢掌握它,再到能跟同行去分享,是非常有意义的一件事。

EGO:现在还在沿用 ngx_lua 吗?

张聪:还在用。但官方更新不一定能满足我们现在的需求,所以我们会在这个基础上加入自己的东西,做二次开发。

一开始我们只是拿来用,之后业务复杂了,我们就自己去修改它、完善它,跟它一起开发、发展。同时,我们也陆续在 github 上开源了几个相关项目,回馈社区。

EGO:能分享一下您踩过的坑、遇到的挑战吗?

张聪:其实踩过很多坑,我讲一个比较典型的。一般来讲,CDN 厂商承受的请求量、流量是非常大的,甚至远比中型站点的流量来得大。

在这个基础上,我们做一些功能的改造、新功能的发布的时候,就会面临很大的挑战。特别是功能的改造,就像是在一辆行驶得很快的车上换零件,业务量越大越有这种感觉,有些比较大的改造,往往还会涉及到系统的好几层。因此,我们很难非常干净利索地去做整个架构的调整、演进,只能是做好整个调整计划,然后把整个计划拆成 N 片,一点一点去做推进,就好像一个一个零件做替换一样。

其中,最大的痛苦是,因为 CDN 上有很多缓存,如果更换某个“零件”的过程中一旦出了问题,代价就会非常大。因为除了错误本身之外,这些错误还会污染到 CDN 上一些缓存系统,相当于你除了要修复 bug 之外,还要把被污染的缓存部分挑出来、清理掉,这是非常让人头疼的一件事情。用数据开发做比喻,就相当于你的数据被污染了,你修复了 bug 之后,还要挑出那些被污染的数据,再把它们修复掉。这个过程是非常费心费力,也非常折腾。
这是让我印象比较深刻的踩过的坑。又拍云也制定了各种方案,采取了人为的、系统的各种措施来减少这种事情发生的可能,比如现在我们改造之前,就需要经过多个精心设计的流程、观察各种数据指标,以保证过程的顺利。

CDN 服务的未来:安全、可定制化、自主配置

EGO:能分享一下 CDN 领域未来的趋势吗?

张聪:第一,CDN 可能不仅仅是简单的加速,还需要有一些安全防护方面的功能。你的网站会不会被攻击、别人是不是异常访问你的网站,这些都是 CDN 安全领域的内容。特别是大客户,他们对 CDN 安全方面的要求会非常高。同时,因为 CDN 是一张全国的网,它承受攻击的能力肯定要比用户的一个源站、单个节点的能力来得高,所以 CDN 上可以做好多安全相关的产品。

又拍云也在完善 CDN 安全方面的产品,在去年就推出了应用防火墙系统,一些简单的注入攻击、漏洞扫描,又拍云 CDN 网络就能帮用户挡掉这些风险。这是我觉得未来 CDN 发展的一个方向点。

第二,HTTPS 是未来的趋势。它的应用会越来越广泛,CDN 也就需要对此做出相应的变化。例如又拍云就推出了 HTTPS CDN 的动态证书调度,用户在我们后台简单配置一下他的域名,然后上传 HTTPS 证书,几秒之后就能全国生效,我们的边缘节点就会进行加载的证书、支持 HTTPS 访问,非常方便。

2016-10-25 02:27901

评论

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

NFT市场格局仍未变化,Okaleido能否掀起新一轮波澜?

股市老人

认识区块链和比特币

沃德

程序员 7月月更

一款强大的mock数据生成工具

Xd

在线摇骰子色子工具

入门小站

工具

presto+yanagishima环境安装

怀瑾握瑜的嘉与嘉

presto 7月月更

Qt | 控件之QComboBox

YOLO.

qt 7月月更

Unity实战问题-WebGL问题集锦-上篇

芝麻粒儿

Unity 7月月更

Okaleido或杀出NFT重围,你看好它吗?

EOSdreamer111

「分享」从Mybatis源码中,学习到的10种设计模式

小傅哥

设计模式 小傅哥 mybatis 大厂面试 面试问题

Python 迭代器介绍及其作用

宇宙之一粟

Python 迭代器 7月月更

在线SQL转文本工具

入门小站

工具

linux之realpath命令

入门小站

Linux

Android gradle常用

沃德

android Gradle 7月月更

C#入门系列(二十三) -- 分部类和抽象类

陈言必行

7月月更

分布式系统中数据存储方案实践

Java 架构

strlen()

謓泽

7月月更

QComboBox 样式表

小肉球

qt 7月月更

使用kitti数据集实现自动驾驶——发布照片、点云、IMU、GPS、显示2D和3D侦测框

秃头小苏

7月月更 kitti

【Docker 那些事儿】容器网络(下篇)

Albert Edison

Docker Kubernetes 容器 云原生 7月月更

Spring cloud 之限流

Damon

7月月更

鲲鹏代码迁移工具基础知识

乌龟哥哥

7月月更

云原生(六) | Docker篇之实战Dockerfile

Lansonli

Docker 云原生 7月月更

3大类15小类前端代码规范,让团队代码统一规范起来!

南极一块修炼千年的大冰块

7月月更

王者荣耀商城异地多活架构设计

地下地上

架构实战营

Dockerfile中的保留字指令讲解

宁在春

Docker Dockerfile 7月月更

zookeeper-watcher的javaApi相关使用

zarmnosaj

7月月更

python文件操作知多少

迷彩

Python基础 文件操作 7月月更

关于InnoDB表数据和索引数据的存储

程序员欣宸

MySQL innodb MySQL InnoDB 7月月更

uni-app进阶之自定义【day13】

恒山其若陋兮

7月月更

Zabbix 6.0 源码安装以及 HA 配置

耳东@Erdong

zabbix ha 7月月更 zabbix 6.0

Block在开发中的实践应用

NewBoy

ios 前端 移动端 iOS 知识体系 7月月更

又拍云张聪谈安全、HTTPS、自定义、CDN的未来趋势_音视频(后端)_EGO陈圆圆_InfoQ精选文章