阅读更多



新发布的根本生存装备

不像玩僵尸毁灭的场景,也不像辩论大刀对抗猎 枪,在Java的生产环境中问题是真实存在的,特别是在一个新的发布之后(有备无患嘛)。更进一步说,比起当时 将编码周期缩短至几周或是几天,甚至一天缩短多次,反而现在更容易陷入麻烦。为了避免这些麻烦,你需要完全理解新的代码会对你的系统产生什么影响。是否会 对原有的系统产生破坏?是否会让系统运行迟缓?怎么去解决这些可能出现的问题呢?下面介绍一些工具和架构来彻底破解这些问题。

现在开发生命周期非但不会缩短,每天不断膨胀的日志数据 甚至可以达到GB级别的量级。让我们说说在新发布之后的问题:如果你想及时响应,在没有合适的工具的情况下,想要处理多数据源多服务器的GB量级的数据, 几乎是不可能的。在这样的情况下,除开重型企业内部的工具Splunk和他的SaaS中的竞争对手,如Sumo Logic, Loggly等等。我们依然有提供类似功能的其他选择,因此我们对日志的管理做了一个深入的分析,你可以参照这里

#1 建立一个可靠的日志管理策略,能帮助你看到的不止是单独的日志文件,能让你在新发布之后快速做出相应。

我们最后发现,在新发布之后的一个有用的日志框架就是开源的ELK stack。因为它是开源免费的,所以被特别提到。



ELK stack包括 ElasticSearch,,Logstash 和Kibana

那么我们所说的 ELK到底是什么呢?它是一个混合体,包括用作搜索和性能分析的elasticsearch,用于日志收集的Logstash和用作前端展现的 Kibana。我们已经用过有一段时间了,依靠它和Redis分析我们的Java日志,它也有被用在开发和BI之中。现在,elasticsearch已经内置于Logstash,Kibana也是一个elasticsearch的产品,这样能让集成和安装更容易。

每当一个新的发布之后,前端会展现出我们对这个应用健康所关心的自定义指标。这些指标会实时更新,并且允许刚交付的代码上传到生产环境后马上就得到监测。

#2 搜索,可视化以及对多数据源日志的聚合,是决定你日志管理工具选择的第一要素。

#3 从一个开发者的角度,评估新的发布的影响也包括BI等方面。

可供选择的工具:

内置工具: Splunk
SaaS:Sumo Logic
3. SaaS:Loggly
4. 开源:Graylog2
5. 开源:Fluentd
6. The ELK stack (开源): Elasticsearch + Logstash + Kibana
性能监控:

发 布周期被缩短,日志文件越来越大,但这并不是全部。随着用户请求的数量急剧增长,他们都希望达到性能的峰值。如果你不努力优化,简单的日志记录让你只能看 到这么多。这样说来,专用应用程序性能管理工具(APM)已不再被认为是奢侈品,它已经迅速成为一种标准。从本质上说,APM意味着时间需要多长时间来执 行不同的地区代码并完成汇报——要达到这个,可以通过代码检测,日志监控或是包括网络/硬件指标。考虑到后台以及用户设备,首先进入我脑中的两个APM工 具分别是New Relic(最近刚IPO)以及AppDynamics。


[align=center]

左边为AppDynamics,右边为New Relic的主面板[/align]
不 管是初创还是成熟的公司,这两个都能满足不同类型的开发者。但是两个都在走IPO,在经历巨大的增长后,产品线越来越模糊。这个选择不是很清晰,但是你不 能陷入误区,即On premise = AppDynamics。相反,这是一个独立的需求,它依赖于谁更适合你的站点(即它们提供的所有特性就是你实际上想要使用的)。看看我们最近发布的关于二者的分析报告,点击这里。

我们最近发布的另外两个工具是Ruxit(由Compuware开发)和DripStat(Chronon Systems开发),它们每一个都来自由New Relic开创的尝试自己解决SaaS监控市场的大公司。为了深入JVM硬核内部,jClarity和Plumbr也绝对值得一试。

#4新的发布有可能影响你应用的性能使之运行变慢。APM工具可以提供你应用健康的总体情况。

可供选择的工具:

1.AppDynamics
2.New Relic
新的成员:

1.jClarity
2.Plumbr
3.Ruxit
4.Dripstat
产品调试

发布周期短了,日志文件变大了,用户请求增多……允许犯错误的余地几乎不存在了。但当错误真的到来时,你需要能够马上解决掉。大规模的生产环境,每天可以从 成百上千个不同的代码处产生无数的错误。虽然有些错误时不重要的,但有些可能对你的应用产生致命的影响,并影响你所接触不到的终端用户。另外,为了鉴别和解决这些错误,你必须依赖于你的日志或是日志管理工具去查看错误的发生,更不用说如何修复它。

有了Takipi,你能够知道最有可能出问题且需要优化的地方,并且能得到怎么取解决每个问题的可行的信息。



