云原生(Cloud Native)技术概述

概念

云原生是一套构建和运行应用程序的方法论,它充分利用云计算交付模型的优势,核心目标是实现应用的敏捷、弹性、可扩展和高可用。四大核心支柱:

  • 容器化:以Docker为代表,将应用及其所有以来打包成一个标准化的单元,实现环境一致性。
  • 动态编排:以Kubernetes为代表,自动化容器的部署、管理、扩展和修复。
  • 微服务:将单体应用拆分为一组小的、松耦合的服务,每逢服务独立开发、部署和扩展。
  • DevOps和持续交付:通过自动化工具链和文化,实现快速、频繁、可靠的软件交付

中间件(Middleware)的云原生演进

传统中间件(如消息队列、API网关、缓存)在云原生时代发生根本性的变化。

特点:

  • 服务化与轻量级:从笨重的单体中间件(如IBM WebSphere)演变为轻量级的、可独立部署的微服务(如Redis,RabbitMQ)
  • 容器化:中间件本身被容器化,可以通过Kubernetes进行编排和管理。
  • Operator模式:使用Kubernetes Operator来管理有状态应用(如数据库、消息队列),实现运维的自动化(如利用ETCD Operator可完成本分、恢复、升级等复杂操作)。
  • Sidecar模式:通过Sidecar容器(如Envoy)将中间件能力(如服务发现、负载均衡、熔断)下沉到基础设施层,对应透明。

代表性技术:

  • 服务网格:Istio,Linkerd(集成了服务发现、负载均衡、熔断、限流、观测等所有网络中间件功能)
  • 消息队列:Apache Kafka、RabbitMQ、NATS
  • API网关:Kong,Apache APISIX,Envoy
  • 缓存:Redis,Memcached

无服务器计算 Serverless

Serverless(无服务器计算)是一种原生开发模型,开发者无需关心服务器(底层基础设施)的运维,只专注于编写业务代码,服务器管理、容量规划、扩缩容等工作全部由云平台自动完成。

Serverless应用需要按需使用中间件服务,推动了"数据库即服务"、"消息队列即服务"等托管中间件的变革。

函数计算

函数计算(Function as a Service, FaaS)是Serverless中最具代表的执行模型。

核心概念:

  • 事件驱动:函数由特定事件触发执行,例如HTTP请求、消息队列中的消息、文件上传、定时器等。
  • 极致弹性:根据请求量毫秒级自动扩缩容,从零实例扩展到成千上万个实例,空闲时自动缩容为零。
  • 按需付费:只在中世纪执行函数时按执行时长和资源消耗付费,空闲时不产生任何费用。

优势:降低运维负担、成本优化、开发敏捷

挑战:

  • 冷启动延迟:实例从零启动需要时间,可能影响响应速度
  • 状态管理:函数本身应是无状态的,状态需要存储在外部的数据库或存储服务中
  • 调试和观测:分布式和瞬态的特性使得调试和追踪变得更复杂

代表性技术:

  • 公有云服务:AWS Lambda、Google Cloud Functions、Azure Functions
  • 开源框架:Knative(基于Kubernetes的Serverless框架)、OpenFaaS

可观测行 Observability

可观测行是指除监控Monitoring外,通过系统外部输出的信息(如日志、指标和追踪)来理解系统内部状态的能力。

三大支柱:

  • 日志 Logs:离散的、带时间戳的事件记录,用于记录详细上下文信息,如错误信息,调试信息。云原生工具如ELK Stack,Loki,Fluentd
  • 指标Metrics:一段时间内可聚合的数字数据,用于衡量系统性能,如CPU使用率、请求QPS、错误率。云原生工具如Prometheus事实标准、Grafana可视化
  • 追踪Traces:记录单个请求在分布式系统中流转的完整路径,用于分析延迟性能瓶颈。云原生工具如Jaeger,Zipkin

关联与协同

云原生技术栈是一个有机整体,容器化和Kurbernetes编排是基石,Serverless提供了最新应用开发范式,现代化中间件提供支撑服务,可观测行保证整个系统稳定、高效运行。

完整的应用生命周期势力:开发者编写一个函数(Serverless),该函数通过API网关(中间件)暴露,调用其他微服务,并将状态写入Redis(中间件),通过OpenTelemetry手机日志、指标和追踪数据,在Promethus和Grafana上展示。

相关推荐
静谧之心6 小时前
在 K8s 上可靠运行 PD 分离推理:RBG 的设计与实现
云原生·容器·golang·kubernetes·开源·pd分离
Serverless 社区6 小时前
阿里云函数计算 AgentRun 全新发布,构筑智能体时代的基础设施
人工智能·阿里云·云原生·serverless·云计算
小马爱打代码7 小时前
zookeeper:一致性原理和算法
分布式·zookeeper·云原生
Serverless社区1 天前
阿里云函数计算 AgentRun 全新发布,构筑智能体时代的基础设施
阿里云·云原生·serverless·函数计算
一叶飘零_sweeeet1 天前
从 0 到 1 掌控云原生部署:Java 项目的 Docker 容器化与 K8s 集群实战指南
docker·云原生·kubernetes·项目部署
码路工人1 天前
附录B:kubectl 命令速查表 - Kubernetes 集群管理必备指南
docker·云原生·容器
码路工人1 天前
附录A:常用 Docker 命令速查表
docker·云原生·容器
你好龙卷风!!!2 天前
SpringCloud,vue3应用使用AlibabaCloudToolkit自动化部署到远程服务器上的docker
云原生·自动化
FIN66682 天前
募投绘蓝图-昂瑞微的成长密码与未来布局
前端·后端·5g·云原生·信息与通信·射频工程·芯片
许泽宇的技术分享2 天前
.NET Aspire深度解析:重新定义云原生分布式应用开发的“秘密武器“
云原生·.net