云原生引领全云开发时代

本文涉及的产品
函数计算FC,每月15万CU 3个月
简介: 云原生是近几年最火爆的技术热词之一,几乎所有的云计算产品都会或多或少跟云原生发生关联,云原生正在重塑整个软件的生命周期。但到底什么是云原生?云原生带来的最大的技术创新和未来机会是什么?以及,围绕云原生,是否可以构建出一套云上的开发和运维体系,打造新一代研发平台,实现研发效率的最大化?

作者 | 叔同
来源 | 阿里技术公众号

云原生是近几年最火爆的技术热词之一,几乎所有的云计算产品都会或多或少跟云原生发生关联,云原生正在重塑整个软件的生命周期。但到底什么是云原生?云原生带来的最大的技术创新和未来机会是什么?以及,围绕云原生,是否可以构建出一套云上的开发和运维体系,打造新一代研发平台,实现研发效率的最大化?

以下内容整理自阿里云云原生应用平台负责人丁宇(叔同)在阿里内部的技术分享,希望帮助技术同学更好地理解云原生。

image.png

丁宇(叔同)

我经常在电梯里听见一些同学在讨论云原生,大家会问云原生为什么这么火。我们将时间线倒推20年,当时最流行的是企业软件架构,企业使用ERP、CRM做信息化改革。十年前,消费互联网开始崛起,那个年代最流行的是互联网技术;而今天是产业互联网盛行的时代,在云计算快速发展的背景下,企业需要加速数字化创新,打造数字韧性能力,云原生应运而生。

一 因云而生的云原生

什么是云原生?这是很多同学都关心的问题。云原生的代表技术包括容器、服务网格、微服务、不可变基础设施和声明式API。这些技术能够构建容错性好、易于管理和便于观察的松耦合系统。结合可靠的自动化手段,云原生技术使工程师能够轻松地对系统做出频繁和可预测的重大变更。

image.png

云原生是一种新的计算方式,让应用能够充分使用云的计算优势。只有结合云原生所提供的云服务,改造应用的架构,才能够更好地使用云原生技术,以及更好地构建弹性、稳定、松耦合的分布式应用,解决分布式复杂性问题。此外,对架构的改造还意味着相关的开发模式、交付方式、运维方式等都要随之改变,比如,采用微服务架构重写应用、用声明式 API和自动化工具升级运维方式等。简单来说,云原生使得整个软件的生产流水线都发生了巨大的变化,而具体的变化程度又取决于企业对云原生的使用程度。

那么,云原生和云计算的区别是什么?我们认为,云原生是云计算的再升级。云计算的优势是资源、计算、存储、网络的池化,这种池化带来的好处是大规模的集约性管理,弹性、分布式无处不在,它可以用一种API进行运维管理,从而实现管理的自动化。今天,云原生技术只有跟云结合起来才能实现它的使命,去构建那些具备高弹性、可扩展、松耦合、容错性好等特性的系统。

云原生和云计算结合在一起是什么?就是云原生产品。今天,阿里云对于云原生有一个定义,叫生于云、长于云,因云而生的产品、技术、软件、硬件、架构,我们认为它都是云原生。以阿里云为例,我们提供了大数据、中间件、数据库、安全、音视频,以及云原生网络、弹性裸金属服务器、存储等,这些都是云原生产品。从这个维度来看,云原生的内涵被极大地丰富了。而从企业客户的角度,云原生就是企业构建了新一代的软件架构,也就是云原生架构。

二 阿里巴巴15年云原生实践

2006年,我们开始探索互联网分布式架构,这也是阿里巴巴云原生实践的起点。之所以要做互联网分布式架构,是因为当时淘宝在快速发展过程中遇到了一些困难,比如300人开发3个系统,这会带来一些冲突问题,如代码发布、代码合并等,这些冲突导致研发团队的效率大幅下降,业务推进不够敏捷。因为这些痛点,我们提出要做服务化的拆分,也就是分布式系统。在2008年淘宝完成了服务化拆分,形成了三大核心中间件,并对行业进行了开源。

