深入解读基础软件云原生面临的挑战 | 龙蜥技术

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: 云原生给我们带来了哪些变化,对于底层开发同学,这些变化里面蕴含着哪些机会?

2022 长沙 · 中国 1024 程序员节已于 10 月 23 - 25 日在长沙、北京等多地圆满举行。本次程序员节以“算力新时代,开源创未来”为活动主题,开设十余场专业主题论坛,覆盖多个技术领域。龙蜥社区云原生 SIG Owner 王强在1024程序员节北京峰会分享《基础软件云原生挑战》演讲,以下是本次演讲内容:


云原生的定义比较多,有 CNCF 的,也有各大云厂商的一些定义,广义的云原生是应运而生的系统架构,生在云上,长在云上,能够充分地利用云计算的基础设施。cncf 里面的定义更多是关注在技术和架构层面,通过容器、微服务、 不可变基础设施、声明式 API,基于云,实现现代应用架构的构建。

640 (7).png

经过这些年的发展,可以看到准备或者已经在生产环境使用容器技术的用户数已经达到受访者的 93%,这是一个相当高的比例。同时 2021 年 CNCF 也发布年度调查报告,宣布跨越鸿沟,成为容器编排的事实标准。可以看到云原生的趋势已经势不可挡。

640 (8).png

那么云原生给我们带来了哪些变化,对于底层开发同学,这些变化里面蕴含着哪些机会?结合下面的图我们来看看。


传统形态里面,用户是需要完整负责软硬件技术栈,不单需要懂你的程序,你的程序执行的软件环境,还需要懂你机器的硬件环境。这种时候真要做一个应用挑战是比较大的,需要找 OS,还需要管运行应用的物理机器部署到哪里,网络怎么办等等。


到了虚拟化或者 IAAS 场景里面,我们只需要负责程序和软件原型环境,硬件相关的就交给 IAAS 提供方负责。这里面之前物理环境、物理网络这些就不需要再关心,只需要关注好自己的应用和基础 OS 环境。但是 OS 相关人才是很稀缺的,真正需要解决底层问题,或者想充分发挥底层硬件的性能,这块对用户来说门槛很高。IAAS 相关技术已经发展了十多年,整体上也还有不少挑战,不过对上层已经相对比较成熟。


到云原生场景,通过标准化应用运行环境和应用编排系统,用户就只需要关注业务逻辑,这样能够大大节省底层相关开销,提升创新速度。但是用户的简单,意味着平台层的挑战就更大,需要将应用或者函数执行的 runtime、OS、kernel都进行覆盖,当然挑战和机遇并存,也正因为这些挑战,同时也给了基础软件同学更多的机会。

640 (9).png

 

用户界面上移,带给我们哪些挑战和机会?我们可以先整体看看云原生系统的架构。最上层是云原生应用,其中容器场景我们有一层是应用运行环境——容器镜像,函数场景也还好包含语言 runtime。第二层左边是云原生管控,负责应用定义、业务编排、服务框架。右边是我们核心关注的云原生节点系统。里面可以分为云原生节点管控、节点安全、节点运维、云原生运行时,云原生存储,云原生网络,以及底层支撑容器运行的容器优化 OS。最下面的是支撑整体云原生的基础设施服务。接下来我们来看下各个子模块里面的一些具体挑战。


首先来看下最底层的云原生容器 OS。传统的 OS,由于需要考虑复杂的应用运行环境,需要内置大量的服务和驱动,整体 OS 存在体积臃肿的问题。同时由于 OS 用户可以直接修改,没有合适的管理,很容易出现节点 OS 版本零散,进而集群的 OS 环境状态不一致,问题定位和升级困难。另外传统操作系统里面包含有大量容器场景不需要的包和系统服务,容易给云原生带来更大的攻击面。另外云原生场景,根据业务流量,动态的对节点进行扩缩容是常态,可以有效降低业务成本。但是动态扩缩容场景,传统 OS 并没有包含云原生相关组件,导致 OS 扩容后需要逐个下载包,并启动服务,高并发情况下载和启动服务都可能带来稳定性风险,同时也因为这些耗时操作,也会导致节点扩容耗时高,进而影响用户使用。


针对这样系列挑战,社区和云厂商纷纷推出了容器优化 OS,比如阿里云的LifseaOS、AWS 的 BottlerocketOS;红帽的 CoreOS,也足见相关挑战在云原生场景下的共识。

640 (10).png

接下来我们再来看看云原生运行时的挑战。


