CloudNative:云原生(分布式云)的简介(发展&演变/为什么需要/优势&价值/安全/对比传统企业应用)、四大核心技术、CNCF云原生交互景观、云原生技术的使用经验及方法之详细攻略

CloudNative:云原生(分布式云)的简介(发展&演变/为什么需要/优势&价值/安全/对比传统企业应用)、四大核心技术、CNCF云原生交互景观、云原生技术的使用经验及方法之详细攻略

导读:从“软件正在吞噬世界”到“开源正在吞噬软件”,到如今“云原生吞噬开源”,开源项目正在有条不紊地向云化演进。近年来,IT软件技术架构进入云化时代—软件云化和微服务化,容器虚拟化、DevOps等技术快速发展,将整个开发过程、开发流程带入云端,迎来了开发范式上的革命。PaaS、SaaS以及IaaS服务都已进化到更加原生(Native)的状态,全面云化势不可挡。同时,微服务、K8S、Service Mesh等一系列新技术规范涌现,开发工具也都在迭代升级。未来,云原生将会成为新一代数字化的技术基础设施。云原生赋能企业也开始风生水起,一方面,云原生等新技术顺应市场与企业的需求而生,另一方面,越来越多的企业正在借助云原生应用架构助力业务的数字化转型。云原生计算提供统一的技术栈,动态、混合、分布式的云原生环境将成为新常态

关键词微服务架构、容器、Docker、K8S、PaaS平台、DevOps、云原生

目录

云原生的简介—技术的变革,一定是思想先行

1、百家之言

(1)、通俗理解云原生——云亲生、换个开发环境

(2)、云原生—花钱买肃静,自己不搭机房就需要购买云服务

(3)、云原生—也是一场内卷,但先卷者得利

(4)、当前云原生的推介文档有引导之嫌

(5)、从云原生看软件设计的技术趋势和影响

软件设计的目标→诉求带来傻瓜式编程→软件工程师不再底层→技术下沉→后端开发

2、云原生的发展、演变

(1)、云原生的发展—开源社区(Docker/K8S)加速了转向云原生应用的步伐

(2)、云原生的演变—应用上云趋势+云计算三层的技术土壤→催云原生应用→但上云的应用需修改自身去适应“云”特点

(3)、基于“云原生架构”应用程序的指导思想

3、为什么会出现云原生—软件应用要上云

(1)、软件应用要上云

(2)、软件设计的技术趋势和影响

4、云原生的优势/价值—转型利器(快速迭代/高效运维)、无需考虑底层技术(快速部署/按需伸缩/不停机交付)、更关注业务价值(向下封装资源/向上支撑应用)、应用法宝(构建应用简便快捷/部署应用轻松自如/运行应用按需伸缩)

(1)、可轻松应对频繁和可预测的重大变更——源自CNCF

(2)、降低风险、按需计算、更快交付(拓展业务)——源自Pivotal

(3)、为什么云原生应用如此重要—竞争优势、灵活性、更加专注代码、自动化

5、云原生的安全

(1)、基础设施安全、镜像安全、运行时安全、生态安全

(2)、平台提供安全防护机制、制定安全配置、可视化判断安全性、异常行为检测、网络隔离与网络入侵检测、全生命周期安全防护

6、传统企业应用VS云原生应用

(1)、积累总结

(2)、源自Pivotal官网

云原生核心技术—DevOps+持续交付+微服务+容器+云安全

1、云原生体系的四要素—微服务+容器+DevOps+持续交付

(1)、微服务

(1.1)、SOA对比微服务

(1.2)、腾讯开源的微服务框架TARS

(2)、容器

(3)、DevOps

(4)、持续交付

2、服务网格Service Mesh

3、不可变的基础设施—传统可变的基础设施(需人工维护/不可预测/易出错)→效率/扩展/更新

4、声明式API

5、K8S

(1)、基于Docker镜像的分布式应用

(2)、分布式集群运行分布式应用的复杂性——分布式容器应用的可靠性、可扩展性

6、云原生、微服务、容器、K8S、SOA、PaaS平台、DevOps 之间的关系——相互促进、相互依赖、相互关联

CNCF简介及其云原生交互景观

CNCF简介

CNCF Cloud Native Interactive Landscape

云原生技术的使用经验及方法

1、当前业务是否要立即切换到云原生架/p>

2、云原生时代的开发者具备的能力


