云原生
「这是我参与2022首次更文挑战的第27天,活动详情查看:2022首次更文挑战」
CNCF 对云原生的定义:
Cloud native technologies empower organizations to build and run scalable applications in modern, dynamic environments such as public, private, and hybrid clouds. Containers, service meshes, microservices, immutable infrastructure, and declarative APIs exemplify this approach
云原生的技术有利于各组织在公有云、私有云和混合云等新型动态环境中,构建和运行 可弹性扩展的应用。云原生的代表技术包括容器、服务网格、微服务、不可变基础设 施和声明式 API。
设计理念
- 面向分布式设计(Distribution):容器、微服务、API 驱动的开发;
- 面向配置设计(Configuration):一个镜像,多个环境配置;
- 面向韧性设计(Resistancy):故障容忍和自愈;
- 面向弹性设计(Elasticity):弹性扩展和对环境变化(负载)做出响应;
- 面向交付设计(Delivery):自动拉起,缩短交付时间;
- 面向性能设计(Performance):响应式,并发和资源高效利用;
- 面向自动化设计(Automation):自动化的 DevOps;
- 面向诊断性设计(Diagnosability):集群级别的日志、metric 和追踪;
- 面向安全性设计(Security):安全端点、API Gateway、端到端加密;
所以,云原生到底是什么?
个人理解,云原生是一种技术方法,通过云原生技术构建容错性好,易于管理和便于观察的松耦合系统。我们为了设计一个可持续、快速交付的系统,且易于运维的系统时,通过云原生技术,从系统构建,开发过程部署,维护,监控等操作,让我们更方便工作。
将云原生划分为:云原生基础设施和云原生应用程序。云原生设施主要是一套用以支撑管理应用程序的设施,使应用程序在部署,管理,测试和操作基础架构的流程自动化管理,且有效监控服务情况。云原生应用程序是被设计为在平台上运行。
云原生的应用开发所构建和运行的应用,主要都是基于四大原则的云计算模型:
- 基于胃服务的架构:微服务架构,可以被独立部署,更新,scale 和重启
- 基于API的通信:应用间通过 RestApi 通信
- 基于容器的基础架构:微服务的最佳载体
- DevOps流程:通过使用敏捷的方法、依据可持续交付和 DevOps 原则开发应用。比如:自动化发布管道,CI工具,快速部署到生产环境,快速交付,快速反馈,降低发布风险
云原生特点:
- 敏捷
- 可靠
- 高弹性
- 易扩展
- 故障隔离保护
- 不中断业务持续更新