2011年,我们开始推进容器化的落地。为什么要做容器化?要知道,在2011年全球做容器化改造的公司都屈指可数。要做容器化主要是因为我们开始重点关注资源利用率的问题,从资源的供给层面,过去有几种形态,比如用纯粹的物理机,这就意味着部署密度比较粗,因此利用率不高。如果用虚拟化进行隔离,就会产生一定的资源消耗。在2011年,阿里巴巴开始做容器化技术改造——T4项目。容器解决了三个核心问题,一是部署密度,二是运维效率,三是资源隔离。随着Docker的出现,其容器镜像的标准化能力对自动运维产生了非常强的推动,保证容器可以实现标准化的交付。基于此,阿里巴巴将Docker集成,推进更标准化的云原生技术。

2015年,当我们的技术和产品成熟之后,就开始推进产品技术的商业化,并拥抱云原生标准。在这段过程里,阿里巴巴自身的业务发展也开始全面享受云计算红利。比如双11、双12这样峰值型业务,如何通过云平台去解决资源池化后带来的极致弹性能力?从2015年开始,阿里云开始支撑阿里巴巴双11,与此同时,我们开始落地容器的统一调度以及底层资源池的统一。除此之外,我们也开展了多种工作,比如混合部署,实现技术栈的统一、数据的统一,从而大幅降低了资源成本,提升了运维效率,更好地推进业务的智能化。

可以设想一下,一家公司有1万名工程师,如果可以提升10%的研发效率,就能节约1000名工程师,这极大地释放了我们的生产力。进一步,如果我们能有一些更高效的平台,更先进的方法和流程,并融入到技术体系中,就会给技术人员的产能带来巨大的提升。

2019年,对于阿里云而言意义重大。在这一年,阿里云支撑了阿里巴巴双11核心系统100%上云,在线业务容器规模近200万、100%采用神龙裸金属服务器、计算性价比提升20%。紧接着在2020年,我们又完成了核心系统100%云原生化,云原生产品开始全面支撑集团大促,并成为全球最大规模云原生实践的新底座。这背后的原动力,就是利用云原生的平台、产品、工具,实现应用云上生、云上长。

事实上,基于服务器的云服务并不是云时代的终态。试想一下,如果服务器的概念被进一步抽象,那么与服务器有关的维护工作都会变成由云来承担,这就是我们常说的 Serverless。过去十年,云正在逐步向 Serverless 演进。2016 年,阿里云发布的函数计算提供了函数级抽象,2019 年发布的 SAE 提供了应用级抽象,这些产品都抹去了服务器的概念,让用云方式得到极大的简化,并逐渐成为趋势。

image.png

三 阿里云对云原生的断言

在企业上云的趋势下,我们看到越来越多的企业和开发者开始把业务与技术向云原生演进。在云原生时代,云产品的核心竞争力是什么?在我看来,云产品的立身之本就是持续要做先进生产力的代表,这就要求云产品具备硬核的技术能力,并能实现快速迭代。对于任何一家企业而言,自身的系统是很难具备如此顽强的生命力和竞争力。所以,阿里巴巴在2020年全面切换为云原生产品支撑大促,一是认准了云原生技术趋势,二是云产品给阿里巴巴内部的研发效能、资源利用率带来极大的提升。

基于此,阿里云对云原生提出了三个断言:

首先,容器+K8s将成为云计算的新界面。容器彻底改变了云的使用方式,它解决了许多问题的同时,还创造了新的架构可能性。容器化是搭建云原生的关键,如果说云原生是一栋高楼大厦,那么容器化便是这座大楼的底座。容器向上支撑多种工作负载和分布式架构,向下封装基础设施,屏蔽底层架构和异构环境的差异性,并能够形成应用的打包镜像分发交付标准。阿里云容器服务 ACK 向下封装了30款云产品,对于整个自动化运维和云平台的交互形成了一个新的界面,从而提升了系统的弹性能力和自动化运维能力。同时,容器也推动了软硬一体化的升级,如神龙裸金属服务器。

其次,对于开发者而言,云原生正在重塑整个软件生命周期。我们看到云原生向下延伸推动软硬一体化,向上延伸推动架构现代化,水平延伸解决研发运维全生命周期的挑战,包括代码开发、DevOps、CICD流程、运维监控、可观测等。云原生与开发者的整个开发流程息息相关,是开发者不可忽视的重要助力。