云原生的简介—技术的变革,一定是思想先行

CloudNative:云原生(分布式云)的简介(发展&演变/为什么需要/优势&价值/安全/对比传统企业应用)、四大核心技术、CNCF云原生交互景观、云原生技术的使用经验及方法之详细攻略

          云原生(CloudNative)是构建运行应用程序一套技术体系方法论。它是基于分布部署统一运管分布式云 ,以容器化、微服务DevOps等三大技术为基础,而建立的一套云技术产品体系。云原生是一种新型技术体系,是云计算未来的发展方向。
          云原生,Cloud Native,如果拆开来解释的话,其中Cloud表示应用程序位于云中,即分布式云环境中,而不是传统的数据中心;Native表示应用程序在设计之初,就考虑云的环境,即云平台的弹性和分布式特性,原生为云而设计。
          实际上,云原生并不是简单地使用云平台运行现有应用程序,云原生的核心原理是,充分利用和发挥云计算优势—云平台弹性分布式的优势,在云上以最佳姿势运行。是一种对应用程序进行设计实现部署交付操作的应用架构方法。
          云原生计算基金会(CNCF)致力于培育和维护一个厂商中立的开源生态系统,来推广云原生技术。通过将最前沿的模式民主化,让这些创新为大众所用。CNCF官网阐述了云原生的代表技术包括:容器服务网格微服务不可变基础设施声明式API。利用这些技术可以构建出容错性更好、更易于管理和观察的松耦合系统,再加上一些可靠的自动化技术及完备的监控预警体系,云原生技术将使开发人员能更快速轻松地迭代交付软件系统
          云原生代表性的公司是Snowflake,是一家目前最火的云原生数仓公司。2020年9月16日,Snowflake成功IPO,交易首日市值达到704亿美元,最高峰曾突破1200亿美元。它是全球领先的云计算服务商,主要提供云原生数据仓库服务,打造数据时代基础设施。
          根据中国信通院的相关调研数据,2019年云原生市场规模已高达350.2亿,且以年均增速超过30%的势头迅猛发展。根据IDC研究,2020年传统行业对云原生技术投入最多的五个行业分别是:金融、政府、制造、通信以及服务。未来五年,复合增长率最快的五个行业分别是通信、制造、交通运输、政府和金融。
          2021年伊始,云原生的布局开始加速。华为云联合CNCF(云原生计算基金会)、中国信通院成立创原会,加速云原生产业落地;金山云发布云原生全景图、云原生产品矩阵和最新的Serverless产品;诺基亚宣布与谷歌云合作开发云原生5G技术;几乎所有云厂商新发布的云计算产品,都已打上了云原生的标签。

CNCF官网https://www.cncf.io

CNCF官网定义云原生:FAQ | Cloud Native Computing Foundation

Pivotal官网定义云原生:What are Cloud Native Applications| VMware Tanzu

1、百家之言

(1)、通俗理解云原生——云亲生、换个开发环境

云原生即云亲生;
云原生其实就是,对软件应用换了个开发环境,然后为了适应这个环境做了一些技术调整;

(2)、云原生—花钱买肃静,自己不搭机房就需要购买云服务

          云原生的出现,就是将云计算的方向从此前的资源型转为了服务型,因此它们都在应用服务层,而不再是基础资源了。所以,有人戏称,只要软件架构做的好,基础资源就变得不那么重要了。
          云端环境就是要使用云服务器,对于大部分公司来说,就是使用阿里云、腾讯云等云计算厂商的公有云服务来部署应用,而不是自己在额外维护一套复杂的服务器机房。
          当然,他的优势也是不言而喻,能够充分利用云服务的弹性分布式优势,可以大大降低运维成本,并且提升服务的稳定性,但是,如果数据出本地,那么数据上云的安全性就值得商榷了。

CloudNative:云原生(分布式云)的简介(发展&演变/为什么需要/优势&价值/安全/对比传统企业应用)、四大核心技术、CNCF云原生交互景观、云原生技术的使用经验及方法之详细攻略

(3)、云原生—也是一场内卷,但先卷者得利

          云原生是对老程序员的降维打击,整套环境和思维方式都改变了,卷起来;

