什么是云原生?
云原生概念自Pivotal的Matt Stine于2013年首次提出,被一直延续使用至今。
这个概念是Matt Stine根据其多年的架构和咨询经验总结出来的一个思想集合,并得到了社区的不断完善,随着2015年CNCF的成立而逐渐走向成熟。
云原生是指在各种云计算环境中使用包括容器、服务网格、微服务、不可变基础设施和声明式、API、技术,构建和运行可弹性扩展的应用的一种软件开发方法。
-
云计算是当前IT发展的主流平台,为云原生发展打下架构资源基础。云原生是云计算服务的发展趋势,是云计算的再升级。
-
从技术发展趋势看,未来更多企业将会广泛应用云原生技术。从软件开发角度看,云原生技术为企业带来了更快进行业务创新的价值。
-
据Gartner预测,到2023年,全球70%的企业都将在生产中运行三个或更多的容器化应用。
云原生定义
-
云原生技术有利于各个组织在公有云、私有云或者混合云等环境中,构建和运行可弹性伸缩的应用。云原生的代表技术包括容器、服务网格、微服务、不可变基础设施及申明式API
-
云原生计算基金会(CNCF)致力于培养和维护一个厂商中立的开源生态系统,来推广云原生技术
云原生应用介绍
- 云原生应用程序是专为云模型构建的。这些应用程序由小型专用功能团队快速构建和部署到一个平台,可提供轻松的横向扩展和硬件解耦* —为组织提供跨云环境的更高灵活性,弹性和可移植性。*
—Pivotal
https://pivotal.io/de/cloud-native
- 云原生应用是独立的小规模松散耦合服务的集合,旨在提供备受认可的业务价值,例如快速融合用户反馈以实现持续改进。简而言之,通过云原生应用开发,可以加速构建新应用,优化现有应用并将这些应用全部组合在一起。其目标是以企业需要的速度满足应用用户的需求。
—RedHat
https://www.redhat.com/en/topics/cloud-native-apps
云原生应用综合理解
-
基于云原生的相关技术,设计运行在云上的,充分发挥云优势的应用。
-
一般采用容器的打包、分发、部署的形式,应用内(间)采用微服务的架构,充分利用云提供的组件服务,采用DevOps的组织架构和方法,通过CI/CD工具链,实现产品和服务的持续交付。
云计算和云原生
-
云原生是上云的最佳路径
-
云原生应用可以充分发挥云的特性
-
云原生应用、云原生平台和云原生系统都属于云原生的范畴
云原生的特征
云计算特征 | 云原生技术和平台 | 云原生应用 | 非云原生系统 |
---|---|---|---|
弹性伸缩 | 基于容器进行弹性伸缩 | 无状态、轻量级 | 难实现弹性伸缩 |
容错 | 基于容器进行自动故障恢复 | 优雅关闭 | 基于基础设施容错 |
自动化 | 云原生运维 | 提供拨测API | - |
自助服务 | 声明式API | - | - |
可观察 | 平台采集 | 无侵入 | 埋点、无侵入 |
不可变基础设施 | 容器镜像 | 可容器化 | 雪花服务器 |
敏捷业务实现 | 基于容器、服务网格和DevOps生态 | 微服务 | 通过虚拟机实现单体应用 |
简化使用及简化应用开发 | 基于申明式API和服务网格 | - | 命令式API |
尽量使用云服务,代码仅关注逻辑 | 云原生、服务网格及生态 | - | 代码或框架 |
中间件有状态应用维护 | Operator自动化运维 | - | 手工运维或脚本自动化运维 |
云原生技术架构
云原生方法如何使企业受益?
组织在构建云原生软件应用程序时以各种方式获得竞争优势。
提高效率
云原生开发带来了 DevOps 和持续交付(CD)等敏捷实践。开发人员使用自动化工具、云服务和现代设计文化来快速构建可扩展的应用程序。
降低成本
通过采用云原生方法,公司不必投资于昂贵的物理基础设施的采购和维护。这样可以长期节省运营支出。构建云原生解决方案所节省的成本也可能使您的客户受益。
确保可用性
云原生技术使公司能够构建弹性强且高度可用的应用程序。功能更新不会导致停机,公司可以在旺季纵向扩展应用程序资源,以提供积极的客户体验。
什么是 CNCF?
云原生计算基金会(CNCF)是一个开源基金会,可帮助组织开启[云原生之旅]。CNCF 成立于 2015 年,支持开源社区开发关键的云原生组件,包括 Kubernetes。
云原生关键技术 - 容器&不可变基础设施
- 容器能够将一个包含应用及运行依赖的镜像按照指定资源诉求在物理机或虚机上启动成为一个或一组隔离的OS进程,天然具备敏捷、弹性、可移植的特点
- 容器镜像和容器实例一旦创建成功便不能修改,只能替换
- 容器是微服务和持续集成的最佳载体
容器的优势
容器的一些优势包括:
- 与传统的应用程序部署相比,您使用的计算资源更少
- 您几乎可以立即部署它们
- 您可以更高效地扩展应用程序所需的云计算资源
云原生应用程序开发有哪些优点?
更快的开发
开发人员使用云原生方法来缩短开发时间并获得更高质量的应用程序。开发人员无需依赖特定的硬件基础设施,而是使用 DevOps 实践构建随时可部署的容器化应用程序。这使开发人员能够快速响应更改。例如,他们可以在不关闭应用程序的情况下进行多次每日更新。
平台独立性
通过在云中构建和部署应用程序,开发人员可以确保操作环境的一致性和可靠性。他们不必担心硬件不兼容,因为云提供商会解决这个问题。因此,开发人员可以专注于在应用程序中交付价值,而不是设置底层基础设施。
经济高效的运营
您只需为应用程序实际使用的资源付费。例如,如果您的用户流量仅在一年中的特定时间达到峰值,您只需为该时段支付额外费用。您不必预调配一年中大部分时间处于闲置状态的额外资源。
总结
我以前觉得未来是稳定的,是可预计的。我只要现在好好生活,延迟满足,为未来做规划,一定有一个美好的可期的未来等待着我。但我现在认为未来是不可预测的。最近听了进化的力量·刘润年度演讲2022, 就一直在探讨这个时代的不确定性,但是也正因为资本冬天才会有新的赛道(回想起来几次文明和革命萌生于冬天)。
但是云赛道作为一个新赛道,云原生更是一个新技术,希望大家在这里面找到确定性的未来!
结尾
生活还在继续,我也将保持我的记录,新的一年请不要害怕,勇敢的向前吧~~~
作者:武师叔
原文链接:https://juejin.cn/post/7179797318130991164
来源:稀土掘金