2019年十佳DevOps东西,你用了几个?
本文整理了东西列表,为各人选择所需的东西提供详确的参考信息。让j9九游一同看看从主动化build东西到使用步伐功能监控平台范畴里,十大最佳DevOps东西是哪些吧。
1、Gradle
DevOps东西集必要一种牢靠的build东西。Apache Ant和Maven统治着主动化build东西市场许多年,但Gradle在2009年现身,从当时起它就迈着波动增加的步调越来越盛行。Gradle的功效很壮大,容许用户用Java,C++,Python大概其他言语编程。种种盛行的IDE,好比Netbeans,Eclipse以及Intellij IDEA也都支持Gradle。假如这还无法压服你利用它,那么另有一点大概有所协助,Google也选择它作为Andriod Studio的正式build东西 。
Maven和Ant利用XML设置装备摆设,Gradle则引入了一种基于Groovy的DSL来形貌build。在2016年,Gradle团队还公布了一种基于Kotlin的DSL,因而用户如今也可以用Kotlin来编写build的剧本。这意味着Gradle的学习必要肯定的工夫,假如你曩昔用过Groovy,Kotlin或其他JVM言语的话,那么会有助于Gradle的疾速掌握。除此之外,Gradle利用Maven的repository款式,因而假如利用过Maven的话对Gradle的依赖办理也会比力熟习。还可以将Ant build导入进Gradle。
Gradle最好的设计是增量build,因而可以节流少量的编译工夫。依据Gradle的功能陈诉,它比Maven快100倍。如许的功能上风一局部泉源于这种增量设计,别的也得益于Gradle的build缓存和daemon。build缓存重用task的输入,而Gradle的Daemon将build的信息贮存在内存里,可以在多个build间共享。
总的来说,Gradle让疾速交付成为大概,也让设置装备摆设愈加机动。
参考阅读
Gradle:https://gradle.org/
正式build东西:https://developer.android.com/studio/build/
基于Kotlin的DSL:https://github.com/gradle/kotlin-dsl
将Ant build导入:https://docs.gradle.org/current/userguide/ant.html
增量build:https://blog.gradle.org/introducing-incremental-build-support
功能陈诉:https://gradle.org/gradle-vs-maven-performance/
build缓存:https://blog.gradle.org/introducing-gradle-build-cache
daemon:https://docs.gradle.org/current/userguide/gradle_daemon.html
2、Git
Git是最盛行的DevOps东西之一,在软件界利用普遍。它是一种散布式SCM(源码办理)东西,近程团队和开源奉献者都很喜好它。Git让用户可以跟踪本人开辟事情的进度。用户可以保管本人源码的差别版本,而且在必要的时分切回之前的版本。它也很合适做实行,由于可以创立独自的分支,在必要的时分仅仅merge新特征。
要将Git和DevOps事情流集成起来,还必要维护repository,团队成员可以向此中push各自的事情。现在,两大最佳在线的Git repo托管办事是GitHub和Bitbucket。GitHub更著名气,但Bitbucket给小团队(不凌驾五个成员)提供收费不受限的公有repo。利用GitHub,用户仅仅可以收费拜访私有的repo——固然这关于许多项目来说仍旧是很好的办理方案。
GitHub和Bitbucket都有很好的集成。好比,用户可以将它们和Slack集成,如许团队的每团体都能在有恣意commit时收到关照。
内容更新正文:GitHub现已有收费公有堆栈。由于本文是译文,存在肯定时差,特此注明。
参考阅读
Git:https://git-scm.com/
GitHub:https://github.com/
Bitbucket:https://bitbucket.org/
3、Jenkins
Jenkins是许多j9九游团队在走向DevOps时会用的主动化东西。它是开源的CI/CD办事器,协助用户主动化交付流水线的差别阶段。Jenkins之以是盛行的次要缘故原由是其宏大的插件生态体系。现在,它提供1000多个插件,因而它可以和简直一切DevOps东西(从Docker到Puppet)集成。
利用Jenkins,用户可以搭建而且依据实践必要自界说本人的CI/CD流水线。Jenkins文档里介绍了如下示例:
这仅仅是一种大概的完成。看着很不错,不是吗?
利用Jenkins很容易,它在Windows,Mac OS X和Linux上开箱即用。很容易就可以利用Docker安置它。用户可以经过欣赏器搭建而且设置装备摆设Jenkins办事器。假如你是第一次利用它,可以选择安置最常用的插件。固然也可以创立自界说设置装备摆设。
利用Jenkins,用户可以尽快迭代并摆设新代码。它还协助用户器量流水线里每一步能否乐成。我听到有人埋怨Jenkins很“漂亮”且并不直观的UI。但,我依旧可以很容易地找到必要的一切工具。
参考阅读
Jenkins:https://jenkins.io/
1000多个插件:https://plugins.jenkins.io/
Jenkins文档:https://jenkins.io/doc/book/pipeline/
利用Jenkins很容易,https://jenkins.io/download/
利用Docker安置它,https://wiki.jenkins.io/display/JENKINS/Installing+Jenkins+with+Docker
4、Bamboo
Bamboo是Atlassian的CI/CD办事器办理方案,许多特征和Jenkins相似。它们都是盛行的DevOps东西,协助用户主动化公布流水线,从build到摆设。但,Jenkins是开源的,Bamboo是免费的。因而,这里永久的题目是,有收费软件时有须要选择免费软件吗?这取决于你的经费和目的。
Bamboo有许多预构建的功效,而这些功效在Jenkins里得本人手动搭建。这也正是Bamboo的插件更少的缘故原由(大约100个,Jenkins有1000+个)。实践上,你并不必要Bamboo的许多插件,由于它带着许多开箱可用的功效。
Bamboo和其他Atlassian产品,好比Jira和Bitbucket无缝集成。用户还可以拜访内建的Git和Mercurial分支事情流及测试情况。总之,Bamboo可以节流许多设置装备摆设的工夫。它的UI也更为直观,有提醒,主动补全和其他有效的特征。
参考阅读
Bamboo:https://www.atlassian.com/software/bamboo
5、Docker
Docker在2013年公布之后曾经成为了压倒一切[yā dǎo yī qiē]的容器平台,而且仍旧在继续改良。它是最紧张的DevOps东西之一。Docker在科技界掀起了容器化的潮水,次要是由于它让散布式开辟成为大概,而且主动化了使用步伐的摆设。它将使用步伐断绝成独自的容器,因而使用变得愈加便携也更为宁静。Docker使用步伐也独立于OS以及平台。用户可以利用Docker容器取代假造机,好比VirtualBox。
我最喜好Docker的一点是用户无需担忧依赖办理。可以将一切依赖打包进使用步伐的容器,并将一切的工具当做独立的单位交付。然后,用户可以很轻松地在恣意呆板大概平台上运转这个使用步伐。
Docker也和Jenkins以及Bamboo集成。假如你将主动化办事器和Docker搭配利用,可以进一步改良交付事情流。别的,Docker也很实用于云盘算。近来几年,一切主流的云供给商,好比AWS,Google Cloud,都曾经支持Docker。因而,假如你方案云迁徙,那么Docker可以协助简化这一历程。
参考阅读
Docker:https://www.docker.com/
Jenkins:https://jenkins.io/solutions/docker/
Bamboo:https://confluence.atlassian.com/bamboo/getting-started-with-docker-and-bamboo-687213473.html
6、Kubernetes
往年,每团体都在议论Kubernetes。它是容器编排平台,将容器化推进到下一个层面。它可以利用Docker大概其他替换产品。Kubernetes仍旧很新;2015年才推出第一个版本。它由一些Google的工程师创立,他们想找到办理大范围容器的方案。利用Kubernetes,用户可以将容器构造成逻辑单位。
假如你只要几个容器,那么大概并不必要容器编排平台。但,当体系到达肯定级另外庞大度,必要扩展资源的时分,这便是公道的下一步。Kubernetes让用户可以主动化办理上百个容器的历程。
利用Kubernetes,无需将容器化的使用步伐绑定到某个独自的呆板里。相反,你可以将它摆设到一个呆板集群里,Kubernetes会主动化分发并在整个集群里调理容器。
一个Kubernetes集群包括一个master和几个worker节点。master节点完成预界说的规矩,而且将容器摆设到worker节点上。Kubernetes卖力一切统统。好比,它留意到某个worker节点下线了,就会将其上的容珍视新分发到另外节点上。
参考阅读
Kubernetes:https://kubernetes.io/
7、Puppet企业版
Puppet Enterprise是一个跨平台的设置装备摆设办理平台。它让用户可以将底子架构当做代码来办理。由于它主动化了底子架构办理,用户可以更快更宁静地交付软件。Puppet还给开辟职员提供了小型项目可以利用的开源东西。但,假如你卖力的是较大的底子架构,就会发明Puppet Enterprise的分外特征是有代价的,好比:
及时陈诉
基于脚色的拜访控制
节点办理
利用Puppet Enterprise,你可以办理多个团队和数千资源。它能主动了解底子架构里的干系。它处置依赖干系而且智能地处置妨碍。当遇到一次失败的设置装备摆设时,它也会跳过一切依赖的设置装备摆设。Puppet最好的一点是它有5000多个模块,可以和许多盛行的DevOps东西集成。
参考阅读
Puppet Enterprise:https://puppet.com/products/puppet-enterprise
开源东西:https://puppet.com/download-open-source-puppet
分外特征:https://puppet.com/products/why-puppet/puppet-enterprise-and-open-source-puppet
5000多个模块:https://forge.puppet.com/
许多盛行的DevOps东西:https://puppet.com/products/managed-technology
8、Ansible
Ansible是一个设置装备摆设办理东西,和Puppet,Chef相似。用户可以用它设置装备摆设本人的底子架构而且主动化摆设。和其他相似的DevOps东西相比,它的次要卖点是简便易用。Ansible遵照和Puppet一样的底子架构即代码(IAC)的理念。但,它利用超等复杂的YAML语法。利用Ansible,用户可以在YAML里界说义务,而Puppet则有本人的声明式言语。
无署理的架构是另一个常常被提及的Ansible的特征。由于背景没有运转daemon大概署理,Ansible是宁静而且轻量级的设置装备摆设办理主动化的办理方案。和Puppet相似,Ansible也有一些模块。
假如想要更好天文解Ansible在DevOps事情流里是怎样事情的,可以检察Red Hat Blod里的这篇博文 。它介绍了在Jenkins流水线里,怎样利用Ansible来预配情况以及摆设使用。
参考阅读
Ansible:https://www.ansible.com/
一些模块:https://docs.ansible.com/ansible/latest/modules/modules_by_category.html
这篇博文:https://www.redhat.com/en/blog/integrating-ansible-jenkins-cicd-process
9、Nagios
Nagios是最盛行的收费并开源的DevOps监控东西。它可以监控底子架构从而协助用户发明并办理题目。利用Nagios,用户可以记载事情,运转中缀以及妨碍。用户还可以经过Nagios的图表和陈诉监控趋向。如许,可以展望运转中缀和错误,而且发明宁静打击。
固然底子架构监控里有许多DevOps东西,但Nagios由于其丰厚的插件生态而锋芒毕露[fēng máng bì lù]。由于Nagios曾经公布许多年了(2002年公布),围绕它的社区很大。除了插件,社区还奉献了add-on,引导文章,翻译等等有效的工具——都是收费的。
Nagios提供了四中开源监控办理方案:
Nagios Core
Nagios XI
Nagios Log Server
Nagios Fusion
Nagios Core是一个下令行东西,提供了一切根本功效。用户还可以选择Nagios XI ,它提供了基于网页的GUI以及监控导游步伐。Nagios提供了功效的比对。
Nagios Log Server让用户可以搜刮日记数据,而且设置装备摆设大概打击的报警。Nagios Fusion可以同时监控多个网络。
全体来说,Nagios给DevOps团队提供了底子架构监控办理方案。但,它必要肯定的工夫搭建,而且必要思索和你的情况的兼容性。
参考阅读
Nagios:https://www.nagios.org/
插件生态:https://exchange.nagios.org/
功效的比对:https://www.nagios.org/downloads/nagios-core/
10、Raygun
Raygun是抢先的错误监控以及瓦解陈诉的平台。使用步伐功能监控(APM)是其近来的项目。Raygun的DevOps东西协助用户剖析功能题目,而且定位到代码的某一行,某个function大概API挪用。APM东西和Raygun的错误办理事情流可以协同事情。好比,它主动定位最高优先级的题目,并创立issue。
Raygun APM可以协助最大化其他DevOps的代价,由于你总是能收到题目关照。由于它主动将错误链接到源码里,Raygun给整个团队提供一致的真理泉源来定位错误和功能题目,将开辟和运维严密联系在一同。
参考阅读
Raygun:https://raygun.com/
使用步伐功能监控:https://raygun.com/platform/apm
哪些DevOps东西合适你的团队?
找到最佳的DevOps东西必要一些测试和履历。搭建以及设置装备摆设开源软件通常必要更多工夫。大少数贸易DevOps东西都有收费试用版本,用户可以测试而且评价。终极选择哪些东西取决于团队的需求和目的。
译者介绍
崔婧雯,现就职于IBM,初级软件工程师,卖力IBM WebSphere商业流程办理软件的体系测试事情。曾就职于VMware从事桌面假造化产品的质量包管事情。对假造化,两头件技能,商业流程办理有浓重的兴味。DockOne社区金牌翻译。
开辟和运维的集成掀开了j9九游的全新篇章。假如你照旧DevOps的老手,大概正在寻求改良已有流程的办法,那么第一道关卡便是调研哪些东西最合适你的团队。
中国· 上海

- top
-
添加微信征询