云原生景观:供应层(Provisioning)解决了什么问题?如何解决的?

本文涉及的产品
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
容器镜像服务 ACR,镜像仓库100个 不限时长
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
简介: 云原生景观:供应层(Provisioning)解决了什么问题?如何解决的?

云原生景观系列

  1. 叮,你收到一份云原生景观简介
  2. 云原生景观:供应层(Provisioning)解决了什么问题?如何解决的?
  3. 云原生景观:运行时层解决了什么问题?如何解决的?
  4. 云原生景观:编排和管理层解决了什么问题?如何解决的?
  5. 云原生景观:应用程序定义和开发层解决了什么问题?如何解决的?
  6. 云原生景观:可观察性和分析解决了什么问题?如何解决的


目录

目录

自动化与配置 (Automation and Configuration)

这是什么

解决了什么问题

它如何解决

相应的解决工具

镜像仓库 (Container Registry)

这是什么

解决的问题

如何解决

相应的解决工具

安全与合规(Security and Compliance)

这是什么

解决的问题

如何解决

相应的解决工具

密钥和身份管理(Key and Identity Management)

这是什么

解决的问题

如何解决

相应的解决工具


上篇文章《叮,你收到一份来自CNCF的云原生景观简介》,我们对CNCF云原生生态系统做了概述。从这篇文章开始,我们将介绍云原生景观中,每种类别中的工具是什么,他们解决了什么问题以及如何解决的。

云原生环境中的第一层是供应层(Provisioning)。这涵盖了从自动化基础结构的创建,管理和配置镜像扫描,镜像签名和存储镜像的所有内容。该层还扩展了安全性,其工具可用于设置和实施安全策略,处理应用程序和平台中身份认证和授权,以及密钥分发。


查看云原生景观图时,你会注意到一些区别:

  • 大盒子中的项目是CNCF托管的开源项目。有些仍处于孵化阶段(浅蓝色/紫色框),而另一些则是已毕业的项目(深蓝色框)。
  • 白色小盒子中的项目是开源项目。
  • 灰色的是专有产品。


请注意,即使在撰写本文时,我们也看到新项目成为CNCF的一部分,因此始终参考实际情况-事情发展很快!

好的,让我们看一下供应层(Provisioning)的每个类别,它所扮演的角色以及这些技术,如何帮助应用程序适应云原生环境。


自动化与配置 (Automation and Configuration)

这是什么

自动化和配置工具可加快计算资源(虚拟机,网络,防火墙规则,负载均衡器等)的创建和配置。这些工具可能会处理供应层(Provisioning)的不同部分,或者尝试控制所有端到端的内容。大多数工具,提供与该空间中其他项目和产品集成的能力。


解决了什么问题

传统上,IT流程依赖冗长且复杂的手动发布周期,甚至需要三到六个月。这些周期伴随着许多人工流程和控制,从而减缓了生产环境的变更。这些缓慢的发布周期和静态环境与云原生开发不兼容。为了实现快速的开发周期,必须动态配置基础架构,并且无需人工干预。


它如何解决

此类工具使工程师无需人工干预即可构建计算环境。环境设置,只需单击一个按钮,它就可以实现。手动设置很容易出错,但是一旦进行了编码,环境创建就会与所需的确切状态相匹配,这是巨大的优势。

尽管这些工具可能采用不同的方法,但它们都旨在通过自动化配置资源减少所需的手工操作。


相应的解决工具

当我们从老式的人为驱动的配置过渡到云环境所要求的按需扩展时,我们发现我们以前使用的模式和工具不再满足我们的需求。组织也无力维持庞大的24×7员工队伍,而他们的工只作是创建,配置和管理服务器。

Terraform之类的自动化工具减少了扩展数十个服务器和相关网络以及多达数百个防火墙规则所需的工作量。诸如Puppet,Chef和Ansible之类的工具会在启动时以编程方式配置这些新服务器和应用程序,并允许开发人员使用它们。

