爱德华Viaene

希望进入devops空间?或者您可能正在使用软件开发,并且您的公司正在采用DevOps技术?betwayapp下载安装无论您在组织中,您都会在日常工作中接触Devops工具。

我们整理了一个最流行的DevOps工具列表,这些工具在应用程序的整个生命周期中都在使用。这些DevOps工具可以在应用程序生命周期的所有阶段使用,从编写代码到构建和测试,以及从应用程序部署到操作、监控和安全。

学习devops:完整的kubernetes课程

最后更新2021年1月

畅销书
  • 146讲座
  • 所有级别
4.3 (12371)

Kubernetes将运行和管理您的集装箱应用程序。了解如何构建,部署,使用和维护Kubernetes |由爱德华·Viaene

探索课程

用于应用程序生命周期的最佳DevOps工具

1.应用程序生命周期:编写代码

源码控制

毫无疑问了。每个人都使用Git for Version控件的源代码。克隆,提交和推动等基本命令很容易学习,但还有更多。你能创建一个分支吗?从主人绑定你的分支?解决冲突?南瓜并将你的分支合并到掌柜?如果你不小心做错了什么,怎么办?如果您不知道这些问题的答案,您应该让自己加快速度。任何真实的现场可靠性工程师(SRE)或Cloud / DevOps工程师将能够毫不犹豫地使用这些命令。

软件开发平台betwayapp下载安装

Git与GitHub,Gitlab,Atlassian,Azubetwayapp下载安装re Devops或AWS代码代码等软件开发平台集成。这些平台允许开发人员在软件上进行协作,打开拉拔请求(PRS),并解决冲突。您想了解如何使用这些平台。这些平台允许您与同事合作。工程师构建部署管道将需要知道如何在连续交付平台内集成源控制。

2.应用程序生命周期:构建和测试

持续交付

现在您已经了解了软件交付平台,是时候讨论持续交付了。在这个阶段,您通常使用版本控制中的代码来创建用于构建、测试和部署软件的管道。软件开发平台通常在betwayapp下载安装其平台中提供工具来构建管道。如果是这种情况,并且您要从头开始,那么您很可能将使用内置管道功能。它将在平台中完全集成,使用集成来进行源代码控制、测试(构建工具集成)和部署(例如,Kubernetes)。

除了使用您的软件开发平台之外,一个流行的开源工具Jenkbetwayapp下载安装ins已经存在一段时间了。几乎所有的组织都使用它。Jenkins可以作为一个完整的持续交付平台,负责构建、测试和部署阶段。它还可以集成到现有的平台中。例如,AWS CodeBuild可以构建和测试你的软件本身,但你也可以选择与Jenkins集成,让Jenkins处理构建、测试和部署阶段。

3.应用程序生命周期:部署

连续部署

作为持续交付周期的一部分,您需要能够持续部署您的应用程序。现在通常使用容器进行部署,所以让我们首先讨论这个问题。

要部署容器,您将需要一个容器编排平台。最受欢迎的是Kubernetes。它在几乎所有公共云计算提供商上都可以作为托管平台。虽然Kubernetes可以为您做很多,但它是一个非常复杂的工具,具有自己的工具生态系统。如果您正在寻找更简单的东西,那么看看云供应商正在提供什么。AWS提供弹性容器服务(ECS)。ECS也是一个集装箱乐队,但要使用的更简单。其他有用的工具是Docker-Compose,用于在本地构建和测试您的容器,Docker Swarm,它是由Docker本身构建的Docker Orchestrator。

在构建要构建、测试和部署的管道时,您将看到许多平台都提供了对Kubernetes的开箱即用的支持。Azure DevOps集成了他们的托管Kubernetes服务,Azure Kubernetes服务(AKS),允许你使用Azure DevOps轻松地在Kubernetes上部署代码。

部署Docker.

集装箱化有很多好处。您首先编写一个dockerfile,它包含有关如何构建您的Docker映像的信息。此Dockerfile是您构建容器所需的唯一文件。您可以在自己的计算机上构建和运行容器,或作为连续交付过程的一部分运行它。构建后,您可以在任何Docker Orchestrator上运行它,如Kubernetes。

