当前位置: 首页 > 科技观察

玩转混合云必备的优秀开源工具

时间:2023-03-19 12:08:58 科技观察

企业现在都在利用各种IT资源来提升业务。当成本是最受考虑的部分时,免费使用和可修改的开源工具可以帮助公司降低成本。同时,云提供商也提供了很多新的工具来帮助企业从云服务中获得更大的价值。这些工具允许企业将预算和人力用于更具战略性的业务项目。利用开源云工具使企业本地和基于云的组件能够协同工作。今天给大家介绍几个不错的开源云工具。GrafanaGrafana允许您查询、可视化和理解指标,无论数据存储在何处,您都可以创建、浏览和与您的团队共享仪表板,并促进数据驱动的文化。其出色的用例是时间序列数据,例如工业传感器、天气和过程控制。Grafana是用Go和Node.js编写的。它带有一个名为sqlite3的内置嵌入式数据库。数据也可以使用其他数据存储来存储,例如MySQL、PostgreSQL、Graphite、InfluxDB、Prometheus和Elasticsearch。它还通过使用其他插件支持其他数据存储。Grafana可以安装在Linux、Windows、Docker和Mac上。它带有内置的用户控件和身份验证机制,例如LDAP、GoogleAuth和GitHub,以帮助控制对仪表板的访问。除了上面列出的认证,Grafana还支持AD认证。Grafana有一个API接口,可用于保存仪表板、创建用户和更新数据源。Grafana仪表板您可以轻松创建动态和可重用的仪表板,并可选择创建模板以供重用。使用保留的标签过滤器浏览和搜索日志可以更轻松地创建仪表板。您甚至可以使用临时查询来浏览特定数据并向下钻取到数据源。Grafana有一个内置的警报系统,可用于为指定指标定义警报规则。它会不断评估它们并通过电子邮件或Slack等工具向系统发送通知。比较Grafana和Kibana时,前者更适合基于特定指标(如CPU/磁盘/IO使用率)的时间序列数据。但Kibana更适合使用Elasticsearch功能的分析仪表板。因此,我们不能使用Grafana进行数据搜索和探索。TerraformTerraform是HashiCorp提供的云基础设施工具。它用于高效地构建、更改和版本基础架构。简而言之,Terraform对于交付基础设施即代码(IAAC)很有用。它支持大多数公共云服务提供商的基础设施以及本地基础设施。Terraform与平台无关,可帮助您部署自动化测试、源代码控制等编码原则。它得到了社区的大力支持,许多企业已经开始使用它来管理他们的基础设施。您可以试运行Terraform,它模拟实际更改而不提交它们,这对开发人员非常有用。Terraform资源图创建所有资源的视图,包括每个资源之间的依赖关系。Terraform利用各自的云提供商的API来管理基础设施,减少对额外资源的需求。Terraform是一种描述性语言,用于描述资源的目标级别。流行的云提供商可以使用插件来管理各自的云资源。此外,可以用多种语言创建您自己的插件。Terraform主要支持Go语言。git-secret开发人员通常的做法是加密他们代码中使用的密码/凭据并将它们保存在安全的地方。为此,我们有多种工具,Vault就是其中之一。git-secret是一个用于在Git存储库中存储秘密的简单工具。git-secret使用gpg来加密和解密。用例是:在集中位置管理密钥以进行加密和解密版本控制的加密以实现更好的管理访问控制和利用谁可以加密和解密任何密码不得以明文形式存储您可以使用git-secrets以明文形式存储它们文本Oauth密钥、数据库密码、应用程序密钥和其他以文本格式存储的密钥。git-secret是一个用于在Git存储库中存储私有数据的工具。它使用gpg加密密码,并使用所有受信任用户的公钥跟踪文件。因此,用户只能使用各自的个人密钥解密文件,这里不会更改密码。当有人离开企业或被更换时,只需删除公钥,重新加密文件,他们将无法再解密。Aardvark和RepokidAardvark和Repokid确保角色在大型动态云部署中只保留必要的特权。这些是Netflix提供的开源云安全工具,用于适应快速创新和分布式扩展。它们有助于在不影响性能的情况下实施最小权限访问原则。所有公共云提供商都有身份和访问管理(IAM)服务,可帮助为用户创建精细的策略。但是,自定义细粒度策略会增加复杂性,使开发人员更难创建产品。缺少必要的权限会导致应用程序失败,而过多的权限会造成安全漏洞和合规性问题。Aardvark使用Phantoms登录云提供商的控制台并检索帐户中所有IAM角色的AccessAdvisor数据。它将最新的AccessAdvisor数据存储在DynamoDB数据库中并公开一个RESTfulAPI。Aardvark支持线程同时检索多个帐户的数据,并在20分钟内刷新数据。DynamoDB表包含有关策略、权限计数(总计和未使用)、角色是否符合回购条件或过滤条件以及每个角色的最后一次未使用权限被删除的数据(回购函数),如图所示。Repokid将是DynamoDB存储在中的数据与角色未使用的服务一起使用,未使用的权限将被删除。Aardvark学习过程一旦对角色进行了充分的分析,Repokid的repose函数就会修改附加到该角色的内联策略以排除未使用的权限。Repokid还维护以前策略版本的缓存,以防角色需要恢复到以前的状态。回购功能可应用于单个角色,但通常用于针对帐户中的每个符合条件的角色。OpenShiftOpenShift是一种类似于“容器即服务”的服务,适用于本地和云平台。它建立在由Kubernetes在RedHatEnterpriseLinux之上编排和管理的Docker容器之上。最新版本的V3具有许多新功能。OpenShift项目得到Kubernetes、Docker、CoreOS、Framework、Crio、Prometheus等的支持。通过OpenShift容器平台架构将容器分组在一起可以显着增加可以引入OpenShift的应用程序的数量。这带来了拥有单一IP地址和共享文件系统的好处。因为OpenShift容器本质上是不可变的,所以应用程序代码、依赖库和机密可以在运行时附加到容器。这允许管理员和集成商将代码和补丁与配置和数据分开。OpenShift容器框架如图所示。OpenShift和Kubernetes构建为一组微服务,它们通过通用RESTAPI协同工作以更改系统。这些API可供系统集成商使用,并且可以禁用这些相同的核心组件以允许替代实现。OpenShift公开了对RESTAPI的细粒度访问控制,这使服务集成商的工作变得轻松。BOSHBOSH是一种与云无关的开源工具,用于复杂分布式系统的发布、部署和生命周期管理。大多数发行版和托管的CloudFoundry环境都使用BOSH来全面管理环境,以便他们可以专注于编码和交付业务价值。由于BOSH的灵活性和强大功能,Google和Pivotal将其作为Kubo项目(Kubernetes的Web级发布工程)的核心。BOSH的工作方式类似于分布式系统,其中运行在不同虚拟机上的单个软件组件的集合作为一个更大的系统协同工作。BOSH部署BOSH的主要组件如下所列。干细胞:这就像用于创建虚拟机的操作系统映像。它将基本操作系统与部署中捆绑的其他包隔离开来。发布:这是Stemcell之上的一层,描述了应该部署什么软件以及应该如何配置它。它包含配置属性和模板、启动脚本、源代码、二进制工件等。部署清单:BOSH使用此YAML清单文件将其部署到目标基础设施,监控虚拟机或容器的健康状况,并在必要时进行修复。CloudProviderInterface:CPI是BOSH用来与基础设施交互以创建和管理Stemcell、VM和磁盘的API。BOSH也被其他环境采用,用于打包和管理各种软件。BOSH的优势在于它可以管理第一天和第二天的操作任务,例如将软件配置和升级到新版本、测试将整个系统从一个版本升级到另一个版本、调整主机大小以及处理安全更新。SpinnakerSpinnaker是一个开源的多云持续交付平台,用于高速发布软件变更。它将强大而灵活的管道管理系统与来自主要云提供商服务的集成相结合,包括AWSEC2、Kubernetes、GoogleComputeEngine、GoogleKubernetesEngine、GoogleAppEngine、MicrosoftAzure、OpenStack、CloudFoundry和OracleCloudInfrastructure。它通过创建可以运行集成和系统测试、上下移动服务器组以及监控部署的部署管道来自动发布。它通过Git事件、Jenkins、TravisCI、Docker、CRON或其他Spinnaker管道触发管道。Spinnaker部署管道Spinnaker创建和部署不可变图像,以实现更快的部署、更轻松的回滚并消除难以调试的配置漂移问题。它利用云中不可变的基础架构和内置部署策略,例如红/黑和金丝雀部署。Spinnaker的应用程序管理功能有助于管理云资源。Spinnaker作为服务集合运行,有时称为应用程序或微服务。应用程序、集群和服务器组是Spinnaker用来描述服务的关键概念。负载平衡器和防火墙描述了您的服务如何暴露给用户。Spinnaker管道是关键的部署管理结构,它由一系列操作组成。参数可以沿着流水线在各个阶段之间传递,如图所示。您可以手动启动管道,也可以由事件自动触发它们,例如作业完成、注册表中出现新图像、CRON计划或另一个管道中的操作。管道可以配置为在管道执行期间的不同时间点通过电子邮件、Slack或SMS进行通知。Spinnaker首先采用云原生部署策略构建,可处理基本的编排,例如验证健康检查、禁用旧服务器组和启用新服务器组。如图所示,它支持红/黑(又名蓝/绿)策略,并在积极开发中采用滚动红/黑和金丝雀策略。Spinnaker部署策略