主要版本发布后Java开发人员应使用的15种工具

新部署的生存工具包:适用于Java开发人员的工具,这些工具经常将代码部署到生产中!

Takipi会检测生产中的所有错误,并像发生错误时一样显示变量值
立即部署并获得免费的T恤
takipi-blog_tshirt



适用于新部署的终极生存套件

与在僵尸末日场景下玩弄,用砍刀和the弹枪争论不一样,Java生产环境中的麻烦是很真实的,尤其是在新部署之后(但也准备好接受僵尸是一件好事)。 如果将新的代码发布周期缩短到几周,有时甚至是几天甚至一天多次,那么比以往任何时候都更容易陷入麻烦。 为避免被僵尸撞倒,这里是生存套件的设置,您需要充分了解新代码对系统的影响。 有什么事吗 它在减慢你的速度吗? 以及如何解决? 这是一劳永逸地破解它的工具集和体系结构。

弗雷德·奥普斯

记录中

除了缩短发布周期外,现代开发生命周期的另一个特性是不断扩展日志文件,每天可以达到GB。 假设新部署后出现了一些问题:如果您想及时做出响应,那么在没有适当工具的情况下,处理来自多个源和计算机的非结构化数据的GB几乎是不可能的。 在此空间中,我们可以将工具本质上划分为重型企业本地Splunk及其SaaS竞争对手,例如Sumo Logic,Loggly等。 类似的产品有很多选择,因此我们编写了更深入的日志管理分析,您可以在此处阅读。

要点1:设置合理的日志管理策略,以帮助您查看裸日志文件之外的内容,并在新部署后快速做出反应。

开源ELK堆栈是我们发现的一种在部署新代码后非常有用的日志记录体系结构。 值得一提的是它是开源和免费的。

ELK堆栈:ElasticSearch,Logstash和Kibana

ELK堆栈:ElasticSearch,Logstash和Kibana

那么我们在谈论什么ELK? Elasticsearch的搜索和分析功能的组合,Logstash作为日志聚合器,Kibana用于精美的仪表板可视化。 我们使用它已经有一段时间了,它通过日志和Redis从Java中获取它,开发人员和BI都在使用它。 如今,elasticsearch几乎是Logstash内置的,而Kibana也是elasticsearch的产品,使集成和设置变得容易。

当新的部署推出时,仪表板将遵循我们针对应用运行状况设置的自定义指标。 这些指标实时更新,可以在新交付的代码上载到生产环境后的第一步时进行密切监视。

要点2:搜索,可视化以及从多个来源汇总日志的简便性是确定日志管理策略的关键因素。

要点3:从开发人员的角度来看,评估新部署的影响还可以包括BI方面。

