首页 > 其他分享 >云原生(Cloud native)

云原生(Cloud native)

时间:2024-07-11 21:31:42浏览次数:18  
标签:原生 容器 服务 部署 应用程序 应用 Cloud native

云原生(Cloud native)

一 定义

目前比较权威的定义主要来自Pivotal公司和云原生计算基金会(Cloud Native Computing Foundation,简称CNCF)。

1.1 Pivotal

  • 4个要点:
    DevOps持续交付微服务容器化
  • 六个特质:
    模块化(Modularity)可观测性(Observability)可部署性(Deployability)
    可测试性(Testability)可处理性(Disposability)可替换性(Replaceability)
  • 云原生是一个思想的集合,既包含技术(微服务,敏捷基础设施),也包含管理(DevOps、持续交付、康威定律以及重组等),云原生是一系列云技术、企业管理方法的集合。

1.2 CNCF

  • 云原生技术有利于各组织在公有云、私有云和混合云等新型动态环境中,构建和运行可弹性扩展的应用。
  • 云原生的代表技术包括容器、服务网格、微服务、不可变基础设施和声明式API。这些技术能够构建容错性好、易于管理和便于观察的松耦合系统。
  • 结合可靠的自动化手段,云原生技术使工程师能够轻松地对系统作出频繁和可预测的重大变更。

二 技术特点

2.1 微服务架构:

云原生化倡导使用微服务架构来构建应用程序,将应用程序拆分为多个小型、独立且可独立部署的服务,每个服务专注于解决特定的业务功能。这样可以提高应用程序的可扩展性、灵活性和可维护性。

2.2 容器化部署:

云原生应用程序通常使用容器技术(如Docker)进行部署,通过将应用程序及其依赖打包为容器镜像,实现跨平台、可移植和一致的部署。容器化还提供了隔离性和资源利用率的优势,使应用程序能够更高效地运行。

2.3 动态编排和自动化管理:

云原生化强调使用自动化工具和平台(如Kubernetes)来进行应用程序的动态编排和管理,自动化地管理容器的部署、伸缩、升级和监控等操作,提高应用程序的弹性和可靠性,并减少人工操作的复杂性。

2.4 弹性伸缩:

云原生化允许应用程序根据负载情况进行弹性伸缩,通过自动化的容器编排和服务发现,动态地添加或移除容器实例,以适应不同的负载变化,提高应用程序的性能和资源利用率。

2.5 持续交付和部署:

云原生化倡导使用持续集成和持续交付(CI/CD)的方法来实现应用程序的快速交付和部署,通过自动化的构建、测试和部署流程,快速、可靠地将应用程序更新推送到生产环境,减少发布的风险和时间成本。


三 技术栈

3.1 容器化

  • 容器引擎:如Docker,是一种开源的应用容器引擎,它将应用程序及其依赖打包成标准化的容器镜像。容器镜像可以在任何支持Docker的环境中运行,确保应用在开发、测试和生产环境之间的一致性。
  • 容器运行时:如containerd或runc,负责容器的生命周期管理,包括容器的创建、启动、停止、删除等操作,以及与宿主机的资源交互。
  • 容器编排:如Kubernetes(K8s),是目前最流行的容器编排平台,提供了一套强大的API和工具集,用于自动化容器的部署、调度、扩缩容、负载均衡、滚动升级、自我修复、服务发现、配置管理等操作。

3.2 微服务架构

  • 微服务:将大型单体应用分解为一组小型、独立的服务,每个服务专注于单一业务功能,通过API进行交互。微服务之间通过轻量级的通信机制(如RESTful API、gRPC等)互相协作,有助于提升开发速度、降低耦合度、增强系统的可伸缩性和容错能力。

3.3 服务间通信

  • RESTful API:
    基于HTTP协议和其各种方法(GET、POST、PUT、DELETE等),遵循资源导向的架构风格设计接口,广泛应用于微服务间的交互。
  • gRPC:
    由Google开发的一种高性能、通用的RPC(Remote Procedure Call)框架,基于HTTP/2协议和Protocol Buffers序列化协议,适用于对性能和效率要求较高的场景。
  • 消息队列:
    如RabbitMQ、Apache Kafka、Amazon SQS等,作为异步通信中间件,用于解耦服务、处理峰值负载、实现事件驱动架构。

3.4 服务网格

  • 服务网格技术:
    如Istio、Linkerd、Envoy等,位于服务之间,作为一层透明的基础设施层,负责服务间的网络通信、路由、安全、可观测性等功能。服务网格抽象了服务间通信的复杂性,使得开发者无需在应用代码中实现这些功能。

3.5 持续集成与持续部署(CI/CD)

  • CI/CD工具:
    如Jenkins、GitLab CI/CD、GitHub Actions、Azure DevOps等,用于自动化软件开发的构建、测试、打包、发布和部署流程。CI/CD实践有助于缩短迭代周期、提高软件质量、减少人工干预带来的错误。

3.6 声明式基础设施

  • 声明式配置:
    使用YAML或JSON格式的配置文件来描述应用部署的目标状态,如Kubernetes的YAML manifests。开发者只需定义期望的状态,系统会自动处理如何达到这个状态。
  • 基础设施即代码(IaC)管理工具:
    如Terraform、CloudFormation等,用于跨云平台的基础设施管理,实现基础设施的版本控制、自动化部署和一致性管理。

3.7 DevOps工具链

  • 日志聚合:
    如ELK Stack(Elasticsearch、Logstash、Kibana)、Splunk、Datadog等,用于收集、解析、存储、搜索、分析和可视化日志数据。
  • 监控:
    如Prometheus、Grafana、New Relic、Dynatrace等,提供系统和应用性能监控。
  • 错误追踪:
    如Sentry、Bugsnag、Rollbar等,用于捕获、分析和管理应用运行时的异常和错误。
  • 混沌工程:
    如Chaos Monkey、Chaos Toolkit等,通过主动在生产环境中引入故障,测试系统在异常条件下的表现和恢复能力。