最后,对于企业而言,云原生是企业数字创新的最短路径。云原生对于企业技术演进的价值在于:首先是基础设施的云化,以容器为代表,将基础设施非常平滑地搬到云上,帮助企业完成基础设施的云化。二是核心技术互联网化,云原生将互联网技术以标准化的方式传递给传统线下企业,互联网的技术、思路、理念、组织形态可助力传统企业能力升级,实现低耦合、可扩展、小步快跑、快速迭代、敏捷开发、业务快速上线等。三是云原生驱动应用架构向现代化演进。我们常说“一云多芯”“云边一体”等理念,就是为了解决企业数据化、智能化、移动化问题。在云原生技术体系下,云原生可以更好地推动企业 IT 体系变革。四是多中台。云原生帮助企业构建业务中台、数据中台、AI中台等,因为数字化转型的关键就是用数据将业务进行数字化和智能化升级,从而更好地驱动业务迭代和创新。

阿里云拥有国内最丰富的云原生产品家族,有超过100款云原生产品,近千个技术解决方案,包括云原生DevOps、aPaaS&微服务、消息和事件驱动、应用工具、Serverless架构等,以及云原生数据库、大数据/AI、应用交付和安全能力等。可以说,一家企业诞生于云原生时代,可以把自己的 IT 体系基于云去构建,阿里云在其中可以提供最完整的技术方案和产品体系。

image.png

云原生不是垄断的技术,阿里云也不是通过垄断的方式赢得客户,必须要靠先进的技术理念和硬核的技术实力。阿里云容器服务已经连续三年入选Gartner公共云容器竞争格局,产品丰富度与成熟度持续保持全球领先水平;阿里云入选Forrester FaaS领导者象限,函数计算产品能力全球领先;阿里云入选Gartner APM 魔力象限,国内唯一云厂商,产品能力和战略愿景获得分析师高度认可。

四 云原生驱动全云开发时代的到来

在云原生快速发展过程中,也看到了一些趋势:比如容器+K8s成为技术基础设施。容器让应用运行时与环境解耦,K8s让资源管理和基础设施解耦,向下封装基础设施层,屏蔽底层架构差异性,连接异构算力,云边端一体化,构建分布式云;向上支撑多种异构工作负载,分布式、弹性可扩展、Mesh化解耦,推动应用架构现代化演进。可以说,容器和K8s已经变成了云计算时代的分布式操作系统。

image.png

我们也看到云原生带来开发模式的革新。一份来自全球开发者的调研显示,传统开发模式和云原生开发模式形成了鲜明的对比。云原生开发模式采用模块化架构,通过标准接口和协议进行通信。在扩展性上,可以按需自动弹性扩展,并且具备良好的可移植性。这些特性已经颠覆了传统开发模式。

image.png

除了在开发模式上的改变,我们也看到,在云原生的驱动下,一个新的开发时代正在到来。

2021年底,68%的机构会在生产环境中使用容器,比去年增长39%,比两年前增长240%。阿里在2016年实现了100%容器化,而在2021年,68%的企业将在生产环境中使用容器,可以确定的是,容器已经成为一个绝对的趋势。

开发者云上开发意愿度达到68%。大量开发者已经感知到云上开发所带来的变化,包括前端/后端,网页、移动端、小程序,逻辑、模型、组件等,云上开发带来了生产力的改进,效率的大幅提升等。

到2021年底,25%的开发者将使用Serverless产品。今天,我们已经开始大力投入Serverless产品,包括函数计算FC、Serverless应用引擎SAE、Serverless容器服务ASK、无服务器基础设施ASI、弹性容器实例ECI等。阿里云与淘系、高德、闲鱼也在探索Serverless的更多合作,大家也许没有感觉到Serverless,但实际上很多技术已经Serverless化了。

五 布局开源生态,推动全云开发与实践

阿里云拥有国内最全面的云原生开源贡献。今天,阿里云在 GitHub上开源项目总数超过2600+,涵盖了大数据、云计算、AI、中间件、容器、Serverless等领域,拥有超过 30000+ Contributor,超百万 GitHub Star,位列中国企业开源社区 GitHub 贡献榜首。这其中,一些开源项目也成为了该领域的事实标准。比如 Dubbo 已经成为国内影响力最大、使用最广泛的开源微服务框架;RocketMQ 是国内首个互联网中间件的 Apache 顶级项目,也是常年霸榜国内第一的开源中间件项目。此外,我们还有应用管理引擎 KubeVela,去年刚开源的阿里巴巴第一个边缘计算项目OpenYurt,分布式高可用领域的混沌工程工具 ChaosBlade 、服务注册发现 Nacos 以及首个 Serverless 开发者平台 Serverless Devs等。