检查工具:

  1. 本地: Splunk
  2. SaaS: Sumo Logic
  3. SaaS: Loggly
  4. 开源: Graylog2
  5. 开源: Fluentd
  6. ELK堆栈 (开源): Elasticsearch + Logstash + Kibana
  7. 性能监控

    因此,发布周期缩短了,日志文件也越来越大,但这还不是全部:用户请求的数量呈指数增长,并且他们都期望达到最佳性能。 除非您努力优化它,否则简单的日志记录只会带您到此为止。 话虽如此,专用的应用程序性能管理工具已不再被视为一种奢侈,而是Swift成为一种标准。 本质上,APM意味着定时执行代码中的不同区域并完成事务所需的时间-这可以通过检测代码,监视日志或包括网络/硬件指标来实现。 无论是在后端还是在用户的设备上。 我想到的头两个现代APM工具是最近刚进行首次公开​​募股的New Relic和AppDynamics。

    左侧为AppDynamics,右侧为New Relic –主仪表板屏幕

    左侧为AppDynamics,右侧为New Relic –主仪表板屏幕

    传统上,每个企业都针对不同类型的开发人员,从企业到初创企业。 但是,随着两家公司都开始进行首次公开​​募股,并且在经历了巨大的增长之后,两者之间的界限越来越模糊。 选择不明确,但您不会出错–前提是= AppDynamics,否则,这是一个单独的调用,具体取决于哪个更适合您的堆栈(以及它们提供的所有功能中的哪些是您实际上想使用的功能) )。 看看这两个头部比较头,我们最近发布的分析就在这里 。

    最近发布的另外两个有趣的工具是Ruxit(由Compuware公司提供)和DripStat(由Chronon Systems公司提供),每种工具均来自大型公司,他们试图解决由New Relic率先开发的SaaS监控市场。 考虑到核心JVM内部组件,jClarity和Plumbr也绝对值得一试。

    要点4:新部署可能会影响您应用程序的性能并降低其性能,APM工具可以提供有关应用程序运行状况的全面概述。

    检查工具:

  8. AppDynamics
  9. 新遗物
  10. 新玩家:

  11. j清晰度
  12. 铅锤
  13. 鲁克西特
  14. 滴灌
  15. 生产调试

    发布周期缩短,日志文件变大,用户请求爆炸,并且……错误的余地根本不存在。 当出现错误时–您需要立即解决它。 大型生产环境每天可能在代码中的数百个不同位置产生数百万个错误。 尽管有些错误可能是微不足道的,但有些错误会破坏关键的应用程序功能并在您不知情的情况下影响最终用户。 传统上,要识别和解决这些错误,您甚至必须依靠日志文件或日志管理工具来知道发生了错误,更不用说如何解决了。

    使用Takipi,您可以知道哪些错误构成最高风险,应该对其进行优先级排序,并获得有关如何解决每个错误的可行信息。

    记录1

    考虑到新部署后出现的错误,Takipi解决了3个主要问题:

    1. 知道哪些错误对您的影响最大 –在生产中检测100%的代码错误,包括JVM异常和日志错误。 使用智能过滤可消除噪声并关注最重要的错误。 超过90%的Takipi用户报告在使用的第一天就发现了至少一个关键错误。
    2. 花费更少的时间和精力进行调试 – Takipi自动重现每个错误并显示导致错误的代码和变量,即使在服务器之间也是如此。 这消除了手动重现错误的需要,节省了工程时间,并大大减少了解决问题的时间。
    3. 毫无风险地进行部署 –当新版本引入错误,并且固定错误再次困扰您时,Takipi会通知您。

    要点5:使用Takipi,您可以Swift采取行动解决任何问题,而在新版本发布后,您将不再处于黑暗之中。

    检查工具:

  16. 塔基皮
  17. 警报和跟踪

    发布周期,日志文件,用户请求,没有差错的余地……等等。 您可能会认为此类别与其他类别重叠,事实是您可能是对的,但是当所有这些工具都有自己的管道来让您知道发生了什么时,它就会变得很混乱。 尤其是在新部署后的软弱环境中,很容易发生各种意外的事件(这是更柔和的说法…… 所有地狱都破灭了)。

    解决这一问题的领先事件管理工具之一是PagerDuty:从监视工具收集警报,创建时间表以协调团队并通过文本,电子邮件,短信或推送通知将每个警报传递给合适的人。

    要点六:考虑使用事件管理系统来处理信息过载。

    我们真正喜欢在这里使用的一种专用工具是Pingdom(它也与Pagerduty集成了)。 它的作用非常简单并且可以正常工作:24/7跟踪和提醒我们网站的响应时间。 回答一个看似微不足道的关键问题:网站可用吗? 从全球各地进行探测。

    所有系统都去了!

    所有系统都去了!

    解决信息过载的另一个角度是错误跟踪,它超出了日志分析器的功能:智能仪表板可管理异常和日志错误。 通过日志事件或其他来自代码的插件,将所有服务器和计算机中的数据聚合到一个位置。 要深入了解错误跟踪工具的情况, 请查看这篇涵盖最流行选项的文章。

    要点7:代码错误有各种形式和大小,值得使用错误跟踪工具对其进行一些特殊处理(在我们使用它时,粉碎一些错误,穆哈哈)。

    检查工具:

  18. PagerDuty
  19. 平度

结论

