尽力而为,辛勤工作所获得的回报是巨大的。 您可能从我以前的文章中注意到,我对Java EE生产支持,根本原因分析以及与性能相关的问题非常感兴趣。 这篇文章旨在分享我在过去10多年与多个Java EE生产支持团队在岸和离岸合作中应用的一些技巧和工作原理。
本文将为您提供8种提高生产支持技能的方法,这些方法可以帮助您更好地享受IT支持工作并最终成为Java EE生产支持专家。
#1 –与您的客户和交付团队合作
我的第一个建议应该不会令任何人感到惊讶。 无论您从技术角度来看多么出色,如果您无法与客户和IT交付团队合作,您都将无法成为出色的生产支持领导者。
您必须意识到,您正在为IT生产环境的所有者和主人的客户提供服务。 您应该确保关键的Java EE生产系统的可用性,并解决已知的和将来的问题。 远离破坏性的态度,例如错误的印象,即您是实际的所有者,或者由于对问题的了解不足而对客户感到沮丧等。您的工作是使所有事实正确无误,并为客户提供良好的建议,以便他们能够做出正确的决定。 随着时间的流逝,您与您的客户之间将建立起牢固的信任,并带来巨大的利益和机会。
与IT交付团队建立牢固的关系也非常重要。 交付团队包括IT架构师,项目经理和技术资源,被视为负责通过已建立的项目交付模型构建和增强Java EE生产环境的专家团队。 多年来,我已经看到了这两个角色之间发生摩擦的几个例子。 由于部署失败,生产事件激增等方面的不良经验,支持团队通常对交付团队的工作过于挑剔。我还注意到一些示例,其中交付团队由于对IT的不良经验而再次对支持团队的能力缺乏信心。部署失败或缺乏适当的根本原因分析或技术知识等的情况。
作为生产支持人员,您必须树立信誉,并远离负面和非专业的态度。 建立信誉意味着辛勤工作,正确收集事实,进行技术和根本原因分析,对学习新解决方案表现出兴趣等。这将增加对交付团队的信任,并使您长期获得重要的了解和经验。 最终,您将能够为两个团队工作并提供咨询。
这三个角色之间的适当平衡和专业精神对于任何成功的IT生产环境都是至关重要的。
#2 –每个生产事件都是学习的机会
Java EE生产支持的一大优点是您将获得多种学习机会。 您可能已经意识到,每次生产中断后,您至少达到了以下目标之一:
- 您从新的问题类型中获得了新的技术知识
- 您在已知情况下增加了知识和经验
- 您提高了对运营客户的知名度和信任度
- 您可以与其他团队成员分享您的现有知识,从而使他们成功并解决问题
请注意,不时面对负面经历也是正常的。 同样,您还将因此而变得更强壮,并从错误中学习。
反复出现的问题,事件或预防工作仍然为您提供收集更多技术事实,查明根本原因或提出建议以制定永久解决方案的机会。
底线是您参与的事件越多越好。 如果您不愿意在事件恢复中发挥积极作用,也可以,但是请确保您在场,以便至少可以从其他更有经验的团队成员那里获得经验和知识。
#3 –不要害怕改变,拥抱它
我在Java EE支持团队中注意到的一个常见问题是围绕生产平台变更(例如项目部署,基础架构或网络级别变更等)的担忧因素。以下是这种常见担忧的一些原因:
- 对于许多支持团队成员而言,应用程序“更改”是生产“不稳定”的代名词。
- 缺乏对项目本身或变更范围的理解会自动转化为恐惧
- 执行请求的应用程序或中间件更改的舒适度较低
这种恐惧因素通常是三个主要参与者或生产平台问题之间当前发布管理过程中存在差距的征兆,例如:
- 在IT交付和支持团队之间缺乏适当的知识转移
- 在部署新项目之前已经存在不稳定的生产环境
- 缺乏对Java EE或中间件的深入技术知识
恐惧可能会成为您未来成长的严重障碍,必须认真对待。 我对您的建议是,无论组织中是否存在空白,都可以轻松地接受更改,但要结合适当的尽职调查,例如要求更多的KT,参与项目部署策略和风险评估,执行代码演练等。消除这种“恐惧”态度,在您的IT交付团队和客户中获得经验和信誉。 这也将使您有机会为将来的项目部署和与基础架构相关的改进建立建议。
最后,如果您感觉缺乏实施更改的技术知识,只需说一声,然后请另一位更有经验的团队成员来掩盖您的工作即可。 这种方法将减少您的恐惧程度,并让您以最小的风险程度获得经验。
#4 –了解如何读取JVM线程转储和监视工具数据
我确信您从我以前的文章和案例研究中已经注意到我经常使用JVM Thread Dump 。 这是有原因的。 对于任何成功的Java EE生产支持人员而言, 线程转储分析是获得的最重要和最有价值的技能之一。 我在10年前对在JDK 1.3上运行的Weblogic 6问题进行故障排除时分析了我的第一个线程转储。 10年后,还有数百个Thread Dump快照,我仍在学习新的问题模式…JVM和Thread Dump的优点在于,您将始终找到新的模式来识别和理解。
我可以向您保证,一旦您掌握了这些知识(以及JVM基础知识 ),不仅很多生产事件将更容易确定,而且会变得更加有趣和自我回报。 考虑到如今生成JVM线程转储是多么容易,快速和非侵入性; 根本没有任何借口不学习这种关键的故障排除技术。
我的另一项建议是学习如何使用现有的监视工具和解释数据。 对于涉及日常支持的任何生产支持人员而言,Java EE监视工具都是极有价值的武器。 根据购买的产品或IT客户端使用的免费工具,它们将为您提供Java EE应用程序,中间件(Weblogic,JBoss,WAS…)和JVM本身的性能视图。 在重大生产中断后执行根本原因分析时,此历史数据也至关重要。
正确地了解和理解数据将使您了解IT平台的性能,容量,并为您提供与IT容量规划分析和架构师团队合作的机会,这些团队负责确保IT生产环境的长期稳定性和可扩展性。
#5 –学习如何编写代码和执行代码演练
我的下一个建议是提高您的编码技能。 作为Java EE生产支持团队的一部分,除常规的错误修复外,最重要的职责之一是充当“守门人”,例如在项目实施之前的最后一道防线。 此风险评估练习不仅涉及项目审查,测试结果,性能测试报告等,还涉及代码演练。 不幸的是,这种审查通常根本无法正确执行。 练习的目的是确定需要改进的地方,并为生产环境检测潜在的有害代码缺陷,例如线程安全问题,缺少与IO / Socket相关的超时等。您执行此类代码评估的能力取决于您的编码技能和整体技能。了解Java EE设计模式和反模式。
可以按照以下一些策略来提高您的编码技能:
- 探索您的IT组织内执行交付工作的机会
- 抓住任何机会审查正式或非正式的现有或新项目代码
- 创建与您的日常工作和长期职业相关的个人Java EE开发项目
- 加入Java / Java EE开源项目和社区(Apache,JBoss,Spring…)
#6 –不要假装您对Java,JVM和中间件一无所知
对于许多Java EE生产支持人员,我注意到的另一个常见问题是技能“高原”。 在具有很少更改和强化改进的静态IT生产环境中工作时,这尤其成问题。 在这种情况下,您会很快习惯于日常工作,所使用的技术和已知问题。 然后,您会以错误的资历印象对自己的任务感到很自在。 然后有一天,您的IT组织将面临重组,或者您必须为新客户工作。 在这一点上,您感到震惊并且正在努力克服新的挑战。 发生了什么?
- 您已经在小型Java EE应用程序列表和中间件泡泡中达到了技能平台
- 您无法将时间投入到自己和工作IT泡沫之外
- 您未能承认自己缺乏更深入的Java,Java EE和中间件知识,例如对一切一无所知的错误印象
- 您无法睁开眼睛来探索IT世界和Java社区的其余部分
我对您的主要建议是,当您对目前的职位感到过度自信或资格过高时,就该继续前进并接受新的挑战了。 这可能意味着您现有的支持团队中的角色将有所不同,在一段时间内移至项目交付团队,或完全转换工作和/或IT客户。
不断寻求新挑战将导致:
- 由于JVM供应商( HotSpot , IBM JVM , Oracle JRockit …),中间件(Weblogic,JBoss,WAS…),数据库,OS,基础架构等技术的多样性,知识的大量增加。
- 由于实现和解决方案(SOA,Web开发/门户,中间层,遗留集成,移动开发等)的多样性更高,因此知识的大量增加。
- 新型生产事件增加了学习机会
- 在您的IT组织和Java社区中提高可见性
- 改善客户技能和联系方式
- 增强在压力下的工作抵抗力,例如学习如何利用压力和肾上腺素来发挥自己的优势(在严重的生产中断期间可以获得典型的提升)
#7 –与您的团队和Java社区分享您的知识
共享Java EE技能和生产支持经验是改善和维持与支持团队成员的牢固关系的好方法。 我也鼓励您参与Java社区(博客,论坛,开放源代码组等)并与您分享Java EE的生产问题,因为很多问题都很常见,我相信人们可以从您的经验中受益。
话虽这么说,但我强烈推荐的一种方法是安排计划的(最好是每周一次)内部培训课程。 通常通过简单的投票系统选择主题,并在可能的情况下由不同成员提出。 良好的分享心态自然会引导您进行更多的研究和阅读,从长远来看会进一步提高您的技能。
#8 –迎接挑战
至此,您已经获得了扎实的知识基础和关键的故障排除技能。 您已经参与了许多生产事件,并且对根本原因和解决方案有很好的了解。 您非常了解您的IT生产环境,并且客户开始就重大事件直接要求您的存在。 您还每周花费时间来提高您的编码技能并与Java社区共享……但是您真的要面对挑战吗?
一个真正的英雄可以被一个有能力去挑战并带领他人取得胜利的个人定义。 显然,您并没有希望拯救世界,但是您仍然可以通过挑战并带领您的支持团队解决关键的生产中断来成为“每日英雄”。
一位真正的成功和公认的Java EE生产支持人员不一定是最强大的技术资源,而是已经学会了如何正确平衡其技术知识和客户技能,以及在遇到困难时能够勇于挑战并取得领先的强大能力的人。情况。
我真的希望这些技巧可以为您的日常Java EE生产支持提供帮助。 请分享您的经验和有关如何提高Java EE生产支持技能的提示。
参考: Java EE支持模式和Java教程博客上的JCG合作伙伴 Pierre-Hugues Charbonneau提出了8种提高Java EE生产支持技能的方法 。
翻译自: https://www.javacodegeeks.com/2012/08/8-ways-to-improve-your-java-ee.html