面向整个技术社区,阿里云把研发多年的技术成果回馈给全球顶级基金会,如开放原子开源基金会、 Apache 基金会等,阿里云致力于打造一个开放的、标准的、健康良性的技术生态。可以说,一位开发者想要基于云原生技术构建一套开源架构,完全可以在阿里云生态里找到自己的解决方案。阿里云已经服务了大量企业级头部的用户,如爱奇艺、虎牙直播、南方航空、平安科技等,同时正在构建一套开放标准的技术体系,服务于全球开发者。

云原生最开始提出来的时候,是以资源集群管理与运维为切入点,但是今天如果要把所有的工作负载运行在一套基础设施之上,还缺乏对应用的管理。所以我们提出,以应用为中心,关注点分离,把开发运维基础设施、合作边界、协议、方法全部定义出来,也就是一站式应用管理与交付平台KubeVela。今年6月,KubeVela进入CNCF Sandbox,目前镜像下载量突破30万次,拥有20多家全球企业客户。今年也非常荣幸被信通院立项作为行业标准OAM。

image.png

企业上云是趋势。阿里云在国内率先开源了自研RocketMQ,成为 Apache 顶级开源项目。RocketMQ为用户提供了高性能、高可靠、低延迟的消息服务,成为业内流行的金融级业务消息首选方案。

伴随着云原生技术的发展以及全面云化成为大势所趋,我们看到众多企业客户对消息中间件的演进有着更深层次的诉求。接下来,我们将在社区和商业同期发布 RocketMQ 5.0,全新定义“消息、事件、流”一体化融合处理的新理念。RocketMQ 5.0将在基础架构云原生化、消息流式处理以及事件驱动三个方面带来变化。

首先,基于阿里云大规模生产实践的背景,RocketMQ5.0 将提供面向多种场景可调整的极简弹性架构,帮助企业客户在资源弹性、运维复杂度、业务生态创新等方面做好平衡;其次,RocketMQ5.0 将围绕高价值消息数据提供全新轻量化设计的流式处理框架,方便企业开发者就近处理消息计算和分析;最后,面向未来,RocketMQ 5.0 会基于开放的标准,连接云服务和开源生态,并配合 Serverless 开发模式,为用户提供低代码、无服务器的下一代事件驱动架构服务。

image.png

阿里云通过大量的投入开源,建立更多的技术标准,帮助百万开发者使用更先进的云原生技术,让社区生态和云之间建立起非常好的连接,助力企业和云的协同发展。

去年双11,阿里落地了全球最大规模云原生实践。在2016-2019年,我们用了将近4年时间,让双十一的万笔交易成本下降80%,今年双11有望实现新的突破。其背后依靠的是统一调度,混合部署,分时复用,高弹性能力,从而大幅提升应用或集群的资源利用率。


2021年第二届云原生编程挑战赛

2021年第二届云原生编程挑战赛正式拉开帷幕,本届大赛将深度探索RocketMQ、Dubbo3、Serverless三大热门技术领域,为热爱技术的年轻人提供一个挑战世界级技术问题的舞台。大家赶快点击这里报名参赛吧!

image.png

