CNCF项目全景图介绍

本文首发在个人博客上,欢迎来踩!

云原生计算基金会(CNCF)介绍

CNCF(Cloud Native Computing Foundation)官网链接:https://www.cncf.io/

官方的介绍如下:

  • 云原生技术有利于各组织在公有云、私有云和混合云等新型动态环境中,构建和运行可弹性扩展的应用。云原生的代表技术包括容器、服务网格、微服务、不可变基础设施和声明式API。
  • 这些技术能够构建容错性好、易于管理和便于观察的松耦合系统。结合可靠的自动化手段,云原生技术使工程师能够轻松地对系统作出频繁和可预测的重大变更。
  • 云原生计算基金会(CNCF)致力于培育和维护一个厂商中立的开源生态系统,来推广云原生技术。我们通过将最前沿的模式民主化,让这些创新为大众所用。

简单来说,CNCF主要致力于推动开源的云原生技术的可持续发展。

CNCF项目全景图

到2024年6月为止,CNCF已经有26个毕业项目,37个孵化项目,116个沙盒项目。毕业和孵化项目被认为是稳定的,并已在生产环境中成功使用。沙盒项目是新项目,还需要进行开发演进,不适合在生产环境中使用。

其目前的全景图可以从此链接中查看:https://landscape.cncf.io/,如下图所示:

CNCF全景图

下面简单介绍一下CNCF各个层次的项目,主要参考来源于CNCF的官方介绍:https://landscape.cncf.io/guide

配置

配置是云原生环境中的第一层。它包含用于创建和强化构建云原生应用的基础的工具。它包括找到用于自动配置、创建和管理基础架构的工具,以及用于扫描、签名和存储容器映像的工具。该层还扩展到安全性,其中包含支持策略设置和实施、嵌入式身份验证和授权以及机密分发处理的工具。

自动化和配置

  • 解决什么问题:
    传统的 IT 流程依赖于漫长且劳动密集的手动发布周期,通常为三到六个月,导致生产环境变更速度缓慢。这与需要快速开发周期的云原生开发不兼容。

  • 如何解决问题:
    自动化和配置工具通过编码环境设置,使工程师无需人工干预即可创建和管理计算资源,只需单击按钮即可重现所需状态。这些工具减少了手动配置的错误,提高了工作效率,并允许通过编程方式配置新服务器和应用程序,支持快速、动态的基础设施管理。

  • 代表性项目:

    • Cloud Custodian (孵化中)
    • KubeEdge (孵化中)

容器注册表

  • 解决什么问题:
    容器注册表解决了云原生应用运行所需的容器镜像存储和分发问题,确保开发人员可以方便地访问和管理这些镜像。

  • 如何解决问题:
    容器注册表通过集中存储容器镜像,使开发人员能够轻松访问所需的镜像。它们提供 Web API 接口以存储和检索镜像,并集成功能如扫描、签名和分发,以增强安全性和效率。

  • 代表性项目:

    • Harbor(已毕业)
    • Dragonfly (孵化中)

安全与合规

  • 解决什么问题:
    默认情况下,Kubernetes 具有极其宽松的访问控制设置,不适合生产使用。结果:对于任何想要攻击您的系统的人来说,Kubernetes 集群都是一个有吸引力的目标。
    安全和合规性工具解决了云原生应用程序在快速迭代过程中需要确保代码和操作环境安全的需求,防止未经授权的访问和潜在的安全漏洞。

  • 如何解决问题:
    这些工具通过设置安全策略、扫描容器漏洞、签名镜像以防篡改,以及强化和监控 Kubernetes 集群来确保安全性。它们帮助发现错误配置并在系统出现异常行为时进行检测和响应。

  • 代表性项目:

    • Falco (已毕业)
    • Open Policy Agent (已毕业)

密钥管理

  • 解决什么问题:
    密钥管理工具解决了在云原生环境中安全存储和分发密码、API 密钥等敏感数据的需求,同时确保身份验证和授权过程的安全性和自动化。

  • 如何解决问题:
    这些工具提供安全的密钥生成、存储、管理和轮换功能,支持自动化的密钥分发,并提供身份验证和授权服务。它们确保应用程序能安全地验证和授权请求,无需人工干预,提升整体安全性和效率。

  • 代表性项目:

    • SPIFFE (已毕业)
    • SPIRE (已毕业)

运行时

现在我们已经建立了云原生环境的基础,我们将上移一个基础设施层并放大到运行时层。它涵盖了容器在云原生环境中运行所需的一切。其中包括用于启动容器的代码(称为容器运行时)、使持久存储可用于容器的工具以及管理容器环境网络的工具。

