写点什么

腾讯云原生战略及 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:387177
用户头像
赵钰莹 极客邦科技 总编辑

发布了 912 篇内容, 共 708.5 次阅读, 收获喜欢 2707 次。

关注

评论 1 条评论

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

SMT和DIP生产过程中的虚焊原因

华秋电子

搭建TiDB负载均衡环境-HAproxy+KeepAlived实践

TiDB 社区干货传送门

实践案例 管理与运维 数据库架构设计 7.x 实践

【TiDB v7.1.0 荣誉体验官招募】索尼 PS5 、索尼无线降噪耳机、倍轻松颈部按摩器等你拿!

TiDB 社区干货传送门

tiflash引擎的使用小总结

TiDB 社区干货传送门

OLAP 场景实践

剪辑软件的自带曲库都怎么来的?可以商用吗?

曲多多(嗨翻屋)版权音乐

API 音乐后期 音乐开放平台 网易云

一篇文章帮你解读所有 TiDB 工具&常见问题解决大全

TiDB 社区干货传送门

河北等保测评公司有哪些?总共有几家?

行云管家

等级保护 等保测评 河北

中企出海要做什么?

用友BIP

中企出海

2023大型企业全面预算管理趋势

用友BIP

全面预算 财务共享

flutter系列之:做一个图像滤镜

程序那些事

flutter 大前端 系统架构 程序那些事

云安全的第一站:CSPM

HummerCloud

云安全 cspm

人工智能飞速发展,数智人力共享技术东风

用友BIP

人力资源 数智人力

【有奖体验】AI 都这么厉害了,可以看图生成文字描述!

Serverless Devs

汇聚各界力量 推动智能出行领域深度发展|2023开放原子全球开源峰会CARSMOS开源智能出行生态年会圆满举行

开放原子开源基金会

开源 开放原子全球开源峰会 开放原子 CARSMOS

DevChat 上线 VSCode 插件!国内免费用 ChatGPT(GPT-4)编程,做不被 AI 取代的新程序员!

思码逸研发效能

程序员 AI 研发效能 ChatGPT DevChat

搭建TiDB负载均衡环境-LVS+KeepAlived实践

TiDB 社区干货传送门

管理与运维 7.x 实践

TiDB Contributor 资料汇总

TiDB 社区干货传送门

一起薅 DevChat 公测的羊毛:国内无需注册就能用上免费的 ChatGPT(gpt-4)

胡说云原生

ChatGPT GPT-4 DevChat

人工智能领域:面试常见问题超全(深度学习基础、卷积模型、对抗神经网络、预训练模型、计算机视觉、自然语言处理、推荐系统、模型压缩、强化学习、元学习)

汀丶人工智能

人工智能 自然语言处理 深度学习 计算机视觉 6 月 优质更文活动

理论+实践:从原型链到继承模式,掌握 Object 的精髓(一)

Immerse

Java8 Stream 的核心秘密

4ye

Java' 6 月 优质更文活动

Wallys/DR9574/4*4 2.4G/support for some GPIOs .

Cindy-wallys

ipq9574

业务在线,从数智平台连接开始!

用友BIP

数智底座 Pass平台

一文读懂火山引擎A/B测试的实验类型(1)——编程实验

字节跳动数据平台

A/B 测试

IT自动化运维工具优势与劣势分析-行云管家

行云管家

IT运维 行云管家 自动化运维

为什么连接集成在企业的数智平台里是“刚需”?

用友BIP

数智底座 Pass平台

原点安全入选“数据安全推进计划 ”成员单位

原点安全

TiDB v7.1.0 版本 Resource Control体验

TiDB 社区干货传送门

新版本/特性解读 7.x 实践

记一次 Rust 内存泄漏排查之旅 | 经验总结篇

Greptime 格睿科技

rust 时序数据库 内存泄漏 云原生数据库 heap profiling

软件测试/测试开发丨用户端App自动化测试学习笔记分享

测试人

Python 程序员 软件测试 自动化测试

深度学习实践篇[17]:模型压缩技术、模型蒸馏算法:Patient-KD、DistilBERT、DynaBERT、TinyBERT

汀丶人工智能

人工智能 深度学习 知识蒸馏 模型压缩 6 月 优质更文活动

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