跳转到主要内容
Chinese, Simplified

这是探讨应用程序现代化必要性的两部分系列的第二部分。在这里阅读第一部分。

数字化转型进入了一个新的时代,IT从流程驱动发展到数据驱动。如何使用数据,实验和遥测来制定战略和推动创新已成为所有公司关注的问题。

应用程序现代化通常被视为成为数字业务的关键推动因素。但要做到这一点并不容易。成熟的组织必须考虑互联系统的大型“产权”,具有从旧到新的各种规模,从自定义代码到收缩包装,内部创建或外包或从供应商处获得。


 
从IT角度来看,传统负担在五个横向力量中发挥作用:

  1. 数据。孤立的基础架构阻碍了您从整体上查看数据的努力。旧系统将阻止您成为数据驱动的业务,并阻碍您尝试更贴近客户。
  2. 架构和基础设施。当今世界需要持续可用性,交钥匙可扩展性以及对客户需求的快速响应。但遗留系统通常与这些特征相反,会影响客户体验。遗留系统往往受到成本上升和交付周期长的影响 - 即使对于琐碎的任务 - 导致业务受挫。
  3. 遗产流程与治理。明天的组织理解快速反馈周期和孤岛的崩溃对于快速提供整体客户体验至关重要。传统的组织结构和程序通常在缓慢的年度周期中起作用,并且是反应性的而不是主动的,迫使企业猜测市场将在几个月甚至几年之后。
  4. 云。很长一段时间以来,云 - 无论是公共云,私有云还是混合云 - 都是最好的现代托管平台。传统应用程序很少能够支持云计算,简单的“提升和转移”方法可能会让人感到头疼,因为云通常可以交换单个服务器的高可靠性,从而实现整个平台的高可靠性。为了工作,必须使用“12因子”技术更新遗留应用程序,以解决这种权衡问题。
  5. 安全。每周我们都会阅读一个关于违规或数据丢失的新故事,消费者越来越关注他们购买的公司的安全立场。虽然遗留系统本质上不太安全,但管理困难或成本高昂的应用程序可能会落后于安全修复程序和补丁程序,并且会给外部世界带来大量攻击面。

但升级和更换系统并不是新的 - 为什么今天应用程序现代化如此过分?我们认为有两个主要原因:

  • 技术驱动的功能 - 尤其是那些由云,自动化和服务提供支持的功能 - 使企业能够更快地响应市场变化,快速实验和课程更正,并更快地感知和响应需求信号。遗留系统通常缺乏这些能力,导致组织落后于最先进的技术。
  • 竞争激烈,现在不仅仅是为了客户:技术人才市场白热化,最好的技术专家可以选择在哪里工作。组织意识到,通过对系统进行现代化改造,他们可以吸引顶级人才并实现竞争优势。

技术,人员和业务并不是分开的。改善遗留技术状况迫使您重新检查业务流程和组织结构以及技术系统。


 
事实上,试图自己解决技术问题是寻求实现现代化的组织的主要障碍之一。

 

在迈向现代化的过程中,请记住以下三个关键原则:

  1. 打破孤岛和障碍,使您的组织结构与共同目标保持一致。每次交接都可能导致沟通不畅,速度减慢和挫败感,每次失误都是组织中某人“赢”而另一次“失败”的机会。确保你的组织结构让每个人都能在一起赢得胜利,这是一场胜利为了你们所有人。
  2. 缩短反馈周期,无论是技术,组织还是业务。开发人员喜欢使用自动化测试来查看他们的代码是否有效以及他们是否正在取得进展 - 从决定更改内容到获得有关更改是否成功的反馈的时间称为周期时间。将这种思维应用于您的业务战略以及IT  - 我们如何才能看到我们的战略是否成功? IT系统如何帮助我们缩短周期时间?
  3. 通过与客户需求最密切相关的人员进行本地决策。无论客户是使用API​​或平台的内部团队,还是选择公司产品的消费者,与客户最亲密合作的人员最能理解并满足他们的需求。推动决策“向下”到最接近客户的那些人。

一个七点计划,使您的科技产业现代化


这些原则可能会提醒您很多敏捷软件开发,这并非偶然:我们发现敏捷原则非常有效地向上扩展,并在企业系统级别上有显着帮助。以下是如何将原则应用于您的组织:


 
将现代化作为一种​​“路线图”练习,而非作为一种融入石头的计划。

 