但请注意,这些资源不应与上面讨论的配置层处理的网络和存储工作相混淆。这些资源专注于让容器平台运行。此类别中的工具用于启动和停止容器,帮助它们存储数据,并允许它们相互通信。

云原生存储

  • 解决什么问题:
    云原生架构的流动性和弹性使得持久保存数据非常具有挑战性,尤其是在容器不断创建、删除和改变位置的情况下。传统存储解决方案难以满足云原生环境中自动扩展和自我修复的需求。

  • 如何解决问题:
    云原生存储工具通过提供云原生兼容的存储选项、标准化存储接口、以及数据保护功能(如备份和恢复),使存储自动化配置,消除人为瓶颈,实现自动扩展和自我修复。例如,容器存储接口 (CSI) 提供标准 API 以向容器提供文件和块存储,工具如 Minio 和 Velero 提供对象存储和数据保护功能。

  • 代表性项目:

    • Rook (已毕业)
    • CubeFS (孵化中)

容器运行时

  • 解决什么问题:
    容器运行时解决了启动容器镜像(包含应用程序规范的文件)的需求,确保应用程序以标准化、安全和隔离的方式运行,同时为其提供必要的资源如 CPU、存储和内存。

  • 如何解决问题:
    容器运行时软件在所有环境中标准化地启动应用程序,设置安全边界并隔离资源。工具如 CRI-O 和 gVisor 提供强化的安全边界,防止未经授权的访问和相互干扰,同时为应用程序设定资源限制,确保各应用程序稳定运行而不抢占资源。

  • 代表性项目:

    • containerd (已毕业)
    • CRI-O (已毕业)

云原生网络

  • 解决什么问题:
    云原生网络解决了分布式应用程序中各个容器之间的通信问题,使这些容器能够私下、安全地相互通信。它还解决了数据流管理和网络策略扩展的挑战,尤其在需要连接虚拟机或外部服务时。

  • 如何解决问题:
    此类工具使用容器网络接口 (CNI) 创建覆盖网络,分配 IP 地址,提供基本连接或完整的软件定义网络层。工具如 Flannel 提供基本连接,而 NSX-T 等工具创建独立的虚拟网络,支持网络流量管理和策略执行,确保容器化应用程序的安全高效通信。

  • 代表性项目:

    • Cilium (已毕业)
    • CNI (孵化中)

编排与管理

调度与编排

  • 解决什么问题:
    在云原生架构中,应用程序被分解为许多微服务,每个服务运行在一个容器中。管理这些大量分散的容器需要自动化的编排和调度工具,以确保资源分配、监控和故障恢复。

  • 如何解决问题:
    容器编排工具如 Kubernetes自动管理容器,执行期望状态协调,确保集群实际状态与工程师设定的期望状态匹配。它通过创建、销毁和监控容器,自动处理应用程序的启动、扩展和恢复,使用户能够将整个集群视为单一资源池,简化了复杂的分布式应用程序管理。

  • 代表性项目:

    • Kubernetes (已毕业)
    • Keda (已毕业)

协调与服务发现

  • 解决什么问题:
    在动态且流动的云原生架构中,服务的位置不断变化,服务之间需要协作但没有固定的位置。服务发现工具解决了识别和定位服务位置的问题,确保各服务能够找到并通信。

  • 如何解决问题:
    服务发现工具通过提供一个公共位置来存储和检索服务信息,分为服务发现引擎和名称解析工具。服务发现引擎(如 etcd)存储所有服务及其位置信息,而名称解析工具(如 CoreDNS)处理服务位置请求并返回网络地址信息。这些工具有效管理服务的注册和注销,确保服务间通信的可靠性和动态适应性。

  • 代表性项目:

    • Etcd (已毕业)
    • CoreDNS (已毕业)

远程过程调用

  • 解决什么问题:
    现代应用程序由众多单独的服务组成,这些服务必须进行通信才能协作。RPC 是处理应用程序之间通信的一种选择。

  • 如何解决问题:
    RPC 提供了一种紧耦合且高度规范的通信方式,允许高效的带宽利用和多种编程语言的支持,例如流行的 gRPC 实现。

  • 代表性项目:

    • gRPC (孵化中)

服务代理