传统 Linux 原生容器直接跑在节点上面,不同业务和租户的容器通过节点进行隔离,由于共享内核且无有效安全隔离,存在较多的安全风险挑战。同时这种隔离存在资源碎片问题,也无法有效的利用不同容器的特征实现整体利用率的提升。针对这些问题,云原生里面又涌现出了运行时。安全容器是比较早出现的,通过结合虚拟化技术和容器技术,有效的避免了容器逃逸带来的风险,保障了节点的安全。但是引入的虚拟化层,又同时带来了比较大的开销,这也是很多人不敢使用安全容器的一个担心。不过有问题其实也就意味着机遇,这些年连续出现了gvisor、firecracker、rund 等相关技术,核心是用来解决安全容器的资源开销挑战问题,可以说通过虚拟化技术和容器结合,开辟了一个新的方向,带来了诸多的机会,通过这些年的发展也取得了不错的成果。


针对不同业务和租户混合部署的问题,同时也出现了另一个虚拟机容器,通过 k8s 来管理虚拟机,让用户既能够支持原来 IAAS 层的虚拟机相关资源,同时也能够支持容器。

随着机密计算 TEE 相关硬件技术的发展,机密容器也应运而生,通过机密容器,能够让基础设施无法访问到容器内部的数据,进一步保障了用户的隐私安全。在越来越重视隐私的未来,这块也必将得到更多的应用。但是机密容器当前始终面临的大挑战是性能,加密的内存、加密的存储、加密的网络,都给当前的软件栈带来了比较重的负担,需要软硬件结合发展,才能够最终实现机密容器的普惠发展。


云原生存储是一个比较宽泛的概念,这里我们简单看下里面容器镜像和数据加速方面的。


容器带来了应用打包分发的标准化,但同时也让应用需要额外包含一个运行应用的环境,让应用体积成倍增大。在并发场景,由于不同节点的 pod 启动都需要下载镜像,镜像仓库的带宽往往会成为瓶颈。另外容器镜像单独存储,也使得容器启动依赖于镜像下载,对应一些 serverless 场景镜像下载会严重拖慢容器启动速度。此外,对于存放大量镜像的镜像仓库,里面每个容器都包含有一个运行环境的基础镜像,这部分是有大量的重复数据,如何能够有效的提升存储效率也是一个比较有挑战的工作。


随着学术界研究表明一般容器镜像只有 6% 内容会被实际使用,直接牵动了整个容器镜像的大量优化工作,比如容器镜像的按需加载,比如 P2P。各大云厂商为了解决容器镜像加载问题,也是各显神通,有将镜像集成到云盘的,有为镜像构建索引文件的,有构建新的镜像存储格式的。但是目前还没有形成一个统一的方案,也没有形成标准,这块后面还有不少路需要走。


存储里面另外一块是数据加速挑战,大数据和 AI 场景云原生应用依赖的数据量往往比较大,但是这些数据里面真实访问的往往只是里面很小一部分,而且会有比较多的热点。是否能够通过小的缓存,实现大存储数据访问的加速,是一个比较有挑战的。另外 AI 场景,由于 GPU 很多数据依赖于存储,由于存储访问速度慢进而拖慢整个 GPU 资源使用效率问题比较常见,如何有效地提升这些数据访问带宽。


这块这几年开源的比较多,比如 Nydus、Dragonfly、fluid、stargz 等,给大家带来了比较多的选择。


看完存储,再来看下云原生网络。


云原生场景,同时随着微服务化和函数化,实例规格也越来越小,同时便捷的扩缩容也对网络弹性提出了较大的挑战。为了避免故障影响面,通常需要将服务分散到不同的物理节点部署,在规模大的情况,路由更新会是一个比较慢的过程,需要数秒甚至到分钟级,对云原生应用快速弹性带来了比较大的制约。同时随着规格的减小,单节点部署的实例规模也会越来越高,这种情况如何支撑单节点的高密网络,也是存在比较大的挑战。另外,随着内核 eBPF 技术的发展,给云原生网络优化也带来了诸多机会,基于eBPF 的 kube-proxy 优化,基于 eBPF 优化ovs,也是有不少的机会点。


最后再来看看云原生安全。中国开源界这几年在快速的发展,而且是越来越正规的发展,安全在开源里面挑战确实很大,因为开源软件本身供应链上面没有很好的保障,大家都可以往里面贡献代码,所以安全这个地方确实是真的很需要大家下功夫的一个点。云原生作为整体底层架构的创新,也同样面临诸多安全挑战。


