作为下一代架构的关键组成部分,DevOps 被越来越多的企业所应用。“DevOps” 是 “开发” 和 “运维” 两个词的组合。DevOps 实践鼓励应用程序开发团队 (Dev) 与其 IT 运营团队 (Ops) 对应方之间更顺畅、持续地沟通、协作、集成,提高可见性和透明度。在实施 DevOps 过程中,企业需要从组织、技术、流程等三个维度进行持续的优化与改进,通过缩短研发周期、快速响应业务需求,来提高企业 IT 效能,使其更稳定、更安全、更高效地为业务赋能。有研究显示,在引入了 DevOps 概念的企业中,开发与运营人员在设计、构建、测试工作中共同在内部应用上进行协作之后,可以将产品开发的效率提升 20%。
开源生态的建设对 DevOps 技术的发展起了至关重要的作用,越来越多的 DevOps 开源工具应运而生,支持从容器构建和编排到微服务网络、配置管理、CI/CD 自动化、全栈监控等等。这些高质量的开源工具的出现使得企业实践 DevOps 的门槛降低,同时大大提升了可实践性。当前,中国的开源软件市场发展迅速,目前已达到千亿规模,越来越多的有识之士投入到 DevOps 开源工具的建设中,开源生态的发展保证了 DevOps 技术的活力,对技术的发展至关重要。
今天,就来盘点一下开源的 DevOps 工具。
Kubernetes,有时写为 K8s,由云原生计算基金会 ( CNCF ) 托管。随着微服务和基于容器的软件的普及,Kubernetes 在近些年的开源 DevOps 工具列表中名列前茅也就不足为奇了。VMware 发布的《 2020 年 Kubernetes 状况报告》显示,将 Kubernetes 用于编排容器的采用率在 2020 年增长了 48%。Kubernetes 可以自动部署、维护和扩展生产环境中的容器组,而不是手动发布微服务。
Docker 是一个免费的开源平台,作为轻量级容器,被用来构建、发布和运行应用程序,具备容器打包程序运行所需的二进制文件、库、配置文件和依赖项。在过去的十年中,容器在敏捷开发中发挥了关键作用,而 Docker 容器引领了这场革命。它的核心是 Docker 引擎。Docker Hub 也是查找和共享作为容器的预打包函数的绝佳资源。此外,为了弥补容器漏洞,使用开源容器审计工具(如 Docker Bench 或 Anchore)可能会有所帮助。
微服务是一种方便的开发风格,但它带来了新的开发和架构问题。也就是说,我们如何在所有服务中一致地应用安全、加密、可观察性和遥测元素等网络策略?服务网格是一个答案。服务网格在每个容器旁边放置一个 sidecar 代理,并将这些网络功能抽象到控制平面。Istio 就是这样一种已被广泛采用的开源服务网格。Istio 建立在 Envoy 之上,开放了插件和可扩展性选项。此外,Linkerd 和 Kuma 作为可行的开源服务网格替代方案。
GitHub 可以说是最受欢迎的源代码控制和软件协作平台。基于 Git 的 GitHub 平台本身在过去几年中进行了一些重大更新。最值得注意的是 GitHub Actions 功能。GitHub Actions 使托管在 GitHub 上的软件包能够接受输入并触发其他进程。这可以使 GitHub 中一些 DevOps 工作流自动化 ,例如代码审查、分支管理或 CI/CD 流程 —— 这里的可能性组合可以有无限个。GitHub Actions 本质上是托管在利用 GitHub webhook 的 GitHub 存储库中的 YAML 文件。尽管这更像是一个功能而不是开源工具,但我们认为将其包含在此处很重要。Actions 对公共存储库是免费的,限制为 100 个操作。
DevOps 理念的很大一部分是寻找更有效的自动化和部署新迭代的方法。这个目标的一部分是创建一个简化的持续集成和持续交付 (CI/CD) 管道。Jenkins 是一个开源自动化服务器,具有数百个插件,用于自动化软件项目的构建、部署和测试。尽管 GitHub Actions 理论上可以在未来取代 CI 服务器,但 Jenkins、CircleCI、TravisCI 和 GitLab Community Edition 等 CI 工具仍然是许多 DevOps 团队的首选。
指标和警报系统对于站点可靠性工程师可视化应用程序和对问题做出反应至关重要。Prometheus 是一个毕业的 CNCF 项目,同时也是一个深受使用者喜爱的开源监控解决方案。Prometheus 服务器通过抓取 HTTP 端点来收集时间序列指标,并生成一个与这些数据交互的系统,提供深度查询、可视化、存储和其他功能。
Ansible 是关于自动化的。Ansible 是 Red Hat 赞助的一个开源项目,可用于自动化云配置、网络、部署、配置管理和其他任务。Ansible 有一个简单而有效的架构,相对容易组装 —— 你只需要一个文本编辑器和命令行。“Ansible 是我们的标准工具,不仅可以部署 OpenIO 核心,还可以部署我们的 WebUI、OIO-FS 和所有即将推出的选项,”OpenIO 运营部的 Cédric Delgehier 曾表示。
Chef 是另一种用于自动化配置管理的基础架构即代码 (IaC) 解决方案。Chef 使用 Ruby 来自动化服务器配置,并与所有主要的云服务提供商 (CSP) 配合良好。这在创建和配置大量机器时非常有用。与其他自动化工具一样,用户以声明性的格式描述其组件和状态。
Terraform 是一种安全有效地构建、更改和版本控制基础设施的工具 (基础架构自动化的编排工具)。几乎可以支持所有市面上能见到的云服务。具体地说就是可以用代码来管理维护 IT 资源,把之前需要手动操作的一部分任务通过程序来自动化完成,这样的做的好处非常明显:高效、不易出错。
JAMStack 结合了 JavaScript、API 和 Markdown 来构建基于 Web 的应用程序。虽然更多的是一种 “headless development(无头开发)” 方法,而不是单一的开源工具,但 JAMStack 项目通常是使用开源组件构建的。例如,JAMStack 经常利用开源无头内容管理系统,例如 Ghost、Strapi 和 / 或 Netlify CMS。
ELK Stack 是 Elastic 维护的三个开源项目的联合体:Elasticsearch、Logstash 和 Kibana。通过这三个组件,开发人员可以从任何来源获取和记录数据,并创建有用的可视化。这种集中式日志记录通过 NoSQL 数据库启用,使用 Elasticsearch 进行存储、使用 Logstash 进行处理和数据收集以及使用 Kibana 时,都可进行可视化。提高可见性对于数据分析至关重要,有助于识别错误以减少平均恢复时间 (MTTR)。
借助出色的开源 DevOps 工具,可以让越来越多的架构师在其部署模型中采用 DevOps 方法。值得注意的是,一些流行的开源 DevOps 工具已经被收购,比如 Docker 和 Chef,业务和开源根源之间的界限变得更加模糊。
尽管开源是 “免费的”,但使用这些开源工具或者工具组合是有较高门槛的,投入的成本可能并不亚于一款商业软件。事实上,采用一款合适商业工具或平台来开发产品不失为一种明智的选择。
比如飞算自主研发的 SoFlu 软件机器人虽然是一款商业软件,但是在效率、成本等各方面都具备很强的优势。SoFlu 软件机器人采用可视化开发界面,门槛极低,通过人机协同,就能自动完成软件后端开发、前端开发、测试、运维,真正帮助开发者实现 “一人一项目,十人抵百人” 。
其开发、测试、运维一体化的特性能够很好地满足企业实施 DevOps 的需求。更重要的是,SoFlu 软件机器人是一个中立的软件开发平台,用户开发出来的软件是自己的,软件运行不依赖任何厂商的生态,意味着系统部署上线后,用户数据不会留存在厂商的平台上,数据安全有保障。
作者:SoFlu软件机器人
来源:OSC DevOps 社区
链接:https://my.oschina.net/u/4868096/blog/5570780
推荐站内搜索:最好用的开发软件、免费开源系统、渗透测试工具云盘下载、最新渗透测试资料、最新黑客工具下载……
还没有评论,来说两句吧...