当下,企业越来越多地受到竞争对手和他们自己的客户的压力,既需要让应用程序更快地在线运行,同时又要最大限度地降低开发成本。这些不同的目标,迫使企业IT组织必须一刻不停地迅速发展。自20世纪60年代以来经历了一次又一次的强制演变之后,大量的企业IT已经准备从单体应用架构中走出一步,走上微服务之路。
图1:传统单体应用程序和微服务之间的架构差异
更高的期望和更有能力的客户
那些能够接触到全球产品及服务的客户,现在愈发强势地希望他们的供应商企业能够快速响应其他供应商正在做的事情。
CIO杂志在报道Ovum的研究时曾指出:
在“客户之旅”中,是“客户”本身占据着上风。拥有更多的购物方式,以及开始花费更少的时间在购物上,客户们需要的不仅是快速地收集信息和完成交易。他们经常希望能无需进行冗长的对话、甚至在去往某地的途中、在移动设备上就能快速完成这项工作。
处于压力之下的IT
这场激烈的全球竞争,也迫使企业寻找新的方法来削减成本或找到更有效的新方法。开发人员在过去其实已经看到了这一切。这只是企业IT十多年来所面临的“少花钱多办事”这一永恒号召的当代新版本罢了。他们已经了解到,尽管IT总预算增长了,但在新IT服务以及通信服务这一块需要的投资也增多了。
图2:Gartner的2018年全球IT支出增长预测
企业IT组织需要对时代的发展和新的需求作出回应,这一压力也使得他们不得不重新审视他们的开发流程。传统的长达两年开发周期,或许在过去是可以接受的,但在现阶段早已不再令人满意。没有人能够等待。
趋势的汇合
企业IT也被迫对各种趋势作出回应,这些趋势是分歧和矛盾的。
要应对这些趋势,企业IT部门很快就会发现,他们一直依赖的方法——专注于充分利用昂贵的系统和网络——必须改变了。如今最大的成本是人员、电力和冷却。二十多年前,企业将重点从单体大型机计算转移到基于X86的分布式中端系统,诚然那是一次变革,但当下的变化趋势及变革与那时不同了。
下一步发展在哪?
以下是企业IT为响应所有这些趋势所做的工作。
他们选择从使用传统的瀑布式开发方法转向各种形式的快速应用程序开发。他们也正在从编译语言转向解释或增量编译的语言,如Java、Python或Ruby,以提高开发人员的工作效率。
例如,IDC预测:
到2021年,65%的CIO将把敏捷开发/DevOps实践扩展到更广泛的业务中,以实现创新、执行和变革所需的速度。
复杂的应用程序越来越多地被设计为独立的功能或“服务”,可以托管在网络上的多个地方,以提高应用的性能和可靠性。这种方法意味着可以解决不断变化的业务需求,以及可以在无需并行更改任何其他功能的前提下,向一个功能中添加新功能。NetworkWorld的Andy Patrizio在对2019年的预测中指出,他预计“微服务和无服务器计算将起飞”。
另一个重要变化是这些服务托管在地理位置分散的企业数据中心、云端或两者兼有之中。此外,功能可以驻留在客户的口袋中,也可以驻留在基于云或公司系统的某种组合中。
这对你意味着什么?
这些趋势的到来,意味着企业开发人员和运维人员必须对其传统方法进行一些重大变革,包括:
非常重要的一点是,IT和运维人员都必须理解IT的世界正在快速发展变革,每个人都必须专注于提升自身的技能和专业知识。
微服务如何使企业受益?
微服务这种分布式计算的最新发展,为企业带来了许多实际和可衡量的收益。在IT组织采用这种形式的分布式计算后,开发时间和成本花费都可以大大降低。之后,可以根据需要并行开发每个服务并进行细化,而无需停止或重新设计整个应用程序。
开发团队可以专注于开发人员的工作效率,并且仍然可以快速、在线地提供新的应用程序功能。运维团队则可以专注于为应用程序执行定义可接受的规则,并通过编排和管理工具强制执行它们。
企业面临哪些新挑战?
与任何IT方法一样,微服务架构的应用在带来益处的同时也将带来挑战。
监控和管理大量“移动部件”,要比处理一些单体应用程序更具挑战性。采用企业管理框架能有助于应对这些挑战。除此之外,此类分布式计算的安全性也需要首要考虑。随着网络上独立功能的增加,每个功能都必须进行分析和保护。
所有单体应用程序都应该迁移到微服务吗?
一些单体应用程序很难改变。这可能是由于技术挑战或可能是由于监管限制。今天使用的一些组件可能来自于已经倒闭的供应商,使得迁移或重构变得极其困难甚至不可能。
对于企业来说,完成整个审计过程既费时又费钱。通常情况下,企业继续投资旧应用程序的时间,比他们相信自己在节省资金的时间长得多。
企业应该先评估清楚某个单体应用是具体做什么的,再考虑是不是要分离某些单独的功能并作为较小的独立服务运行。这些可以实现为基于云的服务或基于容器的微服务。
最明智的方法,不是等待并试图解决整个旧技术,而是进行一系列渐进式的更改,使得增强或替换旧系统的计划更容易被接受。这与那句古老的谚语非常相似,“植树的最佳时机,是20年前,其次是现在。”
这些变化值得吗?
大量已经采用基于微服务的应用程序架构的企业已经证明了,他们的IT成本通常会降低。他们还经常表示,一旦他们的团队掌握了这种方法,当市场需求发生变化时,添加新功能和特性会更容易、更快捷。
如果您的企业还完全没有踏上微服务之路,从现在开始了解更多信息也是好的。此外也应该多关注业界的一些新近流行的技术与解决方案,如Kubernetes、Rancher、Serverless等等。