到底什么是云原生 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘 AI 生成的内容
luffy
V2EX    程序员

到底什么是云原生

  •  
  •   luffy 2022-05-30 09:42:19 +08:00 7491 次点击
    这是一个创建于 1241 天前的主题,其中的信息可能已经有所发展或是发生改变。

    定义在这里

    https://docs.microsoft.com/zh-cn/dotnet/architecture/cloud-native/definition

    然而感觉还是很模糊。

    哪位可以说说自己的理解?

    44 条回复    2022-06-28 15:56:05 +08:00
    cheneydog
        1
    cheneydog  
       2022-05-30 09:45:17 +08:00   5
    就是最开始就是以云计算为标准而设计的,不是把原来的东西搬到云上。
    murmur
        2
    murmur  
       2022-05-30 09:47:19 +08:00   2
    我的理解是以前跑 java php 叫云,现在跑 go docker 叫云原生,但是直觉告诉我这就是概念玩屁吃

    我都整台租用了服务器,不管是虚拟的还是真实的,跑啥不是我自己的事,非得整俩概念
    fregie
        3
    fregie  
       2022-05-30 09:52:06 +08:00
    云 原生,天生就是跑在云上的应用,各项特性都是专门适用于云上环境的应用。
    前些年老是说道上云这个概念,说明应用本身不是为了云而设计的,非云原生,需要做些改动或借助特定基础设施才能适应云环境。
    saltbo
        4
    saltbo  
       2022-05-30 09:54:12 +08:00   1
    简单来说就是能够屏蔽云厂商的架构,云原生架构能够无缝的在不同云厂商之间进行迁移。换句话说,云原生的目的是社区出的一套标准,所有云厂商都应该按这套标准玩。否则社区就不跟你玩了。

    任何公司都不想把自己跟某一个云厂商进行强绑定,所以大家都认可这个标准。所以倒逼了云厂商都来使用这套标准
    wangpugod2003
        5
    wangpugod2003  
       2022-05-30 09:55:18 +08:00
    云原生就是跑在云上的运用,例如 kubernetes 云,云原生应用就是针对 kubernetes 这种(操作系统)开发的应用。
    xinhaiw
        6
    xinhaiw  
       2022-05-30 09:56:46 +08:00   3
    scalability ,stateless ,fault-tolerant
    mikywei
        7
    mikywei  
       2022-05-30 09:59:27 +08:00
    非云原生:以前老一套的依赖环境和应用(比如在大家虚拟机或物理机上运行的 docker )
    云原生:专门针对云设计的依赖环境和应用,不考虑兼容传统的环境(就比如云厂商根据 docker 出的云原生版本改编而来的容器应用,只能在本云厂商上使用,还自带 web 管理控制台)
    DragonMo
        8
    DragonMo  
       2022-05-30 10:05:41 +08:00
    云原生就是所有云的功能(服务发现治理,负载均衡,链路追踪,容灾熔断,日志收集之类的),都在程序之外实现,程序屏蔽掉对这些的可见。
    justicelove
        9
    justicelove  
       2022-05-30 10:18:44 +08:00
    相比于原来部署在固定服务器上,云原生在任意环境可快速部署应用,并且整个部署环境,部署的应用都是可观测,可以管理的。
    cubecube
        10
    cubecube  
       2022-05-30 10:22:20 +08:00
    简单说,就是为云上专门设计的组件工具,搭建起来的服务
    比如 serverless 服务就是最好的的云原生的例子,在别的场景根本没有
    securityCoding
        11
    securityCoding  
       2022-05-30 10:22:42 +08:00
    不用纠结这个问题,某种程度上来说 k8s=云原生 也不是不行。
    betainCao
        12
    betainCao  
       2022-05-30 10:23:01 +08:00
    云原生,cloud native ,cloud 表示应用程序位于云中,而不是传统的数据中心; native 表示应用程序从设计之初就考虑云的环境,原生为云而设计。最终要的一个点,就是能在云上以最佳姿态运行,充分运用云平台的弹性和分布式优势!!!
    sutra
        13
    sutra  
       2022-05-30 10:25:37 +08:00   1
    是不是可以反过来理解,就是离开了云,跑不起来?
    vhui
        14
    vhui  
       2022-05-30 10:25:39 +08:00 via iPhone   1
    有一种说法
    云原生是 DevOps + 微服务 + 持续交付 + 容器化
    lookStupiToForce
        15
    lookStupiToForce  
       2022-05-30 10:35:18 +08:00
    简单粗暴点
    k8s 给你屏蔽了大部分针对单个容器的管理,让容器一体化,云原生给你进一步屏蔽 k8s 的大部分集群管理,让你以为你在用一个单机应用。本来也应该这样,服务器运维、集群运维跟应用的使用、拓展、开发、维护就该分开
    murmur
        16
    murmur  
       2022-05-30 10:45:48 +08:00
    @lookStupiToForce 那原生这个词翻译太丑了,比鲁棒性还丑,native 都是相对于虚拟机应用来说,叫 k8s 应用或者容器应用不更好
    c8c
        17
    c8c  
       2022-05-30 10:55:11 +08:00
    学到了。这个翻译确实让我弄不清。
    lookStupiToForce
        18
    lookStupiToForce  
       2022-05-30 11:02:24 +08:00
    @murmur 看到你前面说的“概念玩屁吃”,我其实蛮有同感
    奈何互联网圈子最爱玩新概念,国人如此,老外尤甚。还记得当初入一个外企的一个边缘 it 部门,就在这个部门内,针对同一个主要工作内容,用了不下 4 个不同的单独的单词来指代,其中俩还是压根见都没见过的“船新的”组合词,还特么分散在不同的文档里,让不管谁见了都一抹黑。求爷爷告奶奶问遍了整个部门,落实了这 4 个是一个玩意儿,部门里的人才从这次开始拎清了。部门外更是群魔乱舞,啥啥项目都顶着一个你压根想不到关系的名词作为行头,生怕别人注目不到它。
    后来对此不苛求了,他们能把名词统一已是大幸。
    一个公司内都这样,无怪乎拉投资的时候各种新名词频出吹得天花乱坠,不怕一个人没文化不会用基础的语文和已有的名词作表达,就怕一堆人包括投资人也没文化喜欢这花里胡哨的东西。
    总之都是没文化
    libook
        19
    libook  
       2022-05-30 11:07:13 +08:00
    云原生基金会有官方的定义:
    https://github.com/cncf/toc/blob/main/DEFINITION.md#%E4%B8%AD%E6%96%87%E7%89%88%E6%9C%AC

    是一整套针对云计算场景的解决方案,具备一系列特点。
    fantastM
        20
    fantastM  
       2022-05-30 11:21:48 +08:00   1
    elintwenty
        21
    elintwenty  
       2022-05-30 11:48:12 +08:00
    elintwenty
        22
    elintwenty  
       2022-05-30 11:51:11 +08:00
    简单来说就是天生在云,以容器、容器编排等云原生提到的基础性组件为默认组件,云原生应用天生接入这些功能,没了云就用不了
    DragonCat
        23
    DragonCat  
       2022-05-30 11:59:15 +08:00   1
    个人感觉 6 楼的道友的说法好,scalability ,stateless ,fault-tolerant
    在这三个前提下,部署在 docker 、k8s 是应用层的一种表现形式
    公有云、私有云是基础设施的一种表现形式
    lhx2008
        24
    lhx2008  
       2022-05-30 12:44:14 +08:00 via Android
    就是区别于传统的 vm 上面运行的程序的模式,scalability ,stateless ,fault-tolerant 总结的挺好,不过实战的时候往往都在开倒车
    chenshun00
        25
    chenshun00  
       2022-05-30 13:05:04 +08:00
    问这个问题的应该是程序员吧,云原生我的理解就是一个接口,有很多特性,例如服务发现,弹性伸缩等等,只要能够达到这些特性就可以称之为符合云原生的。 抽象与具体,具体与抽象。
    imycc
        26
    imycc  
       2022-05-30 13:23:34 +08:00
    我的理解是设计时充分考虑云上部署的需求,充分利用云计算的基础设施的应用,就算云原生。

    之前打算把公司某一块业务做容器化改造,但业务有一套自研的调度跟负载均衡逻辑,每台机器上不同应用的部署数量也要遵循一定约束。开了好几次会,最后觉得改造的风险、人力及时间成本,远高于容器化的收益,就算了。
    但容器化之后的好处我们也享受不到了。看着其他改造完的业务平时维护那么省心,还是有点不甘心的。
    halfcrazy
        27
    halfcrazy  
       2022-05-30 13:40:54 +08:00
    自治
    tramm
        28
    tramm  
       2022-05-30 13:44:13 +08:00
    @saltbo 有道理啊
    Buges
        29
    Buges  
       2022-05-30 14:47:04 +08:00 via Android
    比如你在云厂商开虚拟机跑应用,本质上是在兼容你的应用运行环境。而云原生则是原生设计为运行在云厂商的环境中,如 serverless 。
    Alliot
        30
    Alliot  
       2022-05-30 15:33:47 +08:00   1
    @sutra 云提供商是云,企业自己有能力也可以构建云的。。。所以其实不用考虑这个问题。
    wzcloud
        31
    wzcloud  
       2022-05-30 20:31:18 +08:00
    TM 的,我之前面试天翼云的时候一面的大聪明面试官问过我这个问题。。。
    luffy
        32
    luffy  
    OP
       2022-05-30 20:40:36 +08:00
    @wzcloud 实在抱歉,我没能有机会在你面试前就把这个贴子发出来,并且让你优先看到。

    如果同样的问题再问你的话,知道怎么回答了嘛?
    wzcloud
        33
    wzcloud  
       2022-05-30 20:50:32 +08:00
    @luffy 没用的,你怎么知道面试官看的是这篇文章?要是看的和面试官看的八股文不一致,还是不对。
    lance6716
        34
    lance6716  
       2022-05-30 22:37:28 +08:00 via Android
    写程序的时候,考虑的不是内存、磁盘……而是如何容器化、消息队列、对象存储……
    lixintcwdsg
        35
    ixintcwdsg  
       2022-05-30 23:44:39 +08:00
    简单来说,就是软件从设计到生产(开发)都是为在云上运行而准备。
    这会影响到方方面面。
    比如调试是不是还需要本地调试,本地调试就意味着本地可以运行,本地如何云部署后保持一致,
    所以本地运行是不是强制启动 docker 拉云厂商的一系列调试环境来启动
    还是代码纯本地编辑,远程运行
    这就涉及到一系列问题了
    同时如果云上跑,那么很多伸缩等问题是不是云上解决了,那么开发语言的特性是不是要根据这种趋势做修改,比如增加云特性的语法糖(比如 FileIO 直接加入对象存储)。
    darkengine
        36
    darkengine  
       2022-05-31 09:19:36 +08:00
    我的理解是,现在只有 cloud functions 算是云原生
    xhinliang
        37
    xhinliang  
       2022-05-31 09:53:50 +08:00
    @xinhaiw 你说的跟云原生有什么关系么?
    xinhaiw
        38
    xinhaiw  
       2022-05-31 10:02:10 +08:00
    @xhinliang java boy 有什么高见
    dazhangpan
        39
    dazhangpan  
       2022-05-31 11:56:45 +08:00
    DoraMouse
        40
    DoraMouse  
       2022-05-31 12:07:29 +08:00
    云原生( Cloud Native )可以拆分成「云」和「原生」去看。

    「云」相对的就是本地,传统应用都跑在本地服务器上,而云则表示跑在云服务器上。

    「原生」则可以简单的理解成出生地的意思,放在云环境中所表达的意思就是:在把应用跑到云服务器上时,应该充分的利用云自身的特点,比如弹性和分布式优势。

    如果只是简单的把原来本地跑的业务放到云上,高举“上云”大旗,那只能叫做“拆迁户”,不能叫做云原生;当“上云”的风潮过去后,开始出现了直接就部署在云上的业务,这些业务完全按照“云”的特点去设计,这种是“云”的原住民,可以叫做云原生。

    来源: https://wiki.teamssix.com/CloudNative/#_0x02-%E4%BA%91%E5%8E%9F%E7%94%9F%E5%AE%89%E5%85%A8
    sky857412
        41
    sky857412  
       2022-05-31 12:12:59 +08:00
    云原生,我认为是业务系统只需要关注业务,负载均衡,弹性伸缩,服务发现,这些都是由云组件去做。之前没有云的时代,都是自己去实现这些功能,上云后,云厂商会提供这些基础功能。了解 serverless 怎么玩的,云大概就是这样的
    xhinliang
        42
    xhinliang  
       2022-05-31 16:20:40 +08:00
    @xinhaiw 这些可能是云原生服务普遍具备的特质,但却不是判断是否云原生的充分条件或者必要条件。
    tairan2006
        43
    tairan2006  
       2022-05-31 17:21:45 +08:00
    在现在这个时间节点,云原生 == k8s 原生
    D3EP
        44
    D3EP  
       2022-06-28 15:56:05 +08:00
    @xhinliang 梁老师可以展开下 :D
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5511 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 28ms UTC 07:07 PVG 15:07 LAX 00:07 JFK 03:07
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86