容器将被隔绝在内核水平上。结果,容器比虚拟机(VM)更快地开始。隔离包括网络隔离,过程隔离和资源隔离。这样,您可以在一台计算机上运行多个容器,而不具有端口或资源冲突。

特别是将容器的采用特别展现了在基础架构中轻松部署,重新部署和缩放容器的方式。Kubernetes将管理资源利用率,调度,缩放,安全性和网络,而您可以专注于容器本身的内容。由于Kubernetes作为主要公共云提供商的服务的可用性,您可以在任何地方运行这些容器。唯一的警告是,您仍然需要访问您的数据,因此实际上,跨云部署策略仍然不如您所预期的那么容易。

部署没有码头工人

不使用Docker仍然是一个选择。在Docker来临之前,已经存在连续交付。这里的良好方法是构建虚拟机(VM)图像而不是容器图像。与容器相同的方法仍然适用,但是工件现在不同:VM图像而不是容器。packer是一个开源工具,您可以用于构建这些图像。Packer支持VMware for Ove Prem部署,但也可以像AWS这样的云提供商。构建VM图像的整个过程将需要更长时间,但最终结果是相同的。您需要在基础架构上的某处安排您的图像,并且您需要为此提供编排工具。

一个脱颖而出的送货工具是旋转器。它是Netflix开发的工具,向您不断变化的基础架构推出更改。在Spinnaker中,您可以启动这些图像的构建,与Jenkins集成以进行构建/测试,并在云基础架构上部署它们。

4.应用生命周期:操作

基础设施建设

在您在(云)基础架构上部署之前,您仍然需要在云(或本地)中设置大量资源。最常见的工具可以帮助您的是Terraform。Terraform支持主要云提供商(亚马逊AWS,Microsoft Azure,Google Cloud等)。它允许您将基础架构写为代码,允许您抽出完整的基础架构设置。您可以存储版本控制中的代码,允许您与队友协作,获取更改历史,并使用审计工具。

通常,云提供商也会有工具以代码的形式构建您的基础设施。AWS有CloudFormation, Azure有Azure资源管理器模板。这些都是很棒的工具,但我们发现Terraform比它们有优势。Terraform通常更容易使用,当其他人而不是作者阅读代码时,代码也更容易理解。它也独立于任何云提供商(它是一个免费的开源HashiCorp工具,就像Packer一样)。您可能会认为一个独立的工具需要更长的时间来支持所有的资源,但是现在情况正好相反。Terraform AWS插件社区非常庞大,很快就会支持新的AWS服务。有时甚至比“云形成”还要早。还有很好的文档,当你需要支持的时候还有一个GitHub项目。

您可以在自己的机器上运行terraform,也可以在Jenkins中运行它。还有Terraform Cloud,这是HashiCorp的一个产品,可以为你运行Terraform。

建立不可变基础设施

在使用容器或VM映像部署应用程序时,每次应用程序有更新(Git提交到版本控制)时,都需要重新构建映像。重建映像后,您将推出这个新映像。从本质上讲,首先要关闭当前的应用程序基础设施。然后你需要用更新的vm或云实例替换它,直到所有运行的服务器都包含该应用的新版本。

这种策略被称为“不可变的基础设施”。您将替换完整的运行实例或服务器,而不是替换应用程序代码本身。这是一种更好的进行更改的方式,而不仅仅是尝试就地替换应用程序代码本身。您将基础设施视为不可变的,您不允许任何就地更改。每个更改都需要通过版本控制、交付管道,并且需要以与正常部署相同的方式进行部署。

如果您使用这种方法,您将减少对配置管理工具(如Ansible、Chef、Puppet或SaltStack)的依赖。不再需要就地更新。最好的工作方式是通过输送管道。

使用容器编排工具时,这更为真实。默认情况下,您的Docker容器是不可变的,因此每次您会滚动更新时,您都会建立一个新的Docker映像。在Kubernetes工作级别,您也不会再发生就地更改。您通常会使用云供应商的预先构建的图像,该云供应商将包含一个最小的软件集,足以作为Kubernetes工作节点运行。所有自定义软件现在都在容器中。升级到工人也将是不可变的,允许完整的不变基础设施设置。

5.应用程序生命周期:监视和安全

安全威胁