一些工具可以直接与AWS或vSphere等平台提供的基础架构API进行交互,而其他工具侧重于配置单个计算机以使其成为Kubernetes集群的一部分。

像Chef和Terraform一样,许多工具可以进行交互操作以配置环境。诸如OpenStack之类的其他工具,运用基础架构即服务(IaaS)的理念来配置环境。从根本上讲,在此空间中,你需要一个或多个工具来为Kubernetes集群搭建计算环境,CPU,内存,存储和网络。你还需要其中一部分来创建和管理Kubernetes集群本身。

在撰写本文时,该领域中有三个CNCF项目:KubeEdge(一个CNCF沙盒项目)以及Kubespray和Kops(后两个是Kubernetes子项目,因此虽然尚未列出,但它们属于CNCF)。此类别中的大多数工具都提供开源和付费版本。


流行语 热门项目/产品
基础架构即代码(IaC) 自动化 声明式配置 Chef Puppet Ansible Terraform


镜像仓库 (Container Registry)

这是什么

在介绍镜像仓库之前,让我们首先讨论三个紧密相关的概念:

  1. 容器是用于执行软件流程的一组计算约束。使得容器内启动的进程相信它们正在自己的专用计算机上运行,而不是与其他进程(类似于虚拟机)共享的计算机上运行。简而言之,容器使你无论身在何处都可以以受控方式运行代码。
  2. 镜像是运行容器及其过程所需的一组存档文件。你可以将其视为模板的一种形式,可以在其上创建无限数量的容器。
  3. 存储库是存储镜像的地方。

镜像仓库是用于分类和存储镜像的专用Web应用程序。


解决的问题

云原生应用程序打包并作为容器运行。镜像仓库存储并提供这些容器镜像。


如何解决

通过将所有容器镜像集中存储在一个地方,任何使用该应用程序的开发人员都可以轻松访问它们。


相应的解决工具

镜像仓库工具存储和分发镜像,从根本上说,它是一种Web API,允许容器引擎存储和检索镜像。他们有的还提供接口以允许容器扫描或签名工具来增强存储的镜像的安全性。

任何使用容器的环境都将需要使用一个或多个镜像仓库。

该空间中的工具可以提供集成功能,以扫描,签名和检查它们存储的镜像。在撰写本文时,Dragonfly和Harbor是CNCF项目,而Harbor最近成为了第一个符合OCI的注册机构。每个主要的云提供商都提供自己托管的镜像仓库,许多镜像仓库可以独立部署,也可以通过Helm之类的工具直接部署到Kubernetes集群中。

流行语 热门项目/产品
Container OCI Image Registry Docker Hub Harbor Hosted registries from AWS, Azure, and GCP Artifactory


安全与合规(Security and Compliance)

这是什么

云原生应用程序旨在快速迭代。就好像你的手机应用程序不断更新--每天它们都在不断发展,并且可能会变得越来越好。为了定期发布代码,我们必须确保我们的代码和操作环境是安全的,并且只能由授权的工程师访问。

本节中的工具和项目代表了以安全方式创建和运行现代应用程序所需的一些内容。


解决的问题

这些工具和项目可帮助你加强,监视和实施平台和应用程序的安全性。从容器到你的Kubernetes环境,它们使你能够设置策略(用于合规性),深入了解现有漏洞,捕获错误配置以及增强容器和集群的安全性。

如何解决

为了安全地运行容器,必须对进行容器扫描以查找已知漏洞并签名,以确保它们未被篡改。Kubernetes本身默认的访问控制设置比较宽松。因此,对于希望攻击你的系统的任何人来说,Kubernetes集群都是一个有吸引力的目标。该空间中的工具和项目有助于增强群集,并提供工具来检测系统何时出现异常。


相应的解决工具