更关注于外部用户访问和 API 管理
  • 解决什么问题:
    服务代理解决了应用程序内部和应用程序之间的网络流量管理问题,使得流量可以受控地发送和接收,并允许对流量进行转换、重定向或拒绝请求等操作。

  • 如何解决问题:
    通过将流量管理功能从应用程序中外部化到服务代理,开发人员可以更专注于编写核心业务逻辑,而平台团队则可以管理通用任务,如路由、TLS 终止和流量均衡,从而提高通信的可靠性、安全性和效率。

  • 代表性项目:

    • Envoy (已毕业)
    • CONTOUR(孵化中)

API 网关

  • 解决什么问题:
    API 网关解决了组织管理多个 API、实施规则并提供通用接口的问题,同时简化了用户与应用程序之间的交互。

  • 如何解决问题:
    通过充当中间人,接收并评估用户请求,记录请求详细信息,并将请求转发到适当的服务,API 网关提供了统一的入口点和管理功能,使得开发人员可以更专注于核心业务逻辑。

  • 代表性项目:

    • Emissary-Ingress (孵化中)

服务网格

关注于服务内部通信和交互
  • 解决什么问题:
    服务网格解决了在云原生环境中管理服务之间通信和添加功能的问题,同时降低了技术债务和复杂性。

  • 如何解决问题:
    通过统一管理集群中所有服务的可靠性、可观察性和安全性功能,服务网格使开发团队可以专注于编写业务逻辑,而无需触及底层代码。

  • 代表性项目:

    • Istio (已毕业)
    • Linkerd (已毕业)

应用程序定义和开发

到目前为止,我们讨论的所有内容都与构建可靠、安全的环境和提供所有必要的依赖项有关。现在,我们已到达 CNCF 云原生环境的顶层。顾名思义,应用程序定义和开发层专注于使工程师能够构建应用程序的工具。

数据库

  • 解决什么问题:
    数据库解决了应用程序需要有效存储和检索数据的需求,同时确保数据安全和合规性。

  • 如何解决问题:
    数据库通过提供通用接口和查询语言,使开发人员能够存储、查询和检索信息,并管理数据的备份、加密和访问控制。同时还加强数据库的容器化。

  • 代表性项目:

    • TiKV (已毕业)
    • Vitess (已毕业)

流媒体和消息传递

解决什么问题:
流媒体和消息传递解决了随着服务数量增加,应用程序通信管理变得更复杂的问题,提供了一个集中管理事件发布和读取的中心位置,使得应用程序能够协同工作。

如何解决问题:
通过发布-订阅的方法,服务可以将事件发布到消息传递工具或流式传输,其他需要了解这些事件的服务则可以订阅并观察这些工具,从而实现了解耦的架构。这种解耦使得工程师能够添加新功能,而无需更新下游应用程序或发送大量查询。

  • 代表性项目:
    • CloudEvents (已毕业)
    • NATS (孵化中)

应用程序定义和映像构建

解决什么问题:
应用程序定义和镜像构建是一个广泛的类别,可以分为两个主要子类。首先,以开发人员为中心的工具,可帮助将应用程序代码构建到容器和/或 Kubernetes 中。其次,以运营为中心的工具,以标准化方式部署应用程序。无论您是打算加速或简化开发环境,提供标准化的方式来部署第三方应用程序,还是希望简化编写新 Kubernetes 扩展的过程,此类别都可以涵盖许多优化 Kubernetes 开发人员和操作员体验的项目和产品。
应用程序定义和映像构建工具致力于解决开发人员和运营商在 Kubernetes 和容器化环境中面临的挑战,包括构建可重现映像、标准化应用程序部署和简化环境配置等问题。

如何解决问题:
这些工具帮助开发人员简化扩展 Kubernetes、构建、部署和连接应用程序的过程,同时为运营商提供标准化的方式部署预打包的应用程序,快速部署服务网格等服务,以及简化映像创建和应用程序部署的过程。通过引入这些工具,可以加速应用程序开发、提高部署效率,并降低操作复杂性。

  • 代表性项目:
    • Helm(已毕业)
    • Artifact Hub (孵化中)
    • KubeVirt (孵化中)

持续集成和交付

解决什么问题:
持续集成 (CI) 和持续交付 (CD) 工具旨在解决开发人员和运营商在构建和部署应用程序时面临的挑战,包括确保代码质量、自动化构建和部署流程、提高交付速度和减少错误的问题。

如何解决问题:
这些工具通过自动化代码更改的构建、测试和部署过程,确保代码集成的连续性和质量。CI 系统可帮助开发人员快速发现并修复代码错误,而 CD 系统则将 CI 流程的结果推送到不同环境,从开发到生产,以确保交付的可靠性和一致性。这些工具与 Kubernetes 等技术结合使用,使得云原生环境下的持续集成和交付更加高效和可靠。

  • 代表性项目:
    • Argo(已毕业)
    • Flux (已毕业)