随着您在现代化进程中取得进展,将出现新的优先事项。商业格局将发生变化,竞争威胁和机遇将出现,技术也将发生变化。当下一次Docker或机器学习爆炸发生时,您的计划将需要转移以适应新的进展。


拥有系统和组件之间的接缝。

任何企业产业都将包含各种技术,内部定制开发系统,供应商维护系统和包。您的企业集成策略必须坚定,并且必须确定这些组件应如何相互通信,共享数据和协作。


考虑以下特征,通过评估每个系统来确定操作的优先级

 

  1. 系统的实际变化速度,以及所需的变化速度
  2. 变更成本以及所花费的时间
  3. 业务影响/重要性/没有转型的机会损失
  4. 不转变的风险与转型的风险,以及对产品和过程的影响严重性,设计和交付过程中的发生,检测以及操作风险的风险。

您希望快速更改但不能并且具有高度业务重要性的系统是立即采取行动的良好候选者。需要很长时间才能改变但实际上没有被触及太多的系统可能是一个较低的优先级。请记住,选择不升级或替换的内容与选择在变更中进行大量投资的位置同等重要。

考虑下游影响和变化的连锁效应。

近年来,“数字”技术的爆炸式增强了客户连接性和触摸点的增加。但是这些增强的前端通常会对可能在负载下发生故障的下游系统造成很大压力。曾经是一个简单的线性流程已经被新的用例中断 - 例如,“在线购买,在商店中取货” - 现在已成为一个具有许多潜在进入和退出点的复杂图表。您的现代化计划必须考虑系统之间可能的交互,而不仅仅是单独考虑组件。


为每个系统应用传统的现代化模式。

尽管您可以使用大量技术,但现代化模式分为三个方面:

 

  1. 通过自定义代码,新软件包或SaaS进行替换。我们建议使用诸如“撕掉条带或切片”旧系统等策略进行增量替换,并重新实施(例如通过业务流程或功能区域)或使用strangler模式覆盖并终止旧系统,但非增量“大爆炸“迁移可以在某些情况下发挥作用。
  2. 通过添加新系统和旧系统并在两者之间调解请求,添加所有新集成应使用的服务接口来进行扩充。
  3. 继续,我们保持旧系统运行,但做一些改进,使其更现代化,例如添加更好的测试,构建自动化或API。补救不是一个肮脏的词;有些系统会活很长时间。为系统创建“可接受”特征的基线(自动化,可部署性等),并改进无法满足该条的系统。需要考虑的一个重要思想是Evolutionary Architecture,它允许我们逐步改进系统。通过这种方法,我们定义了体系结构适应度函数,它封装了系统的“好”,然后进行渐进式更改,改进了体系结构及其对适应度函数的依从性。

 

包括现有员工在新系统的成功。

任何现代化之旅都会对您现有的人造成重大变化。许多IT员工担心更新遗留系统的工作 - 毕竟,他们的大部分工作是处理旧的技术,他们可能担心他们的技能不会映射到新系统。传统的IT员工将不断为新系统的成功制造政治障碍,并在某些情况下会彻底破坏您的努力。为了解决这个问题,重要的是要包括现有员工,使他们至少对新系统的成功负有部分责任,并利用他们的专业知识创建替代品。毕竟,这些员工对您的业务运作方式有多年的了解:使用它对您有利!

定期重新评估您的计划,同时考虑业务和技术环境的变化。

但请记住不要“过度计划” - 你的计划应该是一个指导而不是一个僵化的结构。毕竟,你永远不知道下一次大技术转变何时会发生,你需要适应它。


结论


通过遵循这种灵活的规划和道路绘图方法,您可以创建一个独特的蓝图来实现您的技术产业现代化。现代化是一个持续的旅程;许多组织陷入了只有在达到关键时刻才进行投资的陷阱。不要像他们一样 - 定期评估,计划和投资,以保持您的技术产业现代化和有效。在您的业务的速度,灵活性和响应能力方面的回报将使您的组织在前所未有的变化和中断的过程中蓬勃发展。

 

原文:https://www.thoughtworks.com/insights/blog/technical-mechanics-modernizing-your-tech-estate

本文:

讨论:请加入知识星球或者小红圈【首席架构师圈】

Article
知识星球
 
微信公众号
 
视频号