为了满足在动态,快速发展的云环境中安全运行,我们必须将安全性视为平台和应用程序开发生命周期的一部分。这个领域中的工具种类繁多,旨在解决问题的不同部分。大多数工具属于以下类别之一:

  • 审计与合规(Audit and compliance)
  • 生产环境中强化的途径
  • 代码扫描
  • 漏洞扫描
  • 镜像签名
  • 政策制定与执行
  • 网络层安全

这些工具和项目中的一部分很少会被直接使用,例如镜像仓库或其他扫描工具会利用Trivy,Claire和Notary等。其他一些工具,是现代应用程序平台的关键强化组件,例如Falco或Open Policy Agent(OPA)。

有许多成熟的供应商在此领域提供解决方案,在撰写本文时,Falco,Notary / TUF和OPA是该领域中仅有的CNCF项目。

流行语 热门项目/产品
镜像扫描 镜像签名 Policy enforcement(政策执行) Audit审计 OPA Falco Sonobuoy


密钥和身份管理(Key and Identity Management)

这是什么

在进行密钥管理之前,让我们首先定义密钥。密钥是用于加密或签名数据的字符串。就像物理密钥一样,它加密数据,以便只有拥有正确密钥的人才能解密数据。

随着应用程序适应新的云原生世界,安全工具也在不断发展以满足新的安全需求。此类别中的工具和项目涵盖了从如何安全地存储密码和其他机密信息(敏感数据,例如API密钥,密钥等)到如何从微服务环境中安全删除密码和机密信息等。


解决的问题

云原生环境是高度动态的,需要按需,完全编程(无人参与)和自动化的秘密分发。应用程序还必须知道给定的请求是否来自有效来源(身份验证),以及该请求是否有权执行其尝试执行的任何操作。通常将其称为AuthN和AuthZ。


如何解决

每个工具或项目都采用不同的方法,但是它们都提供了一种安全分发密钥的方法,或者它们提供了与身份验证,授权或两者相关的服务或规范。


相应的解决工具

此类别中的工具可以分为两组:一些工具专注于密钥生成,存储,管理和轮换,另一组专注于单点登录和身份管理。例如,Vault是一种相当通用的密钥管理工具,可让你管理不同类型的密钥。另一方面,Keycloak是一种身份代理,可用于管理不同服务的访问密钥。

在撰写本文时,SPIFFE / SPIRE是该领域中唯一的CNCF项目,并且大多数工具都提供开源版本和付费版本。

流行语 热门项目
AuthN and AuthZ Identity Access Secrets Vault SpiffeOAuth2

正如我们已经看到的那样,供应层(Provisioning)侧重于构建你的云原生平台和应用程序的基础,其工具处理从基础结构到镜像仓库到安全性的所有内容。本文旨在作为详细介绍云原生环境的系列文章的第一篇。在下一篇文章中,我们将专注于运行时层,并探索云原生存储,容器运行时和网络。


译文连接:The Cloud Native Landscape: The Provisioning Layer Explained – The New Stack