可观察性和分析

现在我们已经了解了 CNCF 格局的各个层面,我们将重点关注从可观察性和分析性开始的列。

在深入探讨这些类别之前,我们先来定义一下可观察性和分析性。可观察性是一种系统特性,它描述了系统从外部输出中可理解的程度。通过 CPU 时间、内存、磁盘空间、延迟、错误等来衡量,计算机系统的可观察性或多或少。分析是一种查看这些可观察数据并理解其意义的活动。

为了确保服务不会中断,您需要观察和分析应用程序的各个方面,以便立即检测并纠正每个异常。这就是此类别的全部内容。它运行并观察所有层,这就是为什么它位于侧面而不是嵌入特定层的原因。

此类别中的工具分为可观察性和混沌工程。请注意,类别名称有些误导 — 虽然此处列出了混沌工程,但请将其视为可靠性工具,而不是可观察性或分析工具。

可观察性

解决什么问题:
可观察性解决了复杂系统中出现故障或性能下降时难以定位问题的挑战。它通过提供有关系统运行状况、关键统计数据和问题调试信息的高质量遥测数据,帮助用户理解系统的内部运行情况。

如何解决问题:
可观察性框架收集并分析来自应用程序代码、底层基础设施以及编排系统等的日志、指标和跟踪数据。这些数据可以帮助运维人员更快地响应事件,开发人员在生产中调试应用程序,并帮助组织了解用户行为与系统性能之间的关系。在云原生环境下,可观察性对于快速定位和解决问题至关重要。

  • 代表性项目:
    • Prometheus(已毕业)
    • Fluentd (已毕业)

混沌工程

解决什么问题:
混沌工程旨在解决复杂系统中故障带来的挑战,通过故意引入故障来测试系统的弹性,以确保系统和工程团队能够应对动荡和意外事件。

如何解决问题:
混沌工程工具提供了一种受控的方式来引入故障并针对应用程序的特定实例运行实验。通过这种方式,团队可以在生产环境中实验,以确保系统在面对实际故障时能够优雅地运行和恢复。这种做法有助于优化平均修复时间(MTTR),使团队更具应变能力和可靠性。

  • 代表性项目:
    • Chaos Mesh (孵化中)
    • Litmus(孵化中)

平台

正如我们目前所见,讨论的每个类别都解决了一个特定的问题。单靠存储并不能提供管理应用所需的一切。您需要一个编排工具、一个容器运行时、服务发现、网络、API 网关等。平台将不同层的不同工具捆绑在一起,解决更大的问题。

这些平台本身并没有什么新意。它们所做的一切都可以通过这些层或可观察性和分析列中的工具之一完成。您当然可以构建自己的平台,事实上,许多组织都这样做了。但是,可靠、安全地配置和微调不同的模块,同时确保所有技术始终保持最新状态并修补漏洞并非易事——您需要一个专门的团队来构建和维护它。如果您没有必要的资源或专业知识,您的团队可能最好使用平台。对于一些组织,尤其是那些工程团队较小的组织,平台是采用云原生方法的唯一途径。

你可能会注意到,所有平台都围绕 Kubernetes展开。这是因为它是云原生堆栈的核心。

认证 Kubernetes - 分发

解决什么问题:
发行版(或发行版)解决了 Kubernetes 部署和管理的复杂性,为用户提供了可靠的 Kubernetes 安装方式,并提供了默认设置,以创建更好、更安全的操作环境。

如何解决问题:
通过将核心 Kubernetes 打包并提供处理集群安装和升级的机制,发行版简化了 Kubernetes 的采用和管理过程。它提供了可预测的配置和设置,为用户提供了支持和升级路径,并附带经过测试的软件扩展,使得在 Kubernetes 上部署其他应用程序更加容易。

  • 代表性项目:
    • K3s (沙盒)

经过认证的 Kubernetes - 托管

解决什么问题:
托管 Kubernetes 是基础设施提供商(如AWS、Digital Ocean、Azure和Google)提供的服务,简化了 Kubernetes 的部署和管理,允许用户无需深入了解即可启动和管理 Kubernetes 集群。

