十年前,Netscape创始人、硅谷著名投资人马克·安德森(Marc Andreessen)预言“软件正在吞噬世界”;数年后,软件里90%以上的代码都是开源代码,“开源正在吞噬软件”;如今,“云原生吞噬开源”,开源项目正在向云化演进。
图1:云原生吞噬世界
然而在开发者社群、CSDN社区,时常有人心生这样的疑惑:云原生到底是什么?
本文内容摘录自《新程序员003》
什么是云原生?
带着读者的疑问,笔者翻阅了《新程序员003》,其中毕业于北京大学,阿里云容器服务技术专家,曾就职于IBM的郝树伟在《云原生的定义及其关键技术》一文中提到:云原生(Cloud Native)是一个组合词,“云”表示应用程序运行于分布式云环境中,“原生”表示应用程序在设计之初就充分考虑到了云平台的弹性和分布式特性,就是为云设计的。可见,云原生并不是简单地使用云平台运行现有的应用程序,而是一种能充分利用云计算优势对应用程序进行设计、实现、部署、交付和操作的应用架构方法。
云原生技术一直在不断地变化和发展,云原生的定义也在不断地迭代和更新,不同的社区组织或公司对云原生也有不同的理解和定义。
拥有20多年软件及互联网开发经验和技术管理经验、曾在硅谷LinkedIn、Yahoo、IBM三家企业就职,目前担任小米集团副总裁的崔宝秋博士认为:云原生是一种基于云计算的灵活性、可扩展性和弹性来构建并运行软件应用程序的理念和方法论。在云原生的理念中,所有应用在设计阶段就应该考虑如何在云计算的环境下以最佳的方式运行,以发挥云计算的弹性、高容错、自恢复和按需使用等优势。云原生的方法论中往往覆盖了微服务、容器、CI/CD、敏捷开发、DevOps等现代的软件开发技术和理念。
云原生=容器+K8s 吗?
在众多开发者的疑惑中,有不少人认为云原生就等于容器+K8s,甚至还有人认为,只是把应用搬到云上,就是云原生了?
对于云原生理解的种种误区,来自火山引擎的张鑫在《“原生云”时代的四个改变》一文中对常见的2个误区进行了解答:
1、Cloud Hosting=Cloud Native?
很多人将Cloud Hosting等同于Cloud Native,浅显地认为只要开了一个云账号、用云了就是云原生,还有人认为只要把应用搬到云上就是云原生。然而,很多情况下这些应用架构本身的生产方式并没有发生改变,仍然是过去传统的应用架构,只是生搬硬套到了云上,并没有真正发挥云原生的价值。
那么究竟什么才是云原生?有一个非常简单的区分方法:看它所定义的这个主语是谁。云原生的主语不应该是平台或者工具,即不是用容器和K8s搭建一个平台就是云原生,最关键的主语应该是业务和应用,要看是否充分把底层技术业务的能力向上传递至业务和应用侧。
2、云原生是IaaS还是PaaS?
传统的IaaS和PaaS在灵活性和管理性上总有一个不可调和的矛盾:IaaS产品可以提供极高的灵活性但管理难度很大,PaaS产品管理难度很小但灵活性较差。在这种局面下,云原生应运而生,它既不是IaaS也不是PaaS,却将两者做了很好的连接与融合,不仅自带了非常多的管理功能,还提供了丰富且底层的接口,使其具备极强的可扩展能力。
《新程序员003》助力开发者乘风破浪
在厘清云原生的概念后,作为开发者,需要具备哪些知识与能力才能在开发范式大转移的时代,保留一席之地呢?
拥有20多年的互联网和金融架构从业经验,MegaEase创始人、前阿里云资深架构师、天猫开发总监、亚马逊高级研发经理、汤森路透基础架构师和高级研发经理陈皓(左耳朵耗子)在《新程序员003》中分享5大能力与知识点:
此外,《新程序员003》还诚邀 50 余位技术专家共同创作,是写给所有关注云原生开发者们的一本技术精选图书,助力开发者在云原生与数字化转移大趋势下乘风破浪,里面更包含了华为、阿里、字节跳动、网易、快手、微软、亚马逊、英特尔、西门子、施耐德等30多家知名公司的云原生和数字化一手实战经验
▽扫描下方二维码即可立即购买
畅享电子书+精美纸质书