相关实践学习
通过容器镜像仓库与容器服务快速部署spring-hello应用
本教程主要讲述如何将本地Java代码程序上传并在云端以容器化的构建、传输和运行。
Kubernetes极速入门
Kubernetes(K8S)是Google在2014年发布的一个开源项目,用于自动化容器化应用程序的部署、扩展和管理。Kubernetes通常结合docker容器工作,并且整合多个运行着docker容器的主机集群。 本课程从Kubernetes的简介、功能、架构,集群的概念、工具及部署等各个方面进行了详细的讲解及展示,通过对本课程的学习,可以对Kubernetes有一个较为全面的认识,并初步掌握Kubernetes相关的安装部署及使用技巧。本课程由黑马程序员提供。   相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
目录
相关文章
|
存储 运维 Prometheus
云原生景观:可观察性和分析解决了什么问题?如何解决的?
云原生景观:可观察性和分析解决了什么问题?如何解决的?
178 0
云原生景观:可观察性和分析解决了什么问题?如何解决的?
|
存储 消息中间件 SQL
云原生景观:应用程序定义和开发层解决了什么问题?如何解决的?
云原生景观:应用程序定义和开发层解决了什么问题?如何解决的?
143 0
云原生景观:应用程序定义和开发层解决了什么问题?如何解决的?
|
Kubernetes Cloud Native 网络协议
云原生景观:编排和管理层解决了什么问题?如何解决的?
云原生景观:编排和管理层解决了什么问题?如何解决的?
161 0
云原生景观:编排和管理层解决了什么问题?如何解决的?
|
存储 Kubernetes Cloud Native
云原生景观:运行时层解决了什么问题?如何解决的?
云原生景观:运行时层解决了什么问题?如何解决的?
157 0
云原生景观:运行时层解决了什么问题?如何解决的?
|
存储 Kubernetes Cloud Native
叮,你收到一份云原生景观简介
叮,你收到一份云原生景观简介
172 0
|
3天前
|
运维 Kubernetes Cloud Native
云原生技术:容器化与微服务架构的完美结合
【10月更文挑战第37天】在数字化转型的浪潮中,云原生技术以其灵活性和高效性成为企业的新宠。本文将深入探讨云原生的核心概念,包括容器化技术和微服务架构,以及它们如何共同推动现代应用的发展。我们将通过实际代码示例,展示如何在Kubernetes集群上部署一个简单的微服务,揭示云原生技术的强大能力和未来潜力。
|
13天前
|
弹性计算 Kubernetes Cloud Native
云原生架构下的微服务设计原则与实践####
本文深入探讨了在云原生环境中,微服务架构的设计原则、关键技术及实践案例。通过剖析传统单体架构面临的挑战,引出微服务作为解决方案的优势,并详细阐述了微服务设计的几大核心原则:单一职责、独立部署、弹性伸缩和服务自治。文章还介绍了容器化技术、Kubernetes等云原生工具如何助力微服务的高效实施,并通过一个实际项目案例,展示了从服务拆分到持续集成/持续部署(CI/CD)流程的完整实现路径,为读者提供了宝贵的实践经验和启发。 ####
|
5天前
|
消息中间件 存储 Cloud Native
云原生架构下的数据一致性挑战与应对策略####
本文探讨了在云原生环境中,面对微服务架构的广泛应用,数据一致性问题成为系统设计的核心挑战之一。通过分析云原生环境的特点,阐述了数据不一致性的常见场景及其对业务的影响,并深入讨论了解决这些问题的策略,包括采用分布式事务、事件驱动架构、补偿机制以及利用云平台提供的托管服务等。文章旨在为开发者提供一套系统性的解决方案框架,以应对在动态、分布式的云原生应用中保持数据一致性的复杂性。 ####
|
1天前
|
Cloud Native 安全 API
云原生架构下的微服务治理策略与实践####
—透过云原生的棱镜,探索微服务架构下的挑战与应对之道 本文旨在探讨云原生环境下,微服务架构所面临的关键挑战及有效的治理策略。随着云计算技术的深入发展,越来越多的企业选择采用云原生架构来构建和部署其应用程序,以期获得更高的灵活性、可扩展性和效率。然而,微服务架构的复杂性也带来了服务发现、负载均衡、故障恢复等一系列治理难题。本文将深入分析这些问题,并提出一套基于云原生技术栈的微服务治理框架,包括服务网格的应用、API网关的集成、以及动态配置管理等关键方面,旨在为企业实现高效、稳定的微服务架构提供参考路径。 ####
15 5
|
2天前
|
Kubernetes 负载均衡 Cloud Native
云原生架构下的微服务治理策略
随着云原生技术的不断成熟,微服务架构已成为现代应用开发的主流选择。本文探讨了在云原生环境下实施微服务治理的策略和方法,重点分析了服务发现、负载均衡、故障恢复和配置管理等关键技术点,以及如何利用Kubernetes等容器编排工具来优化微服务的部署和管理。文章旨在为开发者提供一套实用的微服务治理框架,帮助其在复杂的云环境中构建高效、可靠的分布式系统。
14 5