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

戳蓝字“CSDN云计算”关注我们哦!


640?wx_fmt=jpeg


作者:DAN KUSNETZKY

转自:RancherLabs


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


640?wx_fmt=jpeg

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


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


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


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



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


处于压力之下的IT


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


640?wx_fmt=png

图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等等。


640?wx_fmt=png


福利

扫描添加小编微信,备注“姓名+公司职位”,加入【云计算学习交流群】,和志同道合的朋友们共同打卡学习!


640?wx_fmt=jpeg


推荐阅读:

  • 如何用30分钟快速优化家中Wi-Fi?阿里工程师有绝招

  • 趣挨踢 | “菜鸟”程序员和“大神”程序员的差别竟然这么大...

  • 女生适合做程序员吗?

  • Kubernetes 调度器实现初探

  • 李沐团队新作Gluon,复现CV经典模型到BERT,简单好用 | 强烈推荐

  • 日本乐天要求员工学编程,AI 进中小学课堂,全民编程时代来了!

  • 做了四年以太坊核心开发者, 以太坊升级了, 我也该离开了……


640?wx_fmt=png喜欢就点击“在看”吧

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/524381.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

玩转微服务日志框架Logback

一、Logback的配置形式2种: 方案一: application.yml 配置相对简单(需求简单可以使用) 1、可以配置控制台输出的日志格式 例如: 2、可以指定输出到某个路径下面,文件名默认是spring.log 3、如果想可以自定义log日志的文件名…

边缘计算精华问答 | 边缘计算有哪些应用场景?

物联网对物联网技术的快速发展和云服务的推动使得云计算模型已经不能很好的解决现在的问题,于是,这里给出一种新型的计算模型,边缘计算。1Q:什么是边缘计算?A:一般来讲,边缘计算侧重在更为靠近用…

IOS OpenGL ES GPUImage 图像平移 GPUImageTransformFilter

目录 一.简介二.效果演示三.源码下载四.猜你喜欢 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES 基础 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES 转场 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目…

Windows搭建SonarQube_Mysql

一、环境参数: softwareversionJDKjdk-8u144-windows-x64.tarSonarQubesonarqube-7.6sonar-runnersonar-runner-dist-2.4汉化插件sonar-l10n-zh-plugin-1.26.jarmysqlmysql-5.7.26-winx64sonar有三部分组成: 1、服务端:显示分析结果和sonar相…

IOS OpenGL ES GPUImage 图像缩放 GPUImageTransformFilter

目录 一.简介二.效果演示三.源码下载四.猜你喜欢 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES 基础 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES 转场 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目…

window下远程监控linux下tomcat的jvm

简要介绍: 理论上来讲,任何一个运行的java程序都可以监控当前正在运行的java虚拟机的内存,堆空间,栈空间等信息.tomcat本质也是运行在linux上的java程序,通过一定的配置也可以实现监控tomcat对应程序的jvm的空间。 配置方法: 1.停止linux上的tomcat2.编辑bin路径下…

云有约 | 精华汇总

出品 | CSDN云计算 云有约,面对面采访,用最细腻的方式,撰写出最专业的深度文章。 云有约 | 在去O的道路上,AWS表示:经验可复制,惊喜并非只属于我们! 一直以来,挑战数据库霸主Oracl…

Tomcat闪退的解决办法

第一步:在startup.bat文件最后添加pause,启动查看问题原因: 第二步:在startup.bat文件开头添加,如图所示: set TITLE"tomcat-8091" set CATALINA_BASE"F:\NOT MODIFIED\tomcat-8091"…

IOS OpenGL ES GPUImage 图像镜像 GPUImageTransformFilter

目录 一.简介二.效果演示三.源码下载四.猜你喜欢 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES 基础 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES 转场 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目…

云重磅 | 没有硬件,苹果发布多款“云服务”;阿里云发布基于公共云的虚拟GPU服务;中国移动首发5G套餐...

戳蓝字“CSDN云计算”关注我们哦!嗨,大家好,重磅君带来的【云重磅】特别栏目,如期而至,每周二第一时间为大家带来重磅新闻。把握技术风向标,了解行业应用与实践,就交给我重磅君吧!重…

Errors while executing git --version. exitCode=128 errors: fatal: open /dev/null or dup failed: No s

Errors while executing git --version. exitCode128 errors: fatal: open /dev/null or dup failed: No such file or directory 1、找到开发文档null.sys文件,复制到下面路径,覆盖此文件即可,解决 链接:https://pan.baidu.com…

IOS OpenGL ES GPUImage 图像旋转 GPUImageTransformFilter

目录 一.简介二.效果演示三.源码下载四.猜你喜欢 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES 基础 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES 转场 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目…

深挖Kubernetes存储为何如此难及其解决方案

戳蓝字“CSDN云计算”关注我们哦!译者:韦峻峰转自:RancherLabs以Kubernetes为代表的容器编排工具在应用开发部署领域起正发挥着颠覆性的变革作用。随着微服务架构的发展,从开发人员的角度来看,应用逻辑架构与基础设施架…

windows10为何鼠标右键一点桌面就一直转圈?

windows10为何鼠标右键一点桌面就一直转圈? 文章目录解决方案:第一步:点击运行(winr)第二步:然后输入regedit,点击确定第三步:然后点开HKEY_CLASSES_ROOT第四步:然后找到HKEY_CLASSES_ROOT\Dire…

IOS OpenGL ES GPUImage 色彩加深混合 GPUImageColorBurnBlendFilter

目录 一.简介二.效果演示三.源码下载四.猜你喜欢 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES 基础 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES 转场 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目…

虚拟化精华问答 | 怎样使虚拟机能够达到比较高的IO性能?

虚拟化是一种资源管理技术, 是将计算机的各种物理资源, 如服务器、网络、内存及存储等,予以抽象、转换后呈现出来,打破物理设备结构间的不可切割的障碍,使用户可以比原本的架构更好的方式来应用这些资源。这些资源的虚拟部分是不受现有资源的…

Spring Boot下使用JPA报错:'hibernate.dialect' not set的解决办法

问题现象: Spring Boot下使用JPA报错:‘hibernate.dialect’ not set 原因是: 没有设置数据库方言导致的 解决方案: 1.如果配置文件格式为application.properties, 在配置文件中添加以下代码即可: sp…

Spring(3)Spring从零到入门 - Spring整合技术及AOP事务管理

Spring(3)Spring从零到入门 - Spring整合技术及AOP事务管理 文章目录 Spring(3)Spring从零到入门 - Spring整合技术及AOP事务管理4 Spring整合技术示例4.1 Spring整合Mybatis4.1.1 Mybatis开发回顾4.1.2 整合Spring分析4.1.3 Spri…

IOS OpenGL ES GPUImage 色彩减淡混合 GPUImageColorDodgeBlendFilter

目录 一.简介二.效果演示三.源码下载四.猜你喜欢 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES 基础 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES 转场 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目…

云现场 | 为什么说边缘计算是5G时代的必备品?

戳蓝字“CSDN云计算”关注我们哦!作者:孙浩峰5G的出现把边缘计算推上了风口!5G的到来意味着什么,仅仅是可以在几秒内就下载一部高清电影么?显然不是。5G的到来,意味着更多新的业务形态、新的商业模式将会出…