如何解决问题:
用户可以通过在云提供商处设置帐户,并通过简单的界面或命令行工具启动 Kubernetes 集群,而无需自己进行配置或管理。托管 Kubernetes 将管理细节外包给供应商,使用户能够专注于应用程序开发和部署。

  • 代表性项目:
    • 无,主要是由云服务商提供

认证 Kubernetes - 安装程序

  • 解决什么问题:
    认证 Kubernetes - 安装程序解决了在机器上安装和配置 Kubernetes 的复杂性问题,特别是对于初学者和没有专业知识的用户而言。

  • 如何解决问题:
    它通过自动执行安装和配置过程,提供经过审查的源代码和环境配置,简化了 Kubernetes 的部署过程,让用户可以快速轻松地搭建起符合标准的 Kubernetes 环境。

  • 代表性项目:

    • Kubean (沙盒)
    • Kind (沙盒)

PaaS/容器服务

  • 解决什么问题:
    PaaS/容器服务解决了用户在运行应用程序时不必关心底层计算资源细节的问题,为开发人员提供了托管应用程序的环境。

  • 如何解决问题:
    通过将各种开源和闭源工具组合在一起,并提供处理安装、升级和运行时需求的机制,PaaS/容器服务简化了应用程序部署和管理过程,加快了价值实现途径。

  • 代表性项目:

    • 目前该领域没有 CNCF 项目,但大多数产品都是开源的,Cloud Foundry 由 Cloud Foundry 基金会管理。

总结

现在我们已经分解了 CNCF 云原生全景图,并逐层、逐类进行了讨论,可能感觉没那么难了。它有一个逻辑结构,一旦你理解了它,浏览全景图就会变得容易得多。

CNCF Landscape 的各个层级相互依存。首先是配置层,其中包含奠定基础设施基础所需的工具。接下来是运行时层,其中的所有内容都围绕容器以及容器在云原生环境中运行所需的内容。编排和管理层包含用于编排和管理容器和应用程序的工具 - 换句话说,就是创建应用程序构建平台所需的工具。应用程序和定义与开发层涉及使应用程序能够存储和发送数据所需的工具,以及我们构建和部署应用程序的方式。

层旁边有两列。可观察性和分析列包括监控应用程序并在出现问题时发出警报的工具。由于所有层都必须受到监控,因此此类别涵盖所有层。最后是平台。平台不提供新功能,而是将不同层的多种工具捆绑在一起,对其进行配置和微调,以便随时可用。这简化了云原生技术的采用,甚至可能是组织能够利用这些技术的唯一方式。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/693492.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

程序猿大战Python——流程控制——if基础语句

三大基本语句 目标:了解三大基本语句有哪些? Python中有三大基本语句,它们支撑起了程序的业务逻辑处理。 三大基本语句有: (1)顺序语句 (2)分支语句 (3)循…

【K8s源码分析(三)】-K8s调度器调度周期介绍

本文首发在个人博客上,欢迎来踩! 本次分析参考的K8s版本是v1.27.0。 K8s的整体调度框架如下图所示。 调度框架顶层函数 K8s调度器调度的核心函数schedulerone在pkg/scheduler/schedule_one.go:62,如下,这里将一些解释写在了注…

LLM大语言模型(十六):最新开源 GLM4-9B 本地部署,带不动,根本带不动

目录 前言 本机环境 GLM4代码库下载 模型文件下载:文件很大 修改为从本地模型文件启动 启动模型cli对话demo 慢,巨慢,一个字一个字的蹦 GPU资源使用情况 GLM3资源使用情况对比 前言 GLM-4-9B 是智谱 AI 推出的最新一代预训练模型 …

Java:110-SpringMVC的底层原理(上篇)

SpringMVC的底层原理 在前面我们学习了SpringMVC的使用(67章博客开始),现在开始说明他的原理(实际上更多的细节只存在67章博客中,这篇博客只是讲一点深度,重复的东西尽量少说明点) MVC 体系结…

探索LLM 在金融领域有哪些潜在应用——通过使用 GPT-4 测试金融工程、市场预测和风险管理等 11 项任务

概述 近年来,用于自然语言理解和生成的人工智能技术在自然语言处理领域取得了突破性进展,OpenAI 的 GPT 和其他大规模语言模型在该领域取得了显著进步。这些模型通过先进的计算能力和算法,展示了处理复杂任务的能力,如理解复杂语…

linux系统——telnet,ssh命令

telent命令用于登录远程主机,监测远程主机端口是否打开,明文传输,安全性较低,后被弃用,改为ssh

盲盒抽卡机小程序的特点,互联网下市场发展前景

