什么是云原生呢?有人说云原生是一个不断发展演进的概念,不同时期、不同组织对云原生有着不同的理解和解释。目前在业界具有广泛影响力的云原生计算基金会 CNCF 对云原生是这么定义的:云原生技术有利于组织在公有云、私有云和混合云等新型动态环境中,构建和运行可弹性扩展的应用,云原生的代表技术包括容器,服务网格、微服务、不可变基础设施和声明式API。这些技术能够构建容错性好、易于管理和便于观察的松耦合系统。结合可靠的自动化手段,云原生技术使工程师能够轻松对系统做出频繁可预测的重大变更。
目前CNCF给出了云原生应用的三大特征:
1.容器化封装:以容器为基础,提高整体开发水平,形成代码和组件重用,简化云原生应用程序的维护。在容器中运行应用程序和进程,并作为应用程序部署的独立单元,实现高水平资源隔离
2.动态管理:通过集中式的编排调度系统来动态的管理和调度。
3.面向微服务:明确服务间的依赖,互相解耦。
云原生的六要素:
1.微服务:微服务倡导应用化整为零,将应用松散解耦,实现各个功能的独立开发和部署,提升应用架构的灵活性,提升对业务的响应速度。
2.容器:容器是一种轻量级的虚拟化技术,本质上是与系统其他部分隔开的一系列进程。容器化为微服务提供实施保障,起到应用隔离作用,通过容器可以简化应用的部署、管理和交付。
3.无服务器架构:“无服务器”并不意味着未来不在需要服务器,而是不再关注底层的服务架构,开发人员只需把关注的点放在跟业务更相关的业务逻辑的实现上,比如说一些函数的代码片段,平台自动根据负载按需部署和启动,以及自动伸缩开发人员业务处理的需求。
4.服务网格:服务网格可以看做更加智能的代理软件。在容器和微服务的基础上,通过服务网格可以让用户更精细更智能的去管理服务之间的通讯。
5.云:云是一种提供资源的网络,是云原生技术的根基,云原生的一切是建立在云之上的。建立对云的正确理解对理解云原生来说十分关键。对非技术人员来说,至少要理解云的多种不同的服务模型,以及不同模型的应用场景和架构。
6.DevOps:DevOps 一词的来自于 Development 和 Operations 的组合,突出重视软件开发人员和运维人员的沟通合作,通过自动化流程来使得软件构建、测试、发布更加快捷、频繁和可靠。
这六大技术相互联系,相互配合,构成了云原生的蓝图。
以上是云原生的简介,具体的要深入学习云原生的知识最好的方法就是在工作实践中不断的探索和发现。