写点什么

微服务与单体架构:IT 变革中企业及个体如何自处?

  • 2020-04-23
  • 本文字数:3125 字

    阅读完需:约 10 分钟

微服务与单体架构:IT变革中企业及个体如何自处?

当下,企业越来越多地受到竞争对手和他们自己的客户的压力,既需要让应用程序更快地在线运行,同时又要最大限度地降低开发成本。这些不同的目标,迫使企业 IT 组织必须一刻不停地迅速发展。自 20 世纪 60 年代以来经历了一次又一次的强制演变之后,大量的企业 IT 已经准备从单体应用架构中走出一步,走上微服务之路。



图 1:传统单体应用程序和微服务之间的架构差异

更高的期望和更有能力的客户

那些能够接触到全球产品及服务的客户,现在愈发强势地希望他们的供应商企业能够快速响应其他供应商正在做的事情。


CIO 杂志在报道 Ovum 的研究时曾指出:


在“客户之旅”中,是“客户”本身占据着上风。拥有更多的购物方式,以及开始花费更少的时间在购物上,客户们需要的不仅是快速地收集信息和完成交易。他们经常希望能无需进行冗长的对话、甚至在去往某地的途中、在移动设备上就能快速完成这项工作。

处于压力之下的 IT

这场激烈的全球竞争,也迫使企业寻找新的方法来削减成本或找到更有效的新方法。开发人员在过去其实已经看到了这一切。这只是企业 IT 十多年来所面临的“少花钱多办事”这一永恒号召的当代新版本罢了。他们已经了解到,尽管 IT 总预算增长了,但在新 IT 服务以及通信服务这一块需要的投资也增多了。



图 2:Gartner 的 2018 年全球 IT 支出增长预测


企业 IT 组织需要对时代的发展和新的需求作出回应,这一压力也使得他们不得不重新审视他们的开发流程。传统的长达两年开发周期,或许在过去是可以接受的,但在现阶段早已不再令人满意。没有人能够等待。

趋势的汇合

企业 IT 也被迫对各种趋势作出回应,这些趋势是分歧和矛盾的。


  • 引入廉价但高性能的网络连接 ,让分布式功能彼此之间通过网络进行通信的速度,与之前可在单个系统内相互通信的流程一样快。

  • 推出功能强大的微处理器 ,可在廉价和小型封装中提供大型机级性能。在标准化 X86 微处理器架构之后,企业现在不得不考虑其他架构来满足他们对更高性能、更低成本、以及更低功耗和热量的需求。

  • 内部系统内存容量不断增加 ,因此可以在小型系统中部署大型应用程序或应用程序组件。

  • 外部存储的使用正逐渐从使用旋转介质变为固态设备 ,这样可以提高性能、减少延迟、降低总体成本并提供巨大的容量。

  • 开源软件和分布式计算功能的发展 使企业能够在需要新功能时廉价地添加一系列系统,而不是面对昂贵且耗时的叉车升级来扩展中央主机系统。

  • 客户要求即时、轻松地访问应用程序和数据。


要应对这些趋势,企业 IT 部门很快就会发现,他们一直依赖的方法——专注于充分利用昂贵的系统和网络——必须改变了。如今最大的成本是人员、电力和冷却。二十多年前,企业将重点从单体大型机计算转移到基于 X86 的分布式中端系统,诚然那是一次变革,但当下的变化趋势及变革与那时不同了。

下一步发展在哪?

以下是企业 IT 为响应所有这些趋势所做的工作。


他们选择从使用传统的瀑布式开发方法转向各种形式的快速应用程序开发。他们也正在从编译语言转向解释或增量编译的语言,如 Java、Python 或 Ruby,以提高开发人员的工作效率。


例如,IDC 预测:


到 2021 年,65%的 CIO 将把敏捷开发/DevOps 实践扩展到更广泛的业务中,以实现创新、执行和变革所需的速度。


复杂的应用程序越来越多地被设计为独立的功能或“服务”,可以托管在网络上的多个地方,以提高应用的性能和可靠性。这种方法意味着可以解决不断变化的业务需求,以及可以在无需并行更改任何其他功能的前提下,向一个功能中添加新功能。NetworkWorld 的 Andy Patrizio 在对 2019 年的预测中指出,他预计“微服务和无服务器计算将起飞”。