近几年,盲盒抽卡成为了年轻人的新宠,也受到了未成年人的喜爱,卡牌的内容更是丰富多样,涵盖了动漫、漫画、影视等,因此吸引了各类消费者和越来越多的创业者。 目前,随着市场的发展,抽卡机小程序…

分布式事务大揭秘:使用MQ实现最终一致性

本文作者:小米,一个热爱技术分享的29岁程序员。如果你喜欢我的文章,欢迎关注我的微信公众号“软件求生”,获取更多技术干货! 大家好,我是小米,一个热爱分享技术的29岁程序员,今天我们来聊聊分布式事务中的一种经典实现方式——MQ最终一致性。这是一个在互联网公司中广…

E10:流程主表表单字段值变化触发事件

效果– //window.WeFormSDK.showMessage("这是一个E10的提示", 3, 2); const onClickCreate () > console.log("create"); const onClickSave () > console.log("save"); const onClickCancel () > dialogComponent?.destroy();/…

java 实现导出word 自定义word 使用aspose教程包含图片 for 循环 自定义参数等功能

java 实现导出word 主要有一下几个知识点 1,aspose导入 jar包 和 java编写基础代码下载使用 aspose-words jar包导入 aspose jar 包 使用 maven导入java代码编写 2,if判断 是否显示2,显示指定值3,循环显示List 集合列表 使用 fore…

【ROS2大白话】四、ROS2非常简单的传参方式

系列文章目录 【ROS2大白话】一、ROS2 humble及cartorgrapher安装 【ROS2大白话】二、turtlebot3安装 【ROS2大白话】三、给turtlebot3安装realsense深度相机 【ROS2大白话】四、ROS2非常简单的传参方式 文章目录 系列文章目录前言一、launch文件传参的demo1. 编写launch.py文…

pyspark中使用mysql jdbc报错java.lang.ClassNotFoundException: com.mysql.jdbc.Driver解决

报错信息: py4j.protocol.Py4JJavaError: An error occurred while calling o33.load. : java.lang.ClassNotFoundException: com.mysql.jdbc.Driver 我的解决方法: 这个报错就是提示你找不到jar包,所以你需要去下载一个和你mysql版本匹配的j…

什么是突发性耳聋?

72小时内突然发生、原因不明的感音神经性听力损失,至少在相邻的两个频率听力下降≥20dBHL。 特点: 1发生在数分钟、数小时或3天以内的听力下降; 2原因不明; 3多发生于单侧,可伴有耳鸣、耳堵塞感及耳周麻木感&#…

CSS - 说一说什么是脱离文档流

说脱离文档流之前呢,我们得知道什么是文档流吧。人们常说你脱离组织了,脱离大部队了,你连大部队都没有加入,还脱离个啥呀,是吧。 文档流 我们知道HTML中有盒模型,有行内元素,有块元素&#xf…

牛客网刷题 | BC117 逆序输出

目前主要分为三个专栏,后续还会添加: 专栏如下: C语言刷题解析 C语言系列文章 我的成长经历 感谢阅读! 初来乍到,如有错误请指出,感谢! 描述 输入10个整数&…

统计学研硕大数据统计练手11

统计学论文练手作业 题目AI绘图仅供欣赏 题目 2024年的《政府工作报告》中提出“深化大数据、人工智能等研发应用,开展“人工智能+”行动,打造具有国际竞争力的数字产业集群”,请同学们结合自己工作的所在行业或领域谈一谈大数据技术在人工智能时代下的应用现状、存在的问…

人体部位眼耳手腿分类数据集4376张4类别

数据集类型:图像分类用,不可用于目标检测无标注文件 数据集格式:仅仅包含jpg图片,每个类别文件夹下面存放着对应图片 图片数量(jpg文件个数):4376 分类类别数:4 类别名称:["Ears","Eyes&quo…

【PL理论】(11) F#:标准库之 Set | 标准库之 Map

💭 写在前面:本章我们将简要的介绍一下 Set 和 Map (非常简要,简要至极) 目录 0x00 标准库之集合(Set) 0x01 标准库之 Map 0x00 标准库之集合(Set) 集合中的元素具有…

【全开源】Workerman在线客服系统(ThinkPHP+FastAdmin+Workerman)

Workerman在线客服系统:高效沟通的新选择 基于ThinkPHPFastAdminWorkerman开发的一款实时在线客服系统,支持多客服(不限座席)、知识库、离线留言板、离线消息、历史会话、微信小程序接入、Uni-app接入(高级授权)、用户轨迹等功能。​ 📢 一…