在供应链安全上,我们可以看到容器镜像安全是个大的挑战,大量公用的容器镜像,并没有直接为其来源进行有效审核和跟踪。配置文件安全也是云原生一大关注点,用户证书的安全保障,节点被攻击后如何有效避免对整个集群的攻击。再就是云原生软件栈安全,软件栈的 cve 维护和更新,软件栈供应链的安全。同时运行时也面临不少安全挑战,之前已经介绍过,这里不再展开。


另外一个就是安全的检测和风险阻断。基于 eBPF 能够实现轻量的安全检查,同时也构建了越来越完善的安全阻断能力,这给传统的安全检测和风险阻断带来了不少机遇。

640 (11).png

基于过去的一些经验给大家分享了一些在云原生技术上的挑战,阿里云过去几年在云原生领域成立了袋鼠云原生底层系统相关的组,我们是整个专注在底层系统核心技术上突破。同时,在这个过程中我们也积极的参与上游开源社区,在内部构建自己系统的时候也希望这些技术开源出来让大家共同使用,整体推动国内基础软件在云原生领域得到蓬勃的发展。


当然,我们也成立了龙蜥云原生 SIG,专注在云原生底层系统上的构架,我们希望秉承着开放协作、共迎挑战、共创云原生未来这样一个方式和社区伙伴携手共进。希望大家能够体验我们容器云原生这块的技术,真正把这些技术应用到生产环境,帮助业务获得更低的成本、更高性能、更可靠的安全性。


2022年云栖大会,龙蜥社区特设云原生专场分享,点击这里一键查看详情,本次专场只对外开放 30 个报名名额,报名且现场参会的同学人人一份龙蜥伴手礼!记得文末点击报名~

云原生.jpg

云原生 SIG 地址链接:

https://openanolis.cn/sig/cloud-native

—— 完 ——

加入龙蜥社群

加入微信群:添加社区助理-龙蜥社区小龙(微信:openanolis_assis),备注【龙蜥】与你同在;加入钉钉群:扫描下方钉钉群二维码。欢迎开发者/用户加入龙蜥社区(OpenAnolis)交流,共同推进龙蜥社区的发展,一起打造一个活跃的、健康的开源操作系统生态!

640 (12).png