为了关注新发布后的危机,Takipi解决了三个主要问题:

1.了解哪些错误最有可能影响你——在生产中发现100%的代码错误,包括JVM异常和记录的错误。使用智能过滤以减少噪音使之专注于最重要的错误。超过90%的Takipi用户报告说,在他们使用的第一天,至少在生产中找到了一个严重的bug。

2、在调试上花更少的时间和精力——Takipi再现了每个错误并显示出代码和导致它产生的变量,甚至可以跨服务器。这消除了手动复制错误的必要,节省了工程时间,显著降低时间。

3. 没有风险的发布——当新的版本中有错误,或是已经解决的错误又重现时,Takipi都会提醒你。

#5:运用Takipi你能很快地解决任何问题,以至于不让你在新的发布之后一无所知。

可选择的工具:
1.Takipi
从这篇文章之后,Takipi的使用时间扩展到了两个月。



报警和追踪

发布周期,日志文件,用户请求,零错误……你怎么才能全部跟进呢?你可能认为这一类和其他的重叠了,可能你是对的,但是当所有的这些工具都有他们自己的流水 线时,你可能会意识到自己哪里错了——这将变得很混乱。特别是在各种意想不到的事情都可能发生的新发布后(也就是整个灾难降临)。

满足这个的事件管理工具之一的就是PagerDuty:它能从监控工具收集报警,创建时间表来协调你的团队,或是通过文本、邮件、短信或是推送通知,把每个报警发给特定的人。

#6:考虑使用一个事件管理系统来处理信息过载。

在这里我们真正喜欢使用的专业工具是Pingdom(也是和Pagerduty的结合)。它所做的很简单而且有用:即对你的站点的响应时间做24*7小时的追踪和告警。它能回答一个看起来微不足道,实则至关重要的问题:从世界各地检测来看,当前的站点可用吗?



系统如上图

另一个角度来解决信息过载的方法,是通过对日志分析来进行错误的跟踪:管理异常和日志错误的智能展现。从多个服务器聚合数据到一个地方,即使你的日志事件或是其他插件来自你的代码。为了更深入地错误追踪,点击这篇文章可以得到更多的信息。

#7 代码层的错误来源各种各样,在选用追踪工具时,应该给予特别的对待(在我们关注他们的时候就修复一些bug,哈哈)

可供选择的工具:

1.PagerDuty
2.Pingdom
总结

我们亲身经历,现代软件开发如何影响发布生命周期,放大如何评估新的快速部署的影响——在你部署之前,你应该完全了解最后更新的影响。从长远来看,任何工具都应该拥有这五个特点:
  • 缩短发布周期
  • 增加日志文件
  • 增大用户请求
  • 减小错误
  • 信息的过载

最重要地是,思考一下现在你是怎么解决这些的,哪一个花了你更多的时间。很可能就有一个工具适合解决这个问题。
英文来自:takipi
  • 大小: 67.2 KB
  • 大小: 465.8 KB
  • 大小: 1.5 MB
  • 大小: 14.3 KB
  • 大小: 148.8 KB
  • 大小: 37.4 KB