相关实践学习
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。     相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
24天前
|
前端开发 JavaScript 物联网
全栈开发:从LAMP到云原生的技术革命
🌟蒋星熠Jaxonic,全栈探索者。从Web到AI、IoT、区块链,深耕垂直领域,践行“T型人才”理念。分享技术演进与实战经验,助你在代码星河中找到属于自己的航向。
全栈开发:从LAMP到云原生的技术革命
|
Cloud Native 测试技术 开发者
终于!我找到了开发的得力助手!阿里云天池云原生编程挑战赛参赛攻略
在比赛过程中,通义灵码插件成为了我开发工作的得力助手。这个插件提供了智能代码补全和错误提示功能,大大提高了我的编码效率。尤其是通义灵码能够实时分析代码,给出优化建议,让我避免了很多潜在的错误。
333 64
|
8月前
|
Cloud Native 安全 Serverless
云原生应用实战:基于阿里云Serverless的API服务开发与部署
随着云计算的发展,Serverless架构日益流行。阿里云函数计算(Function Compute)作为Serverless服务,让开发者无需管理服务器即可运行代码,按需付费,简化开发运维流程。本文从零开始,介绍如何使用阿里云函数计算开发简单的API服务,并探讨其核心优势与最佳实践。通过Python示例,演示创建、部署及优化API的过程,涵盖环境准备、代码实现、性能优化和安全管理等内容,帮助读者快速上手Serverless开发。
|
11月前
|
Kubernetes Cloud Native 开发者
通义灵码对云原生应用开发的支持
通义灵码是阿里巴巴云推出的一款强大的云原生应用开发工具,支持容器化、编排技术等,提供从Dockerfile生成、容器镜像构建与推送,到Kubernetes配置文件生成及与Kubernetes集群集成的全方位支持,极大简化了云原生应用开发流程,提升了开发效率和应用质量。
通义灵码对云原生应用开发的支持
|
10月前
|
存储 NoSQL Cloud Native
MongoDB云原生化:为企业开发注入高效动力
MongoDB云原生化为企业开发注入高效动力,分为三部分:1. 介绍阿里云和MongoDB的服务;2. 阿里云MongoDB解决自建模型痛点的功能,包括隔离性、海量数据处理、弹性能力及运维操作优化;3. 客户案例展示。通过云原生架构,MongoDB实现了灵活的扩展、高效的备份恢复和快速的回档能力,显著提升了企业的业务迭代速度和数据管理效率。典型客户如吉比特、莉莉丝、掌阅等受益于这些功能,实现了更稳定和高效的数据库服务。
|
人工智能 Cloud Native Serverless
来云栖大会!探展云上开发,沉浸式体验云原生 + AI 新奇玩法
计算馆将展示中国最先进的云计算产业链全景,从底层硬件到数据创新,从云计算基础设施到数据管理服务、人工智能平台和模型服务,全景式呈现 AI 时代云计算最新技术形态和产品进展。计算馆有哪些推荐?往下看!
|
Kubernetes Cloud Native Docker
使用 kubevpn 在本地快速开发云原生应用
KubeVPN 是一个用于云原生开发的工具,它允许用户通过本地计算机直接访问远程 Kubernetes 集群中的服务,利用 k8s DNS 或 Pod IP/Service IP。它可以拦截并调试服务网格中的工作负载流量,并提供开发模式,让容器在本地以与 k8s pod 相同的环境运行。快速开始包括下载二进制文件、自定义 Krew 安装、构建二进制文件以及安装示例应用。KubeVPN 支持链接到多个集群、DNS 解析、反向代理,以及在 Docker 中的开发模式,确保与 Kubernetes 运行环境一致。此外,它还兼容多种协议和平台。
408 5
|
Kubernetes Cloud Native 搜索推荐
探索云原生技术:Kubernetes在现代应用部署中的角色打造个性化移动体验:从开发到操作系统定制
【7月更文挑战第31天】本文深入探讨了云原生技术的核心组件之一——Kubernetes,并分析了其在现代云计算环境中的关键作用。通过实际代码示例和案例分析,文章揭示了Kubernetes如何优化资源管理、提高部署灵活性以及增强服务的可靠性。读者将获得对Kubernetes操作实践的直观理解,并认识到采用云原生架构对企业数字化转型的推动力。
143 0
|
Cloud Native 安全 Serverless
【阿里云云原生专栏】低代码开发在云原生平台的应用:阿里云低代码服务探索
【5月更文挑战第27天】在云原生时代,低代码开发凭借其图形化界面和预构建模块,简化了应用开发,提升了效率。阿里云积极探索低代码领域,推出函数计算FC和应用配置中心ACM等服务。FC让开发者无需关注基础设施,仅需少量代码即可实现应用部署,而ACM则提供动态配置管理,增强应用灵活性。阿里云的这些服务为企业数字化转型提供了高效、安全的解决方案,预示着低代码开发在云原生平台上的重要地位。
372 1
|
Kubernetes Cloud Native Go
Golang深入浅出之-Go语言中的云原生开发:Kubernetes与Docker
【5月更文挑战第5天】本文探讨了Go语言在云原生开发中的应用,特别是在Kubernetes和Docker中的使用。Docker利用Go语言的性能和跨平台能力编写Dockerfile和构建镜像。Kubernetes,主要由Go语言编写,提供了方便的客户端库与集群交互。文章列举了Dockerfile编写、Kubernetes资源定义和服务发现的常见问题及解决方案,并给出了Go语言构建Docker镜像和与Kubernetes交互的代码示例。通过掌握这些技巧,开发者能更高效地进行云原生应用开发。
341 1

热门文章

最新文章