相关实践学习
通过workbench远程登录ECS,快速搭建Docker环境
本教程指导用户体验通过workbench远程登录ECS,完成搭建Docker环境的快速搭建,并使用Docker部署一个Nginx服务。
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。     相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
5天前
|
运维 Cloud Native 安全
构建未来:云原生技术在企业数字化转型中的关键作用
【4月更文挑战第30天】 随着企业加速数字化步伐,云原生技术已成为推动创新与维持市场竞争力的重要驱动力。本文将深入探讨云原生技术的基本原理、关键组成部分以及如何通过这些技术实现敏捷开发和自动化运维。我们将分析容器化、微服务架构、DevOps实践和持续集成/持续部署(CI/CD)流程等云原生核心概念,并讨论它们如何共同塑造一个灵活、可扩展且高度可用的系统环境。此外,我们还将探索云原生安全策略,确保在追求速度和效率的同时不牺牲安全性。
|
2天前
|
Cloud Native Devops 持续交付
构建未来:云原生技术在企业数字化转型中的关键作用
【5月更文挑战第18天】 随着数字浪潮的不断推进,企业正面临着前所未有的转型压力与机遇。本文深入探讨了云原生技术如何成为支持企业敏捷开发、自动化运维和资源优化的核心。通过分析微服务架构、容器化、持续集成/持续部署(CI/CD)以及DevOps文化的融合,揭示了云原生技术如何推动企业IT架构的现代化,并加速其业务创新的步伐。文中还将展示实际案例,以证明云原生实施对企业竞争力提升的实际效益。
|
3天前
|
监控 Cloud Native 持续交付
构建未来:云原生技术在企业数字化转型中的关键作用
【5月更文挑战第18天】 随着数字浪潮的汹涌推进,企业正面临一场前所未有的转型挑战。传统的IT架构已不足以应对市场的快速变化和日益增长的业务需求。云原生技术,作为一种新兴的软件开发模式,以其独特的弹性、敏捷性和可扩展性,被视为推动企业数字化转型的重要引擎。本文将深入探讨云原生技术的核心组件,以及如何借助这些技术实现业务敏捷性和持续创新,从而构筑企业在数字化时代的竞争优势。
|
3天前
|
Cloud Native 安全 持续交付
构建未来:云原生技术在企业数字化转型中的关键作用
【5月更文挑战第17天】 随着企业加速其数字化战略,云原生技术成为推动创新和灵活性的核心。本文探讨了云原生架构和服务网格如何优化资源利用、提高部署速度,并增强系统的整体可伸缩性和可靠性。通过分析云原生的关键技术组件,如容器化、微服务和持续集成/持续部署(CI/CD)流程,揭示了它们如何助力企业在竞争激烈的市场中保持领先地位。此外,文章还讨论了企业在采纳云原生技术时面临的挑战和解决策略,为读者提供了一个关于如何有效利用这些技术的全面视角。
|
5天前
|
敏捷开发 Cloud Native 持续交付
构建未来应用:云原生技术在企业转型中的关键作用
【5月更文挑战第14天】 随着数字化转型的不断深入,企业对于敏捷性、可扩展性和成本效益的需求愈发显著。云原生技术以其独特的设计理念和架构模式,成为推动企业IT架构现代化的重要力量。本文将探讨云原生技术的基本原理及其如何助力企业在竞争激烈的市场环境中保持灵活性和创新能力,实现从传统IT向现代云基础设施的平滑过渡。
|
5天前
|
Cloud Native OLAP OLTP
云原生一体化数据库技术是一个具有潜力的领域
【5月更文挑战第13天】在业务处理分析一体化趋势下,开发者需权衡OLTP和OLAP数据库的选型。一体化数据库如阿里云瑶池通过Zero-ETL实现数据自动搬迁,简化流程,支持高并发事务和复杂分析。但也带来定制化开发、性能优化及管理维护的挑战。随着集中式与分布式数据库边界模糊,开发者需更深入理解各种架构特点,灵活选择以适应业务需求。云原生一体化数据库在处理大规模数据和高并发场景中展现优势,但选择时需综合考虑技术成熟度、成本和维护因素。总的来说,一体化数据库技术是未来发展的重要方向,但也需要谨慎评估和决策。
28 3
|
5天前
|
运维 Cloud Native 持续交付
构建未来:云原生技术在企业数字化转型中的关键作用
【5月更文挑战第12天】 随着企业加速其数字化转型的步伐,云原生技术已站在风口浪尖,成为支撑现代应用架构的骨干力量。本文深入探讨了云原生技术的核心概念、发展历程以及如何在不断变化的技术环境中满足企业的动态需求。我们将分析微服务、容器化、持续集成和持续部署(CI/CD)以及DevOps文化如何共同塑造了一个敏捷、可扩展且高效的系统环境。通过实际案例和最新趋势的讨论,文章旨在揭示云原生技术如何使企业能够快速响应市场变化,提高运营效率,并最终实现业务目标。
8 2
|
5天前
|
Cloud Native Devops 持续交付
构建未来:云原生技术在企业数字化转型中的关键作用
【5月更文挑战第9天】 随着企业加速其数字化转型的步伐,云原生技术已经成为推动创新和灵活性的核心力量。本文将探讨云原生架构的基本原理、它如何促进微服务和容器化策略的实施,以及它如何帮助企业实现敏捷性和可扩展性。通过对最新行业趋势的分析与实际案例研究,文章揭示了云原生技术如何助力企业优化资源配置,提高运营效率,并最终在竞争激烈的市场中保持领先地位。
|
5天前
|
边缘计算 运维 Cloud Native
探索云原生技术的未来发展趋势
随着数字化时代的不断深入,云原生技术已成为企业数字化转型的重要支撑。本文将探讨云原生技术的定义、特点以及未来发展趋势,重点关注容器化、微服务、自动化运维等方面,展望云原生技术在未来的发展方向与挑战。
33 1
|
5天前
|
Cloud Native 安全 Devops
构建未来:云原生技术在企业数字化转型中的关键角色
【5月更文挑战第5天】 随着企业加速其数字化进程,云原生技术已成为推动创新和灵活性的重要力量。本文探讨了云原生技术的核心组件、实施策略以及它们如何帮助企业实现敏捷开发和持续交付。通过深入分析容器化、微服务架构、DevOps实践和自动化工具的融合,揭示了这些技术如何共同作用,支持企业在竞争激烈的市场中快速适应变化。同时,文章还将讨论云原生安全挑战及应对措施,为读者提供一个全面的云原生技术应用视角。
53 14

热门文章

最新文章