原文地址:http://os.51cto.com/art/201606/512423.htm
开发运维工具与软件开发领域的最佳实践密切相关,也与必要的规范密切相关。在整个开发生命周期涉及到一大批新旧工具,从规划、编码、测试、发布到监控。本文介绍你应该考虑添加到工具箱中的20种开发运维工具,供大家参考!
开发工具大概面临这些挑战:开发运维本身是那些还没有得到明确定义,就流传开来的科技时髦词之一。这种情况时不时出现;某个好的概念问世后,人们还无法实际上解释它为何物,就趋之若鹜。
所以,考虑到开发运维本身在大家的头脑中还是一片模糊,开发运维工具怎么样呢?
有必要说清一点:开发运维是开发和运维的混合体,因为它代表了开发实践方面的文化变化,非开发人员也参与到软件开发过程中。开发人员之外的IT专业 人员参与到构建应用程序的协作和沟通过程,让产品开发完毕后使用产品的人有机会在开发过程中,而不是在开发结束后,对应用程序的构建发表意见。
成熟的开发运维环境往往遵循一种常见模式:一种灵活的软件定义平台上的迭代自动化。所以,许多开发运维工具采用了某种迭代动作。采用开发运维工具的 成功的流程既需要公司里面的文化变化,又需要实现这种变化的新工具。这意味着,在整个开发生命周期涉及到一大批新旧工具,从规划、编码、测试、发布到监 控。下面是你应该考虑添加到工具箱中的20种开发运维工具,但绝不是全部。
1.Jira Software
来自Altassian的JIRA软件是一款流行的软件开发工具,用于开发运维的一个关键部分:敏捷开发,处理项目中的多个步骤。这款开发运维工具 用于规划和跟踪工作,并确定优先级,处理产品发布,产品交付后监控性能。它与本文介绍的其他工具整合起来,提供基于云的服务这种形式。
相关链接:https://www.atlassian.com/software/jira
2.GIT
Git是一种免费的开源分布式版本控制系统,既可以处理单个的小项目,也可以处理庞大的企业项目。它极其轻便,专注于速度和处理分布式项目。它脱胎于Linux内核开发,该公司的GitHub网站对开源项目来说是一个非常流行的软件库。
相关链接:https://git-scm.com/
3.Visual Studio
有许多开发运维工具、实际上是软件开发平台,不过论全面性,没有一个比得上微软的Visual Studio,它支持多种语言,包括Python(一种流行的开发运维语言),支持针对Windows、安卓和iOS平台的开发,并支持基于云的协作开发。
相关链接:https://www.visualstudio.com/en-us/visual-studio-homepage-vs.aspx
4.Jenkins
Jenkins是一种跨平台的持续集成和交付的应用软件,它便于不断稳定地交付新的软件版本,并提高你的工作效率。这款开发运维工具还让开发人员更容易把项目的变化整合起来,并使用大量的测试和部署技术。
相关链接:https://jenkins.io/index.html
5.Slack
Slack是一种基于云的团队协作开发运维工具,它最初是游戏开发公司使用的一种内部工具,而如今本身已是一种商业产品。它主要基于一种类似互联网 中继聊天(IRC)的实时聊天技术,但是有更多的控件、支持直接聊天、拖放式文件共享,并与开发工具整合,那样它们都可以从Slack界面来运行。
相关链接:https://slack.com/
6.IBM Security AppScan
IBM Security AppScan用于在开发过程中测试Web和移动应用程序的安全性,不仅改善应用程序的安全性,还可检查应用程序,确保合规。该产品可了解应用程序的行为,并开发一个程序,旨在测试所有功能,查找常见安全漏洞和应用程序特有的安全漏洞。
相关链接:http://www-03.ibm.com/software/products/en/appscan
7.SolarWinds
SolarWinds的软件用于管理大小企业网络上的网络流量。网络设备监控器可监控你网络上的任何一个设备,查找各种提示或错误。该公司专注于错误和性能管理产品、配置和合规产品以及网络管理工具。它还支持监控多租户甲骨文数据库的性能。
相关链接:http://www.solarwinds.com
8.亚马逊网络服务(AWS)
AWS堪称云计算领域的巨无霸,它为开发人员提供了许多选择,比如计算、存储、分发、数据库和网络。其分析服务面向性能管理、应用程序服务、开发人员和管理工具,既有云方案又有混合方案。寻求开发运维工具的那些人无疑会在AWS环境中找到所需工具。
相关链接:https://aws.amazon.com/cn/?tag=vig-20
9.Pivotal
作为知名的平台即服务(PaaS)提供商之一,Pivotal建立在VMware Cloud Foundry上,可以在本地运行,也可以在云端运行。应用程序可以扩展到几百个实例,它随带诸多服务,比如负载均衡、自动化健康管理、日志及审计以及自动化配置。
相关链接:http://pivotal.io
10.Docker
Docker是容器市场的领导者。容器被认为是比较小巧、比较轻便的虚拟机,开销却低得多,那样多个容器可以在一个Linux实例里面运行。它可以封装任何Linux服务器上的应用程序及依赖项,从虚拟系统到基于云的实例,不一而足。
11.Octopus Deploy
大多数云和开源产品支持Linux,但Octopus是一款微软产品,支持.Net应用程序的部署。它便于将ASP.NET应用程序和Windows Services自动发布到测试环境、试运行环境和生产环境,无论它们是在云端还是在本地。
相关链接:https://www.docker.com
12.Electric Cloud
作为开发运维优化软件领域的开拓者之一,这家公司提供简化将软件更新分发给最终用户的开发运维版本自动化(DORA)解决方案。它使新版本的构建和测试实现了自动化,可处理多层应用程序的配置、构建和发布,并且标准化和协调新版本发布。
相关链接:http://electric-cloud.com
13.Puppet
作为另一种版本管理器,Puppet Enterprise专门管理基础设施即代码(IAC),在这种类型的IT基础设施配置过程中,系统用代码而不是脚本流程来自动构建、管理和配置。由于它是代码,整个过程易于重复。Puppet有助于更容易控制版本、自动化测试和持续交付,可以更快速地响应问题或错误。
相关链接:https://puppet.com
14.Chef
这是另一种流行的IAC配置管理工具,用户编写“recipe”,描述了Chef如何配置及管理服务器应用程序和实用程序。这些recipe为 Hadoop或MySQL之类的应用程序描述了应处于特定状态的一系列资源,比如依赖项、程序包、文件和服务。Chef处理应用程序的所有配置工作,整个 过程完全实现自动化。
相关链接:https://www.chef.io/solutions/devops/
15.Ansible
不像Chef和Puppet,Ansible是一种配置和管理工具,面向客户端的软件部署和配置,支持Unix、Linux和Windows。它使 用JSON和YAML,而不是IAC,根本不需要节点代理就可以安装。它可以通过OpenStack在内部系统上使用,也可以在亚马逊EC2上使用。
16.New Relic
New Relic的技术是一种基于SaaS的监控系统,可以实时监控面向iOS和安卓的Web及移动应用程序,无论它们在本地运行、在云端运行,还是在混合环境 下运行。它可以监控应用程序性能,帮助调整和优化应用程序,它支持用Ruby、Java、.NET、Python、PHP和Node.js编写的Web应 用程序。
相关链接:https://newrelic.com
17.Dynatrace
作为另一款应用程序监控产品,Dynatrace可实时检测并诊断应用程序中的性能问题,在使用过程中深入钻研问题代码,比如内存泄漏或坏的数据库查询。它可监控所有的应用程序事务,发现问题后,可以为质量保证和测试小组自动生成错误单。
相关链接:http://www.dynatrace.com/en/
18.Project Atomic
作为Docker的某种竞争对手,Project Atomic结合了简约的Linux操作系统版本(可以实现原子更新,并具有回滚功能)、Docker容器格式和运行时环境,以及用于跨可扩展的服务器集群来编排容器的Kubernetes。
相关链接:http://www.projectatomic.io
19.ServiceNow
ServiceNow起初是用于自动化处理IT支持请求的一项服务,现已变成一家年收入10亿美元的公司,成为了Salesforce的潜在竞争对 手。ServiceNow销售的云软件可自动化处理各种流程,比如为法律合同收集批文。它的开发运维方面专注于ServiceNow服务自动化平台,可以 从头开始或使用现有的内容,构建和部署应用程序,共享内容,加快应用程序的开发。App Creator工具让对编程一窍不通的业务人员也可以开发自助式程序。
相关链接:http://www.servicenow.com
20.Splunk
Splunk最贴切的描述就是堪称日志文件领域的谷歌。服务器会生成大量的日志数据,但是谁想要通读整个数据中心的日志文件来查明服务器或软件的状态?Splunk使用自己的搜索算法,可以寻找异常问题,比如应用程序运行慢、服务器运行慢,以及性能下降或负载加重的时候。