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

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介: 云原生景观:供应层(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
云原生景观:可观察性和分析解决了什么问题?如何解决的?
云原生景观:可观察性和分析解决了什么问题?如何解决的?
186 0
云原生景观:可观察性和分析解决了什么问题?如何解决的?
|
存储 消息中间件 SQL
云原生景观:应用程序定义和开发层解决了什么问题?如何解决的?
云原生景观:应用程序定义和开发层解决了什么问题?如何解决的?
149 0
云原生景观:应用程序定义和开发层解决了什么问题?如何解决的?
|
Kubernetes Cloud Native 网络协议
云原生景观:编排和管理层解决了什么问题?如何解决的?
云原生景观:编排和管理层解决了什么问题?如何解决的?
172 0
云原生景观:编排和管理层解决了什么问题?如何解决的?
|
存储 Kubernetes Cloud Native
云原生景观:运行时层解决了什么问题?如何解决的?
云原生景观:运行时层解决了什么问题?如何解决的?
161 0
云原生景观:运行时层解决了什么问题?如何解决的?
|
存储 Kubernetes Cloud Native
叮,你收到一份云原生景观简介
叮,你收到一份云原生景观简介
176 0
|
30天前
|
运维 Cloud Native 持续交付
深入理解云原生架构及其在现代企业中的应用
随着数字化转型的浪潮席卷全球,企业正面临着前所未有的挑战与机遇。云计算技术的迅猛发展,特别是云原生架构的兴起,正在重塑企业的IT基础设施和软件开发模式。本文将深入探讨云原生的核心概念、关键技术以及如何在企业中实施云原生策略,以实现更高效的资源利用和更快的市场响应速度。通过分析云原生架构的优势和面临的挑战,我们将揭示它如何助力企业在激烈的市场竞争中保持领先地位。
|
28天前
|
Kubernetes Cloud Native 微服务
探索云原生技术:容器化与微服务架构的融合之旅
本文将带领读者深入了解云原生技术的核心概念,特别是容器化和微服务架构如何相辅相成,共同构建现代软件系统。我们将通过实际代码示例,探讨如何在云平台上部署和管理微服务,以及如何使用容器编排工具来自动化这一过程。文章旨在为开发者和技术决策者提供实用的指导,帮助他们在云原生时代中更好地设计、部署和维护应用。
|
2月前
|
Cloud Native Devops 云计算
云计算的未来:云原生架构与微服务的革命####
【10月更文挑战第21天】 随着企业数字化转型的加速,云原生技术正迅速成为IT行业的新宠。本文深入探讨了云原生架构的核心理念、关键技术如容器化和微服务的优势,以及如何通过这些技术实现高效、灵活且可扩展的现代应用开发。我们将揭示云原生如何重塑软件开发流程,提升业务敏捷性,并探索其对企业IT架构的深远影响。 ####
46 3
|
2月前
|
Cloud Native 持续交付 云计算
云原生架构的演进与挑战
随着云计算技术的不断发展,云原生架构已成为企业数字化转型的重要支撑。本文深入探讨了云原生架构的概念、发展历程、核心技术以及面临的挑战,旨在为读者提供一个全面了解云原生架构的视角。通过分析Kubernetes、Docker等关键技术的应用,以及微服务、持续集成/持续部署(CI/CD)等实践案例,本文揭示了云原生架构在提高应用开发效率、降低运维成本、增强系统可扩展性等方面的显著优势。同时,也指出了云原生架构在安全性、复杂性管理等方面所面临的挑战,并提出了相应的解决策略。
|
28天前
|
运维 Cloud Native 持续交付
云原生技术深度探索:重塑现代IT架构的无形之力####
本文深入剖析了云原生技术的核心概念、关键技术组件及其对现代IT架构变革的深远影响。通过实例解析,揭示云原生如何促进企业实现敏捷开发、弹性伸缩与成本优化,为数字化转型提供强有力的技术支撑。不同于传统综述,本摘要直接聚焦于云原生技术的价值本质,旨在为读者构建一个宏观且具体的技术蓝图。 ####