3.8 无服务器计算(Serverless)

  • 无服务器服务:
    如AWS Lambda、Google Cloud Functions、Azure Functions等,允许开发者编写和运行代码片段(函数),无需关心底层服务器的运维,仅在函数被触发时按需执行并计费。

四 应用场景

云原生技术在多个领域都有广泛的应用前景,包括但不限于:

  • 大规模互联网应用:构建高可用性、高性能和高可扩展性的互联网应用。
  • 金融业务:提供安全、可靠、高效的应用程序开发和部署方式,提高金融业务应用的可靠性和安全性。
  • 人工智能和大数据:为AI和大数据应用提供高效、可扩展、弹性伸缩的应用程序开发和部署方式。
  • 物联网:处理海量的传感器数据,实现快速部署和弹性伸缩,提高物联网应用的可靠性和可维护性。
  • 区块链:为区块链应用提供高效、可扩展、弹性伸缩的应用程序开发和部署方式。

以上就是云原生的全部内容,感谢阅读!

标签:原生,容器,服务,部署,应用程序,应用,Cloud,native
From: https://blog.csdn.net/yuiezt/article/details/140350728

相关文章

  • 【云原生技术】微服务模式如何建立负载均衡体系?
    微服务模式如何建立负载均衡体系?1.**选择适当的负载均衡策略**2.**使用服务注册与发现**3.**动态调整和监控**4.**使用反向代理和网关**5.**容错和弹性设计**示例)建立有效的负载均衡体系对于微服务架构至关重要,它可以确保各个微服务实例能够均衡地分担请求负......
  • 已有SpringBoot后端项目 升级为 芋道框架(yudao-cloud)指南
    已有SpringBoot后端项目升级为芋道框架(yudao-cloud)指南启动芋道框架后端:快速启动(后端项目)前端:快速启动(后端项目)注意:必须要下载Redis和Nacaos,在后端的快速启动中有教程启动nacos的命令在教程中有误,没有进行集群部署的nacos要使用以下命令启动startup.cmd-m......
  • 架构设计(2)云原生架构与实例部署
    云原生架构云原生架构是一种面向云环境设计和构建应用程序的方法论,旨在充分利用云计算的优势,如弹性、自动化和可扩展性,以实现更高效、可靠和灵活的应用部署和管理。以下是云原生架构的核心理念和关键特点:核心理念:容器化:将应用程序及其所有依赖(如库、配置)打包到容器中,实现环......
  • 学习SpringCloud环境搭配
    今天准备学习一下springcloud,在网上找了一个最新的学习视频需要更新一下之前安装的软件版本。突然想起来我还有个博客园的账号,就想记录一下环境搭建。主要是分为以下几个部分Java17+Maven3.9+Mysql8.0+cloud2023.0.0boot3.2.0cloudalibaba2022.0.0.0之前有搭......
  • 从IBM ESB升级到RestCloud iPaaS的全面指南
    前言在当今快速变化的商业环境中,企业对集成解决方案的需求越来越高。传统的企业服务总线(ESB)虽然在过去提供了强大的集成能力,但随着技术的发展和业务需求的变化,越来越多的企业选择迁移到集成平台即服务(iPaaS)。RestCloud iPaaS,作为一款领先的iPaaS解决方案,提供了全面的功能和灵活......
  • 基于SpringBoot + SpringCloud+ElasticSear的在线教育管理系统设计与实现(MySQL、Mongo
    本项目适合做计算机相关专业的毕业设计,课程设计,技术难度适中、工作量比较充实。完整资源获取点击下载完整资源1、资源项目源码均已通过严格测试验证,保证能够正常运行;2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通;3、本项目比较适合计算......
  • 分享一个Typecho博客系统专用的CloudFlare缓存规则,优化加速一下下!
    好久都没有更新Typecho博客了,最近几天明月测试了一套适用于Typecho博客系统的CloudFlare缓存规则,经过近一周时间的测试确定有效,并且加速效果特别突出,今天就无偿分享给大家,也算是为国内Typecho生态添砖加瓦了吧!总结下来,这套CloudFlare缓存规则带来的好处就是可以大大的缓解服务......
  • 17、Django-聚合查询-原生sql语句操作raw()
    聚合查询:整表聚合和分组聚合 1、整表聚合--不带分组的聚合查询是指:将全部数据进行集中统计查询--需要导入:--fromdjango.db.modelsimport*--聚合函数:Sum,Avg,Count,Max,Min--语法:--<model_name>.objects.aggregate(结果变量名=聚合函数('字段名'))......
  • APICloud+ cosClient快速构建APP
    APICloud简介APICloud是一个移动低代码开发平台,对于不同的需求场景提供了不同的功能模块,并快速构建企业级应用。cosClient模块简介cosClient是腾讯云对象存储(COS)针对APICloud平台桥接原生SDK封装的模块,可以使用cosClient快速接入并使用COS的功能,目前支持Android、iOS。在APIC......
  • 【云原生之kubernetes实战】在k8s环境下部署OrangeHRM人力资源管理系统
    【云原生之kubernetes实战】在k8s环境下部署OrangeHRM人力资源管理系统一、OrangeHRM介绍1.1OrangeHRM简介1.2OrangeHRM特点1.3OrangeHRM使用场景二、相关知识介绍2.1本次实践存储介绍2.2k8s存储介绍三、本次实践介绍3.1本次实践简介3.2本次......