写点什么

腾讯云原生战略及 Serverless 平台实践解析

  • 2019-07-11
  • 本文字数:3047 字

    阅读完需:约 10 分钟

腾讯云原生战略及Serverless平台实践解析

在前不久的KubeCon上海站,国内外各大厂商的云原生实践战略进行了程度不一的曝光,本文重点介绍腾讯云原生架构搭建及其内部Serverless实践


在云原生最佳实践中,微服务、容器、Serverless 等均被列入其中,通过应用这些新技术对原有应用程序进行改造,开发者可以最大限度发挥云计算平台在资源灵活性、计算能力等方面的优势。


早在多年前,腾讯内部就在实践“类微服务”理念,那时的微服务还没有形成良好的行业统一标准,容器技术也没有被很好地验证在生产环境中可行,腾讯就曾基于 Linux cgroup 的管理方式降低虚拟化带来的损耗,追求更加极致的性能。如今,腾讯正在逐渐将应用向云平台进行迁移,内部积累了众多云原生最佳实践。本文,InfoQ 有幸采访到了腾讯云副总裁刘颖和腾讯云中间件产品负责人肖雨浓,共同探讨云原生架构及 Serverless 最佳实践。

腾讯云原生战略

云原生可以理解为一种基于云的开发方式,可能是好技术和产品的集合,比如上文提及的容器、Serverless、DevOps,都属于云原生的范畴。在 IaaS 时期,即便每家企业的基础设施建设渐趋成熟,但应用迁移依旧非常痛苦,这是因为不同的 IaaS 层具备不同的标准,甚至不少 API 差异很大,很难找到通用且简便的迁移方式。在云原生时代,基于容器(符合行业规范)的应用程序可以很方便地在不同云平台之间进行迁移,这就是标准化优势的重要体现。


采访中,刘颖表示,腾讯云基于过去几年的技术积累和探索,面向用户推出了基于 Kubernetes 技术和生态的企业级容器平台 TKE(Tecent Kubernetes Engine),支持公有云的同时也可以支持私有云;容器服务网格 TKE Mesh(云原生服务网格管控平台),进一步解决容器化后应用治理和运维层面的问题;下一代无服务器计算平台 Serverless 2.0,解决传统 Serverless 在性能启动等方面的问题,在已有事件触发函数的基础上,根据实际用户使用场景,进一步提供面向 Http 场景的 Http Function 和 Http Service,提供高层次的通用开发框架,不仅更好的支持开发者面向 Web Service 的开发诉求,也可以支持已有业务代码向 Serverless 架构的无缝迁移;涵盖开发到交付一切所需的一站式 DevOps 平台。



容器服务网格 TKE Mesh 架构图


如果需要将一个应用完整迁移至云平台,比如 QQ 空间,上述每项技术都需要实践。正如肖雨浓在采访中所述,这实际上是一套完整的平台,通过在容器之上运用微服务、Serverless、DevOps 等技术提高开发速度并降低运维成本。


过去几年,云主机、容器、Serverless 等计算形态逐一被实践。采访中,刘颖表示,从可控性层面来说,云主机更高,Serverless 更低,但从易用性层面来说,Serverless 最为便捷,其发展速度也非常快,腾讯内部已有部分核心业务在使用 Serverless,比如相册,这说明该技术未来可以承载大流量、高可用的应用场景,腾讯也希望找到更加通用的解决方案。

Serverless 实践解析

Serverless 带来了成本和效率的改变,无服务的产品和生态正走向成熟,并逐步承载起企业核心业务。


作为继虚拟机、容器后的第三代通用计算平台,Serverless 是腾讯云原生的重点发力领域。分享中,肖雨浓表示,当前复杂的企业业务系统之所以还不能完全基于 Serverless 来实现,主要有以下几方面原因:


  • 性能问题。目前无服务尚未完全成熟,在性能方面仍存在诸多问题,如同步业务的冷启动延时、高并发函数实例扩缩容,大规模业务下函数实例的集群管理等;

  • 缺乏成熟的开发者生态。企业和研发采用无服务,需要用监控、Debug 调试、DevOps 等上下游支持;

  • 需要理解和管理底层基础设施。当前 Serverless 架构下,用户依然会感知到无服务器集群和资源的存在。


针对目前行业遇到的问题,腾讯云持续探索研究,并发布了下一代无服务器计算平台:Severless 2.0,Severless 2.0 在已有的事件触发函数的基础之上,根据实际的用户使用场景,进一步提供了面向 HTTP 场景的 HTTP Function 和 HTTP Service,提供了高层次的通用开发框架,不仅更好的支持开发者面向 Web Service 的开发诉求,也可以支持已有业务代码向 Serverless 架构的无缝迁移。