CloudNative:云原生(分布式云)的简介(发展&演变/为什么需要/优势&价值/安全/对比传统企业应用)、四大核心技术、CNCF云原生交互景观、云原生技术的使用经验及方法之详细攻略 CloudNative:云原生(分布式云)的简介(发展&演变/为什么需要/优势&价值/安全/对比传统企业应用)、四大核心技术、CNCF云原生交互景观、云原生技术的使用经验及方法之详细攻略

(4)、当前云原生的推介文档有引导之嫌

          虽然,云原生的推介文档有引导之嫌,但它的优点的确也是有目共睹。但是,这样的好东西,是不是就要,立刻把当前的应用改换到基于云原生的架构体方法,参考—云原生技术的使用经验及方法

(5)、从云原生看软件设计的技术趋势和影响

          软件设计有两个关键目标高内聚低耦合;围绕这2个核心目标,又提出了七大原则:开闭原则、依赖倒置、单一职责、接口隔离、最少知识、里氏替换、合成复用。
●  开闭原则:是总纲,要对扩展开放,对修改关闭;
●  依赖倒置原则:要面向接口编程;
●  单一职责原则:实现类要职责单一;
●  接口隔离原则:在设计接口时要精简单一;
●  最少知识原则/迪米特法原则:要降低耦合度;
●  里氏替换原则:不能破坏继承体系;
●  合成复用原则:优先使用组合或聚合关系复用,少用继承关系复用;

软件设计的目标诉求带来傻瓜式编程→软件工程师不再底层→技术下沉→后端开发

扩展和维护——软件设计的目标

软件工程师一直都在为这两个目标而努力奋斗—高内聚低耦合,以求把软件编写得更加清晰更加健壮更加易于扩展维护

库/组件——诉求带来傻瓜式编程

但后来,人们发现有更多的诉求,希望开发软件变得更简单、更快捷,程序员希望更少编写代码,非专业人员也希望能开发程序,于是,更多的更傻瓜式的编程语言被发明出来,更多的编程技术和编程思想被发明出来,比如库、组件、云基础设施。

调参侠/用包能手/组装达人——软件工程师不再底层

于是很多技术变成了屠龙之技,比如汇编,时代变了,建国后动物不能成精了,没有龙可以宰了,然后很多软件工程师摇身一变成了调参工程师、Call API砖家、用库包能手、拼组件达人,这是效率分工的结果,也是技术发展的使然

技术下沉——降低业务开发技术含量

纵观近二十年的科技互联网发展历程,大的趋势是技术下沉

特别是近些年,随着云计算的发展和普及,基础设施越来越厚实,业务开发变得越来越容易,也越来越没有技术含量

而之前困扰小团队的性能、负载、安全性、扩展性问题都不复存在,这不禁让互联网行业的油腻大叔们噤若寒蝉,仿佛分分钟就要被卷入历史洪流而万劫不复。

诞生新工种—后端开发

虽然不可否认技术的重要性在降低,但也还不至于那么悲观。

遥想PC时代,当VB、Delphi、MFC出现的时候,也有类似论调,所见即所得,点点鼠标,就可以开发PC桌面程序,是不是很高端时候码农的担心相比现在恐怕是只多不少吧。

但后来随着互联网兴起,出现了后端开发这个工种,码农很快找到了新的战场,网络、分布式、数据库、海量服务、容灾防错,于是又玩出一堆新花样。

一个时代总有一个时代的活法

如果说PC时代的基础设施是控件库,互联网时代的基础实施是云,那AI时代基础设施是什么会有什么高端玩法/p>

我们需要加深对基础知识的理解,以不变应万变,深耕一个领域,同时也需要多去尝试新技术,扩宽自己的眼界,增加解决问题的思路

参考文章:后端技术趋势指南|如何选择自己的技术方向_极客重生的博客-CSDN博客

2、云原生的发展、演变

(1)、云原生的发展—开源社区(Docker/K8S)加速了转向云原生应用的步伐

          转向云原生应用需要以新的云原生方法开展工作,云原生包括很多方面:基础架构服务、虚拟化、容器化、容器编排、微服务。在云原生的发展道路上,开源社区在云原生应用方面做出了大量卓有成效的工作,很多开源的框架和设施可以通过拿来主义直接用。开源推动了云原生的发展,同时,云原生也为开源带来了最好的商业化发展。
