今天是2020年4月15日 星期三,欢迎光临本站 

更多
新闻推荐

行业动态

干掉 Jenkins?顶级 DevOps 工具链大盘点

文字:[大][中][小] 手机页面二维码 发布时间:2022-09-30 05:43:32 来源:牛宝体育官方网站 作者:牛宝体育官网     浏览次数:35    

  本篇文章中将介绍一些能够帮助你实现 DevOps 目标的核心技术类别和具体技术。

  GitLab 是一个基于 Web 的 DevOps 生命周期工具。它提供了一个 Git 仓库管理器,具备 wiki、问题跟踪和 CI/CD 管道功能,采用的是 GitLab 公司的开源许可。

  Tasktop 允许将所有这些工具添加到敏捷、ALM、PPM 和 ITSM 中,实现了对整个生命周期前所未有的可见性。

  VersionOne 支持 Scrum、看板、XP、SAFe 和混合开发方法,并使跨团队、程序、软件组合和企业的计划、跟踪和报告变得更容易。

  敏捷项目管理工具,是开发人员围绕高优先级共享 backlog 进行实时协作的首选工具。

  Trello 是一个基于 Web 的看板风格的清单应用程序,是 Atlassian 的子公司。

  使用敏捷工具,包括 Scrum、看板和其他敏捷方法仪表板来更好地跟踪软件项目并进行计划。

  Jira 是由 Atlassian 公司开发的问题跟踪产品,提供了 bug 跟踪和敏捷项目管理功能。

  YouTrack 是 JetBrains 公司开发的一款基于浏览器的 bug 跟踪、问题跟踪系统和项目管理软件。它支持基于查询的问题搜索——包括自动完成、批量处理问题、定制问题属性集以及创建自定义工作流。

  Zendesk 让客户问题跟踪变得更简单,包括优步和 Airbnb 在内的很多公司都使用 Zendesk 作为他们的问题跟踪软件。

  Git 是一个分布式版本控制系统,用于在软件开发期间跟踪源代码的变更。它是为协调程序员之间的工作而设计的,但它也可用于跟踪文件的变更。它专注于速度、数据完整性和对分布式、非线性工作流的支持。

  GitHub 提供了 Git 分布式版本控制和源代码管理功能,以及自有的一些特性。

  GitLab 的版本控制通过世界级的源代码管理功能帮助你的开发团队共享、协作和最大化他们的生产力。

  Apache Subversion 是一种软件版本控制系统,采用了 Apache 开发源码许可。软件开发人员使用 Subversion 来维护文件的当前和历史版本,例如源代码、Web 页面和文档。

  Maven 是一个主要用于 Java 项目的自动化构建工具。Maven 还可以用来构建和管理用 C#、Ruby、Scala 和其他语言开发的项目。

  Rake 是一个软件任务管理和自动化构建工具。用户可以指定任务和描述依赖关系,还可以对同一个命名空间中的组任务指定和描述依赖关系。

  JFrog 提供了高可用性、复制、灾难恢复、可伸缩性,并可集成很多自有和云存储产品。

  Sonatype Nexus 是一个存储库管理器。可用于代理、收集和管理依赖项,这样就不用经常为一堆的 jar 文件感到烦恼。它让软件的发行变得更容易。

  在内部,你可以配置构建工具,把工件发布到 Nexus,然后其他开发人员就可以使用它们了。

  NuGet 是.Net 包管理器。NuGet 客户端工具提供了生成和使用包的能力。

  JUnit 是一个用于 Java 的单元测试框架。JUnit 在测试驱动开发当中扮演着非常重要的角色,它是单元测试框架家族 xUnit(源于 SUnit) 的一员。

  Selenium 是用于测试 Web 应用程序的框架。Selenium 提供了一个回放工具,用于编写功能测试,省去了学习脚本语言的麻烦。

  Jasmine 是一个开源的 Java 测试框架。它的目标是可以在任何支持 Java 的平台上运行,不干扰应用程序或 IDE,并具有易于阅读的语法。它深受其他单元测试框架的影响,比如 Screw.Unit、JSSpec、JSpec 和 RSpec。

  Cucumber 是一个支持行为驱动开发的工具。Cucumber BDD 方法的核心是一个叫作 Gherkin 的语言解析器,可以用用户能够理解的逻辑语言来指定预期的软件行为。

  Jenkins 是一个免费开源的自动化服务器。Jenkins 帮助自动化软件开发过程中的非人为操作部分。它是一个基于服务器的系统,运行在 Servlet 容器中,比如 Apache Tomcat。

  CircleCI 是全球最大的共享 CI/CD 平台,是代码从想法变成可交付产品的中心枢纽。

  作为最常用的 DevOps 工具之一,CircleCI 每天要处理超过 100 万个构建任务,它可以访问到工程团队协作以及代码运行的数据。Spotify、Coinbase、Stitch Fix 和 BuzzFeed 等公司都使用 CircleCI 来提高工程团队的工作效率,发布更好的产品。

  Travis CI 是一个托管的 CI 服务,用于构建和测试托管在 GitHub 上的软件项目。Travis CI 为私人项目提供各种付费计划和免费开源计划。TravisPro 部署在客户自己的硬件上,提供专有版本的定制部署。

  Concourse 是一个用 Go 开发的自动化系统,最常用于 CI/CD,用于伸缩任何类型 (从简单到复杂的) 的自动化管道。

  AWS CodePipeline 是一个全托管的 CD 服务,可以帮助你自动化发布管道,以便快速可靠地更新应用程序和基础设施。

  每当发生代码变更时,CodePipeline 会根据你定义的发布模型自动化发布过程的构建、测试和部署阶段,让你能够快速、可靠地交付特性和更新。

  你可以轻松地将 AWS 代码管道与第三方服务 (如 GitHub) 或自定义插件集成。在使用 AWS CodePipeline 时,你只需要为所使用的内容付费,没有预付费用。

  为 Linux、macOS 和 Windows 建立云托管管道。构建 Web、桌面和移动应用程序,并将其部署到云端或本地。

  通过管道自动化构建和部署,减少在具体细节上花费的时间,把更多的时间花在创造性的事情上。

  Spinnaker 是一个免费开源的 CD 软件平台,最初由 Netflix 开发,后被谷歌收购,并进行了扩展。

  Spinnaker 是一个多云 CD 平台,用于快速发布软件变更。它将强大而灵活的管道管理系统与主要云提供商的集成结合在了一起。

  Octopus Deploy 是一个自动化的部署和发布管理工具,全球领先的 CD 团队都在使用它。

  Octopus 是一个工具集,可以极大简化 DevOps 过程,通过云或虚拟机对大量微服务或应用程序进行持续测试和部署。

  你可以使用 AWS CodeDeploy 来自动化软件部署,减少容易出错的手动操作。

  Terraform 是 HashiCorp 公司开发的开源基础结构即代码 (IaC) 软件工具。用户可以使用一种高级配置语言 (叫作 Hashicorp 配置语言或 JSON) 来定义和提供数据中心基础设施。

  BOSH 是一个将小型和大型云软件的发布工程、部署和生命周期管理结合起来的项目。BOSH 可以基于数百个 VM 配置和部署软件。它还可以执行监空、故障恢复和软件更新,没有停机时间或者停机时间很短。

  虽然开发 BOSH 是为了部署云计算,但它也可以用于部署几乎任何其他软件 (例如 Hadoop)。BOSH 特别适合大型分布式系统。

  Chef 是一个配置管理工具,用于处理物理服务器、虚拟机和云端的机器配置。很多公司用 Chef 控制和管理他们的基础设施,如 Facebook、Etsy、Cheezburger 和 Indiegogo。

  Chef 公司是持续自动化软件的领导者、应用自动化的革新者以及 DevOps 运动的发起者之一。Chef 与全球 1000 多家最具创新性的公司合作,提供快速交付软件的实践和平台,以实现他们的数字化转型愿景。

  Ansible 是一款开源的软件配置、配置管理和应用程序部署工具。它运行在 Unix 家族系统上,可以配置 Unix 家族系统和 Windows。它可以使用自己的声明性语言来描述系统配置。

  Puppet 提供了定义系统需要哪些软件和配置的能力,然后在初始设置之后维护指定的状态。

  Puppet 使用与 Ruby 类似的声明性领域特定语言 (DSL) 为特定环境或基础设施定义配置参数。Puppet 通过使用一个叫作 Facter 的实用程序来发现系统信息,Facter 是在安装 Puppet 软件包时一起安装的。

  被主节点控制的其他节点安装了 Puppet 并运行 Puppet 代理 (一个守护进程)。代理节点收集的有关节点的配置信息将发送给主节点。主节点根据应该如何配置来编译目录,其他节点使用这些信息来更新自己的配置。

  Puppet 使用了拉取模式,代理节点定时轮询主机,查询特定于站点和特定于节点的配置。在这个基础设施中,Puppet 代理应用程序通常作为后台服务运行在托管节点上。

  谷歌云部署管理器是一种基础设施管理服务,让谷歌云平台资源的创建、部署和管理变得更简单。

  Amazon Web Service(AWS) 是一个安全的云服务平台,提供计算能力、数据库存储、内容交付和其他帮助企业扩大规模和增长的功能。

  微软 Azure 是微软创建的云计算服务,通过微软数据中心构建、测试、部署和管理应用程序和服务。

  微软 Azure,原来叫作 Windows Azure,是微软的公共云计算平台。它提供一系列云服务,包括计算、分析、存储和网络。用户可以选择这些服务来开发和扩展新的应用程序,或者在公共云中运行现有的应用程序。

  谷歌云平台由谷歌提供,是一套云计算服务,运行在谷歌用来运行其终端用户产品 (如谷歌搜索、Gmail 和 YouTube) 相同的基础设施上。

  谷歌云平台提供在 web 上部署应用程序所需的计算资源,专注于为个人和企业提供一个构建和运行软件的地方,并通过 Web 连接软件用户。

  你使用谷歌提供的云计算服务来迎接业务方面的挑战,包括数据管理、混合和多云、人工智能和机器学习。

  PCF 是一个用于部署、管理和持续交付应用程序、容器和功能的多云平台。PCF 允许开发人员快速部署和交付软件,而不需要管理底层基础设施。

  Heroku 是一个基于容器的云 PaaS。开发人员使用 Heroku 来部署、管理和扩展现代应用程序。这个平台优雅、灵活、易于使用,为开发人员提供了发布应用程序最简单的途径。

  容器调度程序的主要任务是在最合适的主机上启动容器并将它们连接在一起。它必须通过自动故障转移来处理故障,并且当单个实例有太多数据需要处理 / 计算时,它需要能够扩展容器。

  Docker Swarm 是 Docker 开发的一种容器调度程序。这个集群解决方案提供了一些优势,比如使用标准 Docker API 等。

  Mesos 的目的是构建一个可扩展、高效的系统,可以支持大量的框架。这也是一个主要的问题:一些框架,如 Hadoop 和 MPI,是独立开发的——因此不可能在框架之间进行细粒度的共享。

  Mesos 的目的是添加一个薄薄的资源共享层,为框架提供访问集群资源的公共接口。Mesos 将调度控制委托给框架,因为很多框架已经实现了复杂的调度。

  根据集群上运行的作业类型,框架可以分为四种,其中一些框架提供了原生 Docker 支持,比如 Marathon。在 Mesos 0.20.0 中添加了对 Docker 容器的支持。

  Kubernetes 是一个用于编配 Docker 容器的系统,它通过标签和 Pod 的概念将容器分为逻辑单元。Pod 是 Kubernetes 和其他两种解决方案之间的主要区别——它们是一组容器集合,形成一起部署和调度的服务。与基于关联性的容器 (如 Swarm 和 Mesos) 调度相比,这种方法简化了集群的管理。

  调度器使用谓词和优先级来定义 Pod 应该运行在哪些节点上。我们可以使用新的调度器策略配置覆盖这些默认值。

  我们可以通过命令行标志 policy-config-file 指定一个 JSON 文件,在启动 Kubernetes 时将会使用该文件描述的谓语和优先级,调度器将使用这些定义好的策略。

  Datadog 是一个针对云规模应用程序的监控服务,通过基于 SaaS 的数据分析平台来监控服务器、数据库、工具和服务。

  Datadog 应用程序性能监控 (APM 或跟踪) 帮助用户深入了解应用程序性能——从自动生成的仪表盘(监控关键指标,如请求量和延迟)到单个请求的详细跟踪信息——与日志和基础设施监控信息并列展示。

  当向应用程序发出请求时,Datadog 可以看到分布式系统的跟踪,并向用户显示关于这个请求的系统数据。

  New Relic 是一家总部位于加州旧金山的科技公司,它开发基于云的软件,帮助网站和应用程序所有者跟踪服务性能。

  New Relic 的应用程序性能监控软件分析产品 (APM) 提供有关 Web 应用程序性能和最终用户体验满意度的实时和趋势数据。

  Prometheus 是一款用于事件监控和警报的免费应用程序。它在时间序列数据库中记录实时指标,基于 HTTP 拉取模型,支持灵活的查询和实时警报。

  Prometheus 服务器的核心原理是抓取——也就是说,调用各个节点暴露出来的指标端点。它定期收集这些指标并将它们存储在本地。

  Zipkin 是一个分布式跟踪系统。它用于收集诊断延迟问题所需的时间数据,提供了数据的收集和查找功能。

  如果日志文件中有跟踪 ID,则可以直接跳指定位置。否则的话,你可以基于服务、操作名称、tagsm 和持续时间等属性进行查询。它将为你汇总出一些有趣的数据,例如花费在服务上的时间百分比以及操作是否失败。

  Azure Monitor 提供了一个全面的解决方案,用来收集、分析和执行来自云端和本地环境的遥测数据,从而最大化应用程序和服务的可用性和性能。

  Slack 本质上是整个公司的一个聊天室,旨在取代电子邮件成为沟通和分享的主要方式。你可以用频道进行分组讨论,也可以通过私有消息进行信息、文件共享,等等。

  微软 Teams 是一个统一的通信和协作平台,结合了工作讨论、视频会议、文件存储和应用程序集成。

  Teams 是一种基于聊天的协作工具,它为全球、远程和分布式的团队提供协作能力,并通过公共空间共享信息。你可以使用它提供的一些很酷的功能,比如文档协作、一对一聊天、团队聊天,等等。

  Hangouts Chat 是进行组织内交流的一种有效方式。你可以与一名或多名同事发送信息,可以创建聊天室进行多人讨论,并使用机器人来进行工作自动化。你可以在电脑浏览器和 Android 或 iOS 手机 App 中使用 Hangouts Chat。

  Zoom Video Communications 是一家远程会议服务公司,总部设在加利福尼亚州的圣何塞。它提供了一种远程会议服务,结合了视频会议、在线会议、聊天和移动协作。

  Skype 更适合寻找整体商业解决方案的团队,而 Zoom 更适合频繁进行视频聊天和会议的团队。不过,这两种工具都不是专门为远程工作而构建的。

  GitHub Pages 是一个静态站点托管服务,直接从 GitHub 上的存储库获取 HTML、CSS 和 Java 文件,可在构建过程中运行这些文件,然后发布网站。你可以在 GitHub Pages 示例集合中看到 GitHub Pages 站点的示例。

  Confluence 是一个 Wiki 协作工具,用于帮助团队有效地协作和共享知识。你可以用 Confluence 捕获项目需求、将任务分配给特定用户,并用 Team Calendar 插件一次性管理多个日历。

  Jekyll 是一个支持博客的静态站点生成器,用于个人、项目或组织站点。它是由 GitHub 联合创始人 Tom Preston-Werner 用 Ruby 开发的,并采用了 MIT 开源许可。

  Jekyll 是一个解析引擎,打包成 Ruby gem,用来基于动态组件构建静态网站。

  谷歌 Sites 是谷歌提供的一个结构化的 Wiki 和网页制作工具。谷歌 Sites 的目标是让任何人都能够创建支持不同编辑器协作的简单 Web 站点。

  这些站点在每一个屏幕上(从桌面到智能手机)看起来都很棒——做到这些都不需要学习设计或编程。

  这篇文章涵盖的所有类别可以帮助你更好地实施 DevOps。其中任何一种都很有用,而且我认为所有这些都是你需要的,帮助团队以可持续的方式向客户交付价值,并帮助你脱颖而出。

  我提到了 DevOps 工具链,比如规划工具、问题跟踪工具、源代码控制管理、构建和测试代码、持续集成和部署源代码、管理配置、使用云平台,然后是监控和日志,以及沟通和知识共享。

  我希望你能够喜欢这篇文章。DevOps 是一种令人兴奋的工作方式,尽管它不是唯一的方式,甚至不是最好的方式。更好的东西可能会在未来出现,但目前看来,它似乎代表了一种很好的团队协作方式。它让团队共同努力,交付价值,同时也帮助他们专注于客户,而不仅仅是技术或内部的东西,也包括了速度、学习以及公司的未来。

返回上一步
打印此页
021-54339850
浏览手机站