在技术上,腾讯云在控制流和数据流的模块、虚拟化层、网络层、调度层都做了彻底的重构优化,在安全,可用性,性能上也进行了全面升级。



腾讯云函数架构


1、控制流、数据流模块按照职责重新梳理解耦


如上图所示,蓝色的是控制流部分,对函数的生命周期进行管理,API 层提供管理接口,元数据记录数据库后,下发一份到消息系统,通过消息队列解耦后续的管理模块。比如创建函数的场景,网络部署模块接收到消息后,负责打通函数访问 VPC 资源的转发路径。


函数代码管理模块负责进行代码检查,依赖安装,重新打包到代码仓库以便后续下载部署。调度模块可以做一些资源预创建,实例预部署工作,元数据模块负责将管理流的数据同步到数据流的缓存系统,以便后续函数调用时使用。这样,API 不需要关注函数管理的底层细节,控制流和数据流也不会干扰。


2、计算层实现轻量级虚拟化方案


函数实例节点从传统虚拟机切换到轻量级虚拟机系统,提高虚拟机的并发部署规模和速度,同时也实现多租户间的安全隔离。


3、Auto scale 自动扩缩容模块


基于函数请求实时计算的模式,动态的扩缩函数实例,优化函数冷启动的体验问题,以及控制函数计算平台本身的成本


4、VPC 网络转发代理


函数通常需要访问 VPC 网络内的存储资源或者访问公网,涉及到网络路径的打通,目前普遍的方式是通过绑定弹性网卡和部署 NAT 网关达到这个目的,在函数实例部署的过程中耗时占比很大。


综上,在技术层面,腾讯云 Serverless 2.0 通用统一的底层架构,通过采用轻量级虚拟化技术、VPC proxy 转发方案等多种优化手段,以及针对实时自动扩缩容核心的能力优化,彻底规避了传统无服务器架构中饱受诟病的冷启动问题。


除此之外,Severless2.0 还关注开发者从本地开发、代码调试、到业务的持续集成、上线运维等整个软件开发生命周期。围绕 Serverless 平台,腾讯云构建了全面的开发支持、DevOps、运维监控等能力,协助开发者更好地向 Serverless 架构迁移。

应用场景

据了解,截止 2018 年 12 月,腾讯相册累计用户量突破 1 亿,月活 1200 万,成为小程序生态的重量级玩家。但腾讯相册团队初始阶段仅几位前端和后台开发,且后台开发无法百分百能够投入到此项目,人力非常紧缺。此外,原有后台系统有不少历史包袱,在原有架构上做新的社交化功能开发并不现实。


为解决腾讯相册团队遇到的难题,腾讯云推荐了基于 Serverless 的小程序·云开发模式,通过提供较完整的云服务架构,简化小程序开发过程中复杂的后端操作,让开发者无需关心底层服务器资源部署运维,极大节约服务器架构搭建维护成本。基于云开发,腾讯相册团队用不到 2 周时间上线了第一版小程序。



这一套基于 Serverless 的架构具备更优的弹性计算能力,它根据请求自动运行,秒级上传部署,几乎不需要运维,让用户聚焦核心业务逻辑的编写。

结束语

根据调查报告,无服务器架构市场规模在 2018 年达到 42.5 亿美元,预计在 2023 年将达到 149.3 亿美元,复合年增长率将达 29%。成本和效率两大原因促使无服务器架构的市场规模正在快速增长,并将成为下一代云计算服务的主流形态。


采访最后,肖雨浓表示,随着 Serveless 2.0 的发展,无服务不仅可以逐渐承载起企业核心业务,并且能帮助打通监控、Debug 调试、DevOps 等上下游生态,助力互联网和传统企业业务的快速建设与迭代。


相关文章:


《Serverless 最佳实践:如何在两周内开发出用户量过亿的微信小程序》


《KubeCon 盘点:云原生领域最新开源项目和大厂实践》


《阿里巴巴云原生架构实践及热议技术解析》


2019-07-11 08:387072
用户头像
赵钰莹 极客邦科技 总编辑

发布了 897 篇内容, 共 685.4 次阅读, 收获喜欢 2696 次。

关注

评论 1 条评论