2008年,Solomon Hykes(2018年已从Docker的管理人员退居为董事),和Kamel Founadi、Sebastien Pahl共同创立了DotCloud的公司,目标是利用一种叫做容器的技术来创建他们称作是“大规模的创新工具”——一种任何人都可以使用的编程工具
2013年3月,DotCloud 变成 Docker。DotCloud 发布了Docker的首个开源版本0.1.0(https://github.com/Docker),并很快成为容器事实标准。
2013年9月,Red Hat成为Docker的主要合作伙伴,利用Docker来驱动他的OpenShift云业务;
2013年,Pivotal公司的Matt Stine首次提出云原生(CloudNative)的概念;
2014年6月,DockerCon大会上Docker正式发布了Docker 1.0 版本;
2014年6月,基于谷歌内部强大的Borg系统而开发出来的K8S横空处世,刷新了人们对容器的理解;
2014年12月,DockerConEU大会上,Docker Swarm(集群管理工具)和Docker Machine(部署Docker主机的命令工具)同时面世;
2014年12月,CoreOS宣布开发自家的容器运行环境Rocket以及应用容器规范Appc,早期阶段Google曾参与投资;
2015年,云原生刚推广时,Matt Stine在《迁移到云原生架构》一书中定义了符合云原生架构的几个特征:符合12因素、微服务、自敏捷架构、基于API协作、扛脆弱性;
2015年,云原生计算基金会(CNCF)成立,CNCF掺和进来后,最初把云原生定义为包括:容器化封装+自动化管理+面向微服务
2017年,Matt Stine在接受InfoQ采访时重新定义了云原生,将云原生架构归纳为六个特点:模块化、可观察、可部署、可测试、可替换、可处理;
2017年,是容器成为主流技术的一年。在容器编排的混战中,K8S脱颖而出。后来,Google的K8S一家独大,经过2017年后,容器市场基本趋于稳定,一切都向着优化改进方向发展;无形中,这些技术极大的降低了开发云原生应用的技术门槛。
2018年11月,CNCF重新定义云原生,把服务网格(Service Mesh)和声明式API给加了进来。云原生的代表技术包括容器、服务网格、微服务、不可变基础设施和声明式API。
截止2022年,Pivotal官网对云原生概括为四要素:DevOps+持续交付+微服务+容器

CloudNative:云原生(分布式云)的简介(发展&演变/为什么需要/优势&价值/安全/对比传统企业应用)、四大核心技术、CNCF云原生交互景观、云原生技术的使用经验及方法之详细攻略

(2)、云原生的演变—应用上云趋势+云计算三的技术土壤→催云原生应用→但上云的应用需修改自身去适应“云”特点

          随着虚拟化技术的成熟和分布式框架的普及,在容器技术、可持续交付、编排系统等开源社区的推动下,以及微服务等开发理念的带动下,应用上云已经是不可逆转的趋势。
          云原生属于云计算的PaaS层服务,主要是面向开发者的一类应用。云原生必须在云上安装,是一种基于云计算的软件开发应用方式。
          云原生借了云计算的东风,没有云计算,自然没有云原生,云计算是云原生的基础。云计算的层划分(IaaS、PaaS、SaaS)为云原生提供了技术基础和方向指引。
          真正的云化不仅仅是基础设施和平台的变化,应用也需要做出改变,摈弃传统的土方法,在架构设计开发方式部署维护等各个阶段和方面都基于云的特点,重新设计,从而建设全新的云化的应用,即云原生应用。

(3)、基于“云原生架构”应用程序的指导思想

          符合云原生架构的应用程序应该是:采用开源堆栈K8S+Docker)进行容器,基于微服务架构提高灵活性可维护性,借助敏捷方法DevOps支持持续迭代自动化运维,利用云平台设施实现弹性伸缩动态调度优化资源利用率。

3、为什么会出现云原生—软件应用上云

          虚拟化技术的成熟和分布式框架的普及,使应用上云不再是企业转型难题。

(1)、软件应用上云

          云原生,是软件应用在上云过程,为了适应云、用好云的一种技术架构

(2)、软件设计的技术趋势和影响

参考—1、(5)、从云原生看软件设计的技术趋势和影响

4、云原生的优势/价值—转型利器(快速迭代/高效运维)、无需考虑底层技术(快速部署/按需伸缩/不停机交付)、更关注业务价值(向下封装资源/向上支撑应用)、应用法宝(构建应用简便快捷/部署应用轻松自如/来源:一个处女座的程序猿

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年10月8日
下一篇 2022年10月8日

相关推荐