10
0
评论 共 0 条 请登录后发表评论

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • java学习工具_Java 开发者应该学习的 8 个工具

    任何一个优秀的工匠,仅仅拥有天赋是不够的,你在工作中还需要正确的工具。工程学不仅仅是科学,更是艺术。所以,在Stormpath,尽管我们拥有天赋,我们仍不断寻找所需的有用的工具。我们的工程师一直渴望向团队其他...

  • java 开发测试工具_Java开发者都应该知道的工具

    原标题:Java开发者都应该知道的工具在这篇文章中,小编将分享Java团队日常工作使用的工具,并介绍如何使用它们,分享一些实用的小技巧。 Groovy我们使用Groovy来写Java测试,为什么?因为它提供了下面这些能力:宽松...

  • 每个Java开发者应该知道的八个工具

    任何一个优秀的工匠,仅仅拥有天赋是不够的,你在工作中还需要正确的工具。工程学不仅仅是科学,更是艺术。所以,在Stormpath,尽管我们拥有天赋,我们仍不断寻找所需的有用的工具。我们的工程师一直渴望向团队其他...

  • java8 groovy_每个 Java 开发者应该知道(并爱上)的 8 个工具

    原标题:每个 Java 开发者应该知道(并爱上)的 8 个工具在Stormpath(一款用户管理和认证服务),我们认真对待质量和效率。任何一个优秀的工匠,仅仅拥有天赋是不够的,你在工作中还需要正确的工具。工程学不仅仅是科学...

  • 每个 Java 开发者应该知道(并爱上)的 8 个工具

    任何一个优秀的工匠,仅仅拥有天赋是不够的,你在工作中还需要正确的工具。工程学不仅仅是科学,更是艺术。所以,在Stormpath,尽管我们拥有天赋,我们仍不断寻找所需的有用的工具。我们的工程师一直渴望向团队其他...

  • 【Java工具之】每个 Java 开发者应该知道(并爱上)的 8 个工具

    任何一个优秀的工匠,仅仅拥有天赋是不够的,你在工作中还需要正确的工具。工程学不仅仅是科学,更是艺术。所以,在Stormpath,尽管我们拥有天赋,我们仍不断寻找所需的有用的工具。我们的工程师一直渴望向团队其他...

  • Java 开发者必须了解的 15 个Java 顶级开源项目

    Guide 哥大三开始维护的,目前算是纯 Java 类型项目中 Star 数量最多的项目了。但是,本仓库的价值远远(+N次 )比不上像 Spring Boot、Elasticsearch 等等这样非常非常非常优秀的项目。希望以后我也有能力为这些...

  • 每个Java开发者应该知道(并爱上)的8个工具

    来自:码农网 链接:www.codeceo.com/article/8-tools-every-java-developer-love.html 英文原文:...翻译作者:码农网 – 孙腾浩在Stormpath(一款用户管理和认证服务),我们认真

  • 每个 Java 开发者应该知道的几个工具

    任何一个优秀的工匠,仅仅拥有天赋是不够的,你在工作中还需要正确的工具。工程学不仅仅是科学,更是艺术。所以,在Stormpath,尽管我们拥有天赋,我们仍不断寻找所需的有用的工具。我们的工程师一直渴望向团队其他...

  • (转载)每个 Java 开发者应该知道(并爱上)的 8 个工具

    转载:...任何一个优秀的工匠,仅仅拥有天赋是不够的,你在工作中还需要正确的工具。工程学不仅仅是科学,更是艺术。所以,在Stormpath,尽管我们拥有天赋,我们仍不断寻找所需的有用的

  • 2020年,Java 开发者必须了解的 16 个Java 顶级开源项目

    2020年,值得你关注的16个Java 开源项目!本文已经收录自笔者开源的 JavaGuide: https://github.com/Snailclimb/JavaGuide (【Java学习+面试指南】 一份涵盖大部分Java程序员所需要掌握的核心知识。)Star 的数量统计...

  • Java 应用发布后,需要关注的7个性能指标

    在某个重大发布之后,都需要记录相应的指标,本文介绍了最重要的几个 Java 性能指标,包括响应时间和平均负载等。为理解应用程序在生产环境中如何运行,就需要遵循一些 Java 性能指标。在以前,当软件被发布后,...

  • java11和java12_Java 12和Java 11之间应该使用哪一个?它们有哪些差异

    如果你拿不定主意要使用 Java 12 还是 Java 11,请看本文,它为你解析这两个版本之间的差异及升级考虑因素,本文作者是一名 Java 开发者,提供的建议都非常的专业,我们一起来看看。背景距离 Java 11 的正式发布已...

  • 9个典型的开发者关系面试题

    简介:越来越多的科技公司正在从传统的企业销售思路转变为以开发者至上的思路来推广产品。...启动开发人员关系计划,可以推动开发者的使用并建立起更有效的关系,但是由于开发人员关系是一个崭新的

  • 相比高人气的 Rust、Go,为何 Java、C 在工具层面进展缓慢?

    每当这个时候,开发者们都有一肚子的话要吐槽或表扬,开发者 Adam Gordon Bell 也不外如是。Bell 最受关注的是最受欢迎和最不招人待见的编程语言。我们先简单看下调查结果: 最受欢迎的高人气编程语言(2022):...

  • java 工具有哪些_Java开发工具有哪些?

    我最喜欢的几个Java开发工具,推荐8个给你!1.Groovy我们使用Groovy来写Java测试。为什么?因为它提供了下面这些能力:宽松的Java语法:这是Java语法,但有些其他规则,比如分号,变量类型,访问修饰符都是可选的。...

  • python入门-30.寻找列表中只出现一次的数字-寻找单身狗.py

    python入门-30.寻找列表中只出现一次的数字——寻找单身狗.py

  • 布尔教育linux优化笔记

    linux优化笔记,配套视频:https://www.bilibili.com/list/474327672?sid=4496133&spm_id_from=333.999.0.0&desc=1

  • 知识付费系统-直播+讲师入驻+课程售卖+商城系统-v2.1.9版本搭建以及资源分享下载

    知识付费系统-直播+讲师入驻+课程售卖+商城系统-v2.1.9版本搭建以及资源分享下载,CRMEB知识付费分销与直播营销系统是由西安众邦科技自主开发的一款在线教育平台,该系统不仅拥有独立的知识产权,还采用了先进的ThinkPhp5.0框架和Vue前端技术栈,集成了在线直播教学及课程分销等多种功能,旨在为用户提供全方位的学习体验,默认解压密码youyacaocom

  • 美妆神域-JAVA-基于springBoot美妆神域设计与实现

    美妆神域-JAVA-基于springBoot美妆神域设计与实现

Global site tag (gtag.js) - Google Analytics