建立所有基础架构来执行Devops策略,不应考虑到安全性。云提供商有很多工具,可以帮助您保护数据并降低数据泄露的风险。一个非常强大,经常被忽视的措施只是使用非常紧密的访问规则。AWS具有身份和访问管理(IAM),用于创建用户,组和角色。这些包含访问规则,称为策略。往往是那些策略过于广泛的策略,允许对用户,组或角色的太多访问。更加紧缩它们可以显着提高您的安全姿势。可以使用特定条件写入高级策略以测试访问源自从,并根据此信息允许或拒绝访问资源的访问。

监控工具

一旦基础设施设置好,就需要对其进行监控。监视将分为两部分:监视应用程序和监视基础设施本身。

要监控基础架构,您将要使用云提供商为您提供的工具。对于AWS,这将是CloudWatch。如果没有任何监控或者您不在云端,那么您肯定希望看看Prometheus。此监控工具与大多数云本机制具集成,并且是一个很好的使用工具。您会发现您可以使用的很多不同的代理商。您可以在Linux / Windows Server实例上安装这些代理。其他插件可用于特定服务,如数据库。Prometheus支持拉动指标,但也有一个推送的网关,用于系统的一部分不能支持拉动。

Prometheus还可以监控应用程序指标。Prometheus为所有流行的编程语言提供了库。您可以在应用程序中设置由Prometheus拉动的指标。即使您的编程语言不受支持,您唯一需要的是一个通过HTTP的度量端点,Prometheus可以从那里获取度量端点。这个简单的设计是普罗米修斯如此受欢迎和强大的原因。您可以通过一个简单的HTTP服务器实现监视任何应用程序或基础设施的一部分,该实现带有一个公开度量的页面。

无论是使用Prometheus for应用程序还是基础架构监控,您也可以将其与Grafana集成,以创建令人敬畏的视觉仪表板。

配置所有度量标准后,您将要提醒。Prometheus通过警报管理器支持警报。您可以设置触发的规则,并将在需要查看某些内容时通知您。可以将警报发送到电子邮件,但也支持像Slack(for Chatops)这样的其他集成。

当您使用新的DevOp工具优化应用程序生命周期时,请考虑上面的一些工具。我还建议您通过Udemy的在线课程来提高您和您的团队的技术技能,以帮助您的团队有效地实现这些新的DevOps工具。

页面上次更新:4月2020年4月

Devops的顶级课程

超过在Terraform认证
德里克摩根
4.8 (196)
评价最高
DevOps项目:CI/CD与Jenkins Ansible Docker Kubernetes
Valaxy Technologies | AR Shankar
4.5 (4,937)
Devops基础- CI/CD与AWS +Docker+Ansible+Jenkins
拉胡尔谢蒂
4.5 (1415)
畅销书
Devops目录,模式和蓝图
维克多·法奇,这是达林·波普
4.7 (87)
进入devops:masterclass
Releaseworks学院
4.4 (796)
金丝雀部署到Kubernetes使用Istio和朋友
维克多·法奇,这是达林·波普
4.9 (176)

更DevOps的课程

DevOps的学生也在学习

让你的团队。领导行业。

通过Udemy为Business获取组织的在线课程和数字学习工具库的订阅。

请求一个演示

爱德华的课程

学习Devops:持续交付更好的软件
爱德华Viaene
4.2 (2778)
了解大数据:Hadoop生态系统MasterClass
爱德华Viaene
4.4 (3,483)
畅销书
学习DevOps:具有Terraform的基础架构自动化
爱德华Viaene
4.4 (8,879)
畅销书
学习devops:完整的kubernetes课程
爱德华Viaene
4.3 (12371)
畅销书
学习DevOps: CI/CD与Jenkins使用管道和Docker
爱德华Viaene
4.6 (7068)
评价最高
学习DevOps:高级Kubernetes用法
爱德华Viaene
4.3 (1,058)
在AWS和Kubernetes上使用Spinnaker持续部署
爱德华·维亚恩,约恩·詹伯斯
4.4 (828)
与普罗米修斯一起监视和警报
爱德华·维亚恩,约恩·詹伯斯
4.4 (2373)
畅销书
AWS先进的安全
爱德华·维亚恩,约恩·詹伯斯
4.3 (197)
在Azure起程拓殖
爱德华·维亚恩,约恩·詹伯斯
4.3 (608)

爱德华的课程