我们已经亲身体验了现代软件开发如何影响发行版生命周期,并深入了解了如何评估新快速部署的影响-在甚至完全了解上次更新的影响之前就可以引入新代码的时间。 在总体方案中,您考虑使用的任何工具都应满足以下5个特征:

  1. 收缩释放周期
  2. 扩展日志文件
  3. 越来越多的用户请求
  4. 误差较小
  5. 信息超载

最重要的是,请考虑一下您今天如何处理这些问题,这会占用您太多时间。 很有可能有解决该问题的工具。

Takipi会检测生产中的所有错误,并像发生错误时一样显示变量值
立即部署并获得免费的T恤
takipi-blog_tshirt



翻译自: https://www.javacodegeeks.com/2014/12/15-tools-java-developers-should-use-after-a-major-release.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/361057.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java EE 7批处理和魔兽世界–第2部分

今天,我将把第二部分带到我以前关于Java EE 7批处理和《魔兽世界–第1部分》的帖子中。 在本文中,我们将了解如何从第1部分中获得的数据中汇总和提取指标。 概括 批处理目的是下载魔兽世界拍卖行的数据,处理拍卖并提取指标。 这些指标将建立…

js导航条 二级滑动 模仿块级作用域

for(var i 1;i<7;i){    //因为首级标题有6个&#xff0c;对每个首级标题添加mouseover和mouseout事件。    //这里用到块级作用域(function(k){document.getElementById("p_"k).addEventListener(mouseover,function(event){document.getElementById(p_…

struts+swfupload实现批量图片上传(上):swfupload

custom_settings : {progressTarget : "fsUploadProgress",cancelButtonId : "btnCancel",uploadButtonId : "btnUpload",myFileListTarget : "idFileList" },custom_settings调用方法 this.customSettings.cancelButtonId 缩略图js …

40行中的持久性KeyValue Server和一个可悲的事实

再次出现。. 回顾 Peters关于Unsafe用法的书面概述 &#xff0c;我将简要介绍一下Java中的低级技术如何通过启用更高级别的抽象或允许Java性能级别来节省开发工作可能很多人都不知道。 我的主要观点是表明&#xff0c;将对象转换为字节&#xff0c;反之亦然是一个重要的基础&a…

TreeMap源码分析——深入分析(基于JDK1.6)

TreeMap有Values、EntrySet、KeySet、PrivateEntryIterator、EntryIterator、ValueIterator、KeyIterator、DescendingKeyIterator、NavigableSubMap、AscendingSubMap、DescendingSubMap、SubMap、Entry共十三个内部类。Entry是在TreeMap中用于表示树的节点的内部类&#xff0…

Python2.6 Cx_Oracle Linux下编译安装

分类&#xff1a; python Oracle 2012-06-07 00:04 239人阅读 评论(0) 收藏 举报(一) Python 2.6 安装 1.下载Python2.6.X 版本的源码包&#xff0c;这里采用平台编译安装。 Python-2.6.4.tar.bz2 2.解压缩 ,使用J参数解压bigz2类型的压缩文件 tar -jxvf Python-2.6.4.tar.bz2…

Apache TomEE(和Tomcat)的自签名证书

可能在大多数Java EE项目中&#xff0c;您将拥有具有SSL支持&#xff08; https &#xff09;的部分或整个系统&#xff0c;因此浏览器和服务器可以通过安全连接进行通信。 这意味着在处理数据之前&#xff0c;已发送的数据已加密&#xff0c;传输并最终解密。 问题在于&…

WEB效能测试和负载测试部分截图

效能测试&#xff1a; 负载测试&#xff1a; 转载于:https://www.cnblogs.com/DOOM-scse/archive/2013/01/07/2849110.html

Java8 Lambdas:解释性能缺陷的排序

与Peter Lawrey合作撰写 。 几天前&#xff0c;我对使用新的Java8声明式的排序性能提出了严重的问题。 在这里查看博客文章。 在那篇文章中&#xff0c;我仅指出了问题所在&#xff0c;但在这篇文章中&#xff0c;我将更深入地了解和解释问题的原因。 这将通过使用声明式样式重…

Asp.net MVC3.0 基于不同的角色显示不同的菜单

前面提到过用Asp.net MVC3.0正在做一个问答系统性质的论坛。前期把菜单全部显示以方便测试模块功能。现在正在完善&#xff0c;加上角色模块&#xff0c;然后不同的角色登陆系统会看到不同的菜单栏&#xff0c;还有就是游客&#xff08;未登录用户&#xff09;看到的菜单栏。网…

LoadRunner如何监控Linux下的系统资源

前一段时间在研究LoadRunner过程中&#xff0c;在进行压力场景测试中通过LoadRunner来实时监控windows的系统资源&#xff0c;在前几节中我已经总结了相关过程&#xff0c;近段时间发现群里有朋友问如何监控Linux下的系统资源&#xff0c;所以我也就此问题搭建了一些的Linux环境…

页面跳转多种方法(加传参)

onclick"javascript:location.href/HelpCenter/HelpCenter/" <a href"/HelpCenter/HelpCenter">帮助中心</a>点击页面返回上一页&#xff1a; onclick"javascript:window.history.go(-1); *********************************************…

JCG学院开设了Java设计模式课程!

自从我们推出JCG学院以来&#xff0c;已经有一段时间了。JCG学院是一个基于付费内容的高级订阅网站&#xff0c;提供有关最新技术的课程&#xff0c;涵盖从RedSQL数据库&#xff08;如Redis和CouchDB&#xff09;到使用Android进行移动开发的最新知识。 当然&#xff0c;与Jav…

用友异常清理工具

此类工具网上很多&#xff0c;但&#xff0c;网上的病毒千千万万&#xff0c;还是自己开发使用较为放心。而且具体执行了什么也一清二楚&#xff0c;可以放心。 此工具适用大部份版本&#xff0c;从U821至U871&#xff0c;包括U6系列。 转载于:https://www.cnblogs.com/wuxi15/…

JVM因“ OutOfMemory”错误而关闭-我该怎么办?

看起来似乎很神奇&#xff0c;但是在有关JVM设置的搜索请求结果中经常显示这种“从深度”的呼喊。 您可能会遇到“我记得该选项&#xff0c;但如何启用它”的问题&#xff0c;而有时&#xff08;主要是半年一次&#xff09;管理服务器或调整虚拟设备&#xff0c;而又除主要任务…

JBoss Data Virtualization 6.1 Beta现在可用

JBoss 数据虚拟化 &#xff08;JDV&#xff09;是一种数据集成解决方案&#xff0c;位于多个数据源的前面&#xff0c;并允许将它们视为一个源。 做到这一点&#xff0c;它提供了数据抽象&#xff0c;联合&#xff0c;集成&#xff0c;转换和交付功能&#xff0c;可将来自一个或…

点击显示底框颜色,默认显示第一个。

页面初始化显示第一个底框颜色&#xff0c;点击另一个第一个底框颜色消失&#xff0c;被点击的底框颜色显示&#xff0c;以此循环。 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional…

在三个Java IDE中生成的三种常见方法

在本文中&#xff0c;我研究了NetBeans 8.0.2 &#xff0c; IntelliJ IDEA 14.0.2和Eclipse Luna 4.4.1生成的三种“通用”方法[ equals&#xff08;Object&#xff09; &#xff0c; hashCode&#xff08;&#xff09;和toString&#xff08;&#xff09; ]的区别 。 。 目的不…

angularjs 利用filter进行表单查询及分页查询

页面&#xff1a; <div><input style"width:90%;margin-left:5px;margin-right:5px;" class"form-control sys_input" ng-model"imagePaths.filter.imageName" placeholder"查询..."/></div><div><!--<…

为什么现在是升级到Java 8的最佳时机

有兴趣了解如何通过AppDynamics充分利用Java 8的新功能吗&#xff1f; 立即开始免费试用 &#xff01; 今年3月&#xff0c;Oracle发布了近十年来最受期待的版本Java8。自发布以来&#xff0c;最新版本引起了越来越多的关注&#xff0c;各种规模的公司都渴望升级。 我们的合作…