发布
用户头像
上篇是阿里云原生实践,这篇是腾讯的云原生实践,重点都不一样。关于腾讯的Serverless最佳实践,推荐阅读:《腾讯云函数计算冷启动优化实践》https://mp.weixin.qq.com/s/PFrltOwRr0kITx90OgUnSg,这篇内容比较干,应该会对大家有所帮助。
2019-07-11 08:59
回复
没有更多了
发现更多内容

工信部电子标准院授予阿里巴巴9个开源项目“优秀”评级

云布道师

阿里云

如何使用极狐GitLab 机器人大幅提升研发效率

极狐GitLab

项目管理 DevOps 机器人流程自动化 极狐GitLab 研发效率

研发团队绩效考核:Leader 如何做到赏罚分明?

石云升

极客时间 复盘 1月月更 技术领导力实战笔记

岁末年初捷报频传 HashData斩获多项行业殊荣

酷克数据HashData

数据库·

声网许振明:RTC 场景 UHD 视频应用和探索

声网

前端 音视频 RTC

ElasticSearch必知必会-进阶篇

京东科技开发者

ES 集群 索引技术 Elastic Search 企业号 1 月 PK 榜

为什么数字化转型需要“低代码”?

元年技术洞察

DevOps 低代码 数字化转型 低代码平台

2023年1月中国数据库排行榜:OceanBase 持续两月登顶,前四甲青云直上开新局

墨天轮

数据库 opengauss tdsql 国产数据库 polarDB

使用MTK迁移Mysql源库后主键自增列导致数据无法插入问题

华为云开发者联盟

数据库 后端 华为云 企业号 1 月 PK 榜

图像增强及运算:局部直方图均衡化和自动色彩均衡化处理

华为云开发者联盟

Python 人工智能 华为云 企业号 1 月 PK 榜

Pipy 实现 SOCKS 代理

Flomesh

HTTP Service Mesh 服务网格 Pipy 流量管理

荣誉+1,龙蜥荣获“2022年度杰出开源运营团队”奖项

OpenAnolis小助手

开源 InfoQ 运营 获奖 龙蜥团队

【Dubbo3 终极特性】「云原生三中心架构」带你探索 Dubbo3 体系下的配置中心和元数据中心、注册中心的原理及开发实战(中)

码界西柚

dubbo 注册中心 配置中心 Dubbo3 元数据中心

2 📖 《JavaScript高级程序设计》__ HTML中的JavaScript

HoMeTown

JavaScript 前端 读书 js

mysql 中字段的 collate 和 charset 有什么区别

ModStart

证券服务应用评测系列:海通e海通财发布9.0版本,探索证券APP持续提升用户体验

易观分析

App 证券

玩转机密计算从 secGear 开始

openEuler

开源 操作系统 openEuler 机密计算

马蜂窝如何利用 APISIX 网关实现微服务架构升级

API7.ai 技术团队

api 网关 APISIX envoy ingress Kubernetes, 云原生, eBPF

运联智库发布2022供应链及合同物流百强排行榜

联营汇聚

如何打造一个“无需激励”自运转的技术团队?

石云升

极客时间 复盘 激励 1月月更 技术领导力实战笔记

LED显示屏都需要4个配套设施

Dylan

LED显示屏 户外LED显示屏 led显示屏厂家

企业的数据存储、处理与分析之道

云布道师

阿里云 云存储

eBPF SIG年度动态: eBPF和Wasm深度融合、参与7场活动及2023展望 | 龙蜥 SIG

OpenAnolis小助手

Linux 开源 ebpf 龙蜥社区 sig

云原生安全系列 5:ETCD 安全加固

HummerCloud

etcd Kubernetes, 云原生, eBPF

MatrixOne入选艾瑞数据库研究报告啦~

MatrixOrigin

分布式数据库 国产数据库 MatrixOrigin MatrixOne 艾瑞咨询

使用 NineData 实现备份集的实时查询

NineData

数据库 数据 NineData 备份集 实时备份

“低代码+PaaS”的技术创新实践

元年技术洞察

方舟 低代码 数字化转型 低代码平台

1 📖 《JavaScript高级程序设计》__ 什么是JavaScript?

HoMeTown

JavaScript #读书 前端‘’

3 📖 《JavaScript高级程序设计》__ 语言基础(上)

HoMeTown

JavaScript 前端 读书 js

3 📖 《JavaScript高级程序设计》__ 语言基础(下)

HoMeTown

JavaScript 前端 读书 js 前端面试

虚拟化技术浅析第二弹之初识Kubernetes

京东科技开发者

云计算 容器 微服务 #Kubernetes# 虚拟化技术

腾讯云原生战略及Serverless平台实践解析_文化 & 方法_赵钰莹_InfoQ精选文章