另一个重要变化是这些服务托管在地理位置分散的企业数据中心、云端或两者兼有之中。此外,功能可以驻留在客户的口袋中,也可以驻留在基于云或公司系统的某种组合中。

这对你意味着什么?

这些趋势的到来,意味着企业开发人员和运维人员必须对其传统方法进行一些重大变革,包括:


  • 开发人员必须愿意学习更适合当今快速应用程序开发方法的技术。 经验丰富的“学生”可以通过在线学校快速学习。例如,Learnpython.org 提供 Python 免费课程,而 codecademy 提供 Ruby、Java 和其他语言的免费课程。

  • 他们还必须愿意学习如何将应用程序逻辑 从单体静态设计分解为独立但协作的微服务集合,各类在线学习网站依然是不错的选择,例如 IBM 的微服务课程(https://www.coursera.org/learn/intro-ibm-microservices)、Lynda.com 等等。

  • 开发人员必须采用新工具来创建和维护微服务 ,以支持它们之间快速可靠的通信。善于使用各种商业和开源的信息传递和管理工具,可以大大简化这一过程。例如 Rancher Labs 的全开源平台 Rancher 为用户提供 Kurbernetes-as-a-service。

  • 运维专家需要学习容器和 Kubernetes 的编排工具 ,以了解它们是如何让团队快速开发和改进应用程序和服务,而又不会失去对数据和安全性的控制。长期以来,运维一直是企业数据中心的守门人。毕竟,如果应用程序变慢或失败,运维人员就要在此时负责解决这一局面。

  • 运维人员必须允许这些功能托管于他们直接控制的数据中心之外。 为了说明这一点,Market Research Future 的分析师最近发表了一份报告称,“2017 年全球云微服务市场价值为 5.844 亿美元,预计到预测期结束时将达到 21.467 亿美元,复合年增长率为 25.0%”。

  • 应用程序管理和安全问题现在必须成为开发人员思考的一部分。 在线课程又一次地可以帮助个人发展这方面的专业知识。很多网站包括 LinkedIn 提供了如何成为 IT 安全专家的课程。


非常重要的一点是,IT 和运维人员都必须理解 IT 的世界正在快速发展变革,每个人都必须专注于提升自身的技能和专业知识。

微服务如何使企业受益?

微服务这种分布式计算的最新发展,为企业带来了许多实际和可衡量的收益。在 IT 组织采用这种形式的分布式计算后,开发时间和成本花费都可以大大降低。之后,可以根据需要并行开发每个服务并进行细化,而无需停止或重新设计整个应用程序。


开发团队可以专注于开发人员的工作效率,并且仍然可以快速、在线地提供新的应用程序功能。运维团队则可以专注于为应用程序执行定义可接受的规则,并通过编排和管理工具强制执行它们。

企业面临哪些新挑战?

与任何 IT 方法一样,微服务架构的应用在带来益处的同时也将带来挑战。


监控和管理大量“移动部件”,要比处理一些单体应用程序更具挑战性。采用企业管理框架能有助于应对这些挑战。除此之外,此类分布式计算的安全性也需要首要考虑。随着网络上独立功能的增加,每个功能都必须进行分析和保护。

所有单体应用程序都应该迁移到微服务吗?

一些单体应用程序很难改变。这可能是由于技术挑战或可能是由于监管限制。今天使用的一些组件可能来自于已经倒闭的供应商,使得迁移或重构变得极其困难甚至不可能。


对于企业来说,完成整个审计过程既费时又费钱。通常情况下,企业继续投资旧应用程序的时间,比他们相信自己在节省资金的时间长得多。


企业应该先评估清楚某个单体应用是具体做什么的,再考虑是不是要分离某些单独的功能并作为较小的独立服务运行。这些可以实现为基于云的服务或基于容器的微服务。


最明智的方法,不是等待并试图解决整个旧技术,而是进行一系列渐进式的更改,使得增强或替换旧系统的计划更容易被接受。这与那句古老的谚语非常相似,“植树的最佳时机,是 20 年前,其次是现在。”

这些变化值得吗?

大量已经采用基于微服务的应用程序架构的企业已经证明了,他们的 IT 成本通常会降低。他们还经常表示,一旦他们的团队掌握了这种方法,当市场需求发生变化时,添加新功能和特性会更容易、更快捷。


如果您的企业还完全没有踏上微服务之路,从现在开始了解更多信息也是好的。此外也应该多关注业界的一些新近流行的技术与解决方案,如 Kubernetes、Rancher、Serverless 等等。


2020-04-23 17:23862

评论

发布
暂无评论
发现更多内容

项目汇报的正确打开方式

老张

汇报 向上管理

鲲鹏DevKit助力海通证券高效开发互联网行情系统,性能提升26%

说山水

通义千问预体验,如何让 AI 模型应用“奔跑”在函数计算上?

阿里巴巴云原生

阿里云 云原生 函数计算

SDK轻量化,降低日均耗电量和日均流量

MobTech袤博科技

得物App万米高空WiFi拦截记

得物技术

App wifi 得物 拦截

2023-06-01:讲一讲Redis常见数据结构以及使用场景。

福大大架构师每日一题

redis 福大大

展望开源产业与数字经济未来|2023开放原子全球开源峰会开源创新理论与实践分论坛即将启幕

开放原子开源基金会

开源 开放原子

悦数图数据库:图 + AI 在金融行业的应用及技术前瞻

悦数图数据库

AI 金融 图数据库实战

解读科学计算助力行业高质量发展|2023开放原子全球开源峰会科学智能分论坛即将启幕

开放原子开源基金会

人工智能 开源 开放原子 科学智能

软件测试/测试开发丨接口测试实战学习笔记

测试人

程序员 软件测试 自动化测试 接口测试 测试开发

OS 生成文件目录树

Andy

鲲鹏DevKit助力通付盾Web应用防火墙产品开发,性能提升45%+

说山水

WICC · 出海嘉年华倒计时!精彩不容错过,「指南」一手掌握

融云 RongCloud

社交 融云 泛娱乐 出海 wicc

1 行代码开启「密钥检测」,给敏感数据加上防护锁

极狐GitLab

DevOps 安全 DevSecOps 安全左移 密钥检测

聊点技术 | 可观测性十问十答

博睿数据

可观测性 智能运维 博睿数据 发展趋势 聊点技术

启用Windows防火墙后,FTP传输非常慢

镭速

小小机械臂 带动产业自动化

说山水

在金融数据里挖呀挖,GaussDB开出了花

脑极体

数据库

Java 致命错误: 在类路径或引导类路径中找不到程序包 java.lang

Andy

多数据中心助力中企出海全球化经营

用友BIP

中企出海

wireshark分析tcp传输之文件上传速率问题

蓝胖子的编程梦

TCP 网络 Wireshark tcpdump 抓包

Authing 结合 APISIX 实现统一可配置 API 权限网关(快速启动版)

Authing

API APISIX APISIX 网关 API 接口

嘉为蓝鲸荣登广东软件风云榜,获评新技术应用最受欢迎产品TOP10

嘉为蓝鲸

软件 新技术 应用程序

Why Docker? Why not?

M

Docker 镜像 PaaS #云原生

数字化转型应该如何去做?(技术篇)

数字随行

数字化转型

2023数字政府高质量发展论坛在京召开

信通院IOMM数字化转型团队

数字化转型 数字政府 IOMM 政府数字化转型

开源教育与人才|2023开放原子全球开源峰会开源教育和人才分论坛即将启幕

开放原子开源基金会

开源 开放原子 教育与人才

瑞云科技CTO赵志杰出席广州广告数字创意峰会并发表演讲

3DCAT实时渲染

元宇宙 实时云渲染 云3D渲染

一文回顾 Boundless Hackathon at Stanford 首期 Workshop

BlockChain先知

自媒体行业红利衰退,大部分自媒体作者将生存艰难

石头IT视角

微服务与单体架构:IT变革中企业及个体如何自处?_文化 & 方法_Rancher_InfoQ精选文章