微服务发展以及微服务面临的挑战

简介: 你睁开惺忪的睡眼,一看手机,发现已经过了中午12点了,于是顺手点了一份中午的外卖。当你打开手机淘宝,发现自己昨晚坚持到双十一零点的战绩,满满的待发货与待收货的红点。其实你也没多想,翻了个身,刷起了抖音...漫游在这个便捷而又精彩纷呈的互联网世界。看起来微服务技术与我们的生活毫无相关,但是我们的生活又...

你睁开惺忪的睡眼,一看手机,发现已经过了中午12点了,于是顺手点了一份中午的外卖。当你打开手机淘宝,发现自己昨晚坚持到双十一零点的战绩,满满的待发货与待收货的红点。其实你也没多想,翻了个身,刷起了抖音...漫游在这个便捷而又精彩纷呈的互联网世界。看起来微服务技术与我们的生活毫无相关,但是我们的生活又离不开微服务,我们随手的一个点击下单动作,在计算机世界中发生了什么样的变化?在瞬息之间,亿万次服务的调用又是如何自然而又精密地运行着,相互关联并且相互影响着。可以说我们的生活离不开这些微服务系统。接下来,让我们一起来了解与学习微服务技术,一起探索微服务技术的发展。

微服务的兴起其实是一个必然的过程,在这之前的 IT 系统大多是单体应用,简单来说,就是一个系统的所有子程序都是运行在同一台机器上面,那么系统的各个子程序之间影响与依赖关系也不会那么复杂。在业务发展初期,这样做的好处非常明显,利于开发、部署、问题诊断等等,但是坏处也有不少,比如任意一块逻辑的改动,都需要整个系统应用重新部署。技术的发展跟业务的发展诉求息息相关,随着互联网进入 2.0,各种门户网站、Web 应用涌现出来了,出现更多的交互以及渲染,用户的访问量也出现了巨大的增长,软件复杂度导致了维护成本的大幅上升。整体而言对技术的整体要求变高了,单体应用已经不能满足日益复杂的业务需求,也随着小型机成本的大幅下降,以及单节点的可靠性难以保证等因素的影响下,软件行业逐渐进入到了SOA跟微服务时代。

为什么微服务自提出之日到目前为止可以如此地被广泛应用,热度一直居高不下?微服务的理念其实就是把一件极其复杂的事情,拆分成一系列微小简单的服务来完成。就好比工厂制造手机,如果需要工人单独完成手机的制造,那就是不可能的事情,一方面效率不高,另一方面对工人的要求极高,不可能低成本找到符合条件的员工。但如果工厂把制作手机的流程进行拆分成一系列简单的步骤,以流水线的方式组织协同就可以实现低成本的方式量产手机。那么对比到微服务架构,就是将复杂的业务系统拆分成一系列简单的服务,且每个服务都是一个独立的应用且运行在各自的进程内,各个服务之间通过远程通信的方式交互。

image

手机生产流水线

非常自然的,微服务架构带来如下几点好处:

  • 效率与成本:通过将一块庞大复杂的业务逻辑拆分成多个服务的方法,做到在达到同样业务诉求目标的情况下,应用被分解成多个可管理的服务,提供了模块化的解决方式。每个服务的通过服务契约定义好作用与边界,对于每个微服务的开发来说相比原先巨大的业务应用,单个独立服务的开发复杂度与维护成本大幅降低。因为各个服务之间通过远程通信方式交互,那么对于每个独立的服务而言,开发、部署都是相对独立,可以自由地选择喜好的语言进行开发,可以选择合适的方式进行部署,甚至可以给不同的服务选择更合适的硬件进行部署,对于开发、维护、硬件的成本优化都带来了非常大的好处。

  • 稳定性:相比单体应用而言,一旦应用故障那么整个系统就直接宕机。为服务化之后,即使单个服务出现了问题,也不会直接影响整体的服务的可用性,结合合适的微服务治理能力以及弹性扩缩容能力,可以将影响面降低到最低,甚至可以做到故障自愈。

  • 高可扩展性:微服务化之后,系统可以很好地面对横向、纵向方式扩展的需求。一方面我们可以“按需扩容”,大促来袭时,通过添加机器的方式实现系统的快速扩容,大促结束后释放机器,对系统资源进行充分地利用;另一方面,随着业务地增长,我们可以通过增加微服务的方式满足业务的快速发展的需求。

image

复杂的微服务链路

谈完好处,大家也会想到紧接着就是一句,但是微服务并不是银弹。随着微服务化的深入,本身的使命是让业务的迭代更加高效,但当我们的微服务数量逐步增多,链路越来越长,如果不进行进一步的治理,那么引发的效率问题可能会大于微服务架构本身带来的架构红利,为系统的开发与运维带来了新的挑战。

  • 效率:随着系统微服务拆分进行,一次请求内部往往会涉及到多个微服务系统的调用。开发运维人员必须面对分布式系统带来的复杂度,服务间的依赖关系错综复杂,随着微服务数量的增加,问题的复杂程度指数上升,开发以及问题诊断的效率极速下降;

  • 稳定性:由于微服务之间的依赖关系错综复杂,在大规模之下,再小的问题都会牵一发而动全身。面对海量的流量调用、不确定的用户行为、高速迭代的业务需求以及频繁地系统变更。微服务系统难免会出现预期外的异常行为,这种不一致的行为轻则造成系统用户的体验降低,重则导致不可恢复的系统异常。

微服务带来的新挑战无疑让人头痛,但也带来了新技术的发展契机,科技的发展总是这样循环往复,螺旋式上升,它们带来的新问题,也使得微服务治理技术在这些年兴起

相关文章
|
10天前
|
存储 消息中间件 运维
从单体到微服务:架构演进中的技术挑战与解决方案
在软件开发的过程中,系统架构的选择对项目的成功与否起到至关重要的作用。本文将深入探讨从单体架构向微服务架构演进过程中所遇到的技术挑战,并提供相应的解决方案。
33 0
|
5天前
|
架构师 API 持续交付
探索微服务架构的演进与挑战
【6月更文挑战第24天】在软件开发领域,微服务架构作为一种灵活、可扩展的设计模式,已经引领了多年的技术潮流。本文将深入探讨微服务架构从兴起到成熟的发展路径,揭示其在现代应用中面临的主要挑战,并提供针对性的解决策略。通过分析微服务的设计理念、实践案例和未来趋势,我们旨在为开发者和架构师提供一份实用的指南,帮助他们在构建和维护复杂系统时做出明智的决策。
|
19天前
|
监控 PHP Docker
PHP框架如何应对微服务与容器化趋势
这篇文档讨论了PHP框架如何适应微服务和容器化趋势。主要内容包括:1) 微服务支持,如服务拆分与通信、服务发现与注册、数据持久化与缓存及安全与认证;2) 容器化支持,涉及轻量级与可移植性、自动化构建与部署、环境变量配置及日志与监控。文中通过代码示例展示了如何使用Laravel框架构建微服务和Docker容器化部署。最后,提到了扩展性和容错性在微服务架构中的重要性,并指出实践中还需考虑版本控制、灰度发布等高级功能。
23 0
|
1月前
|
监控 负载均衡 API
微服务架构在现代企业中的应用与挑战
微服务架构已成为现代企业构建灵活且可扩展软件系统的首选。然而,随着其应用的普及,企业也面临着一系列新的挑战。本篇文章将探讨微服务架构的优势、实施时遇到的问题以及解决这些问题的策略。
|
6月前
|
监控 Devops 云计算
微服务的前景
微服务的前景
59 1
|
1月前
|
消息中间件 监控 Java
微服务技术发展
微服务技术发展
|
1月前
|
敏捷开发 Cloud Native 云计算
微服务与单体架构:争议与未来趋势
随着企业应用程序的不断发展,以及云原生领域的快速发展,架构也在不断地发展和演变。传统的单体架构在开发和部署方面有诸多问题,微服务架构在解决这些问题方面表现出色,已经成为了现代化企业架构的主流,而且微服务和单体架构已成为现代技术领域的焦点议题。但是,微服务架构也存在一些争议,同时也面临着一些未来趋势,以及单体架构的应用,作为开发者,个人觉得这两种架构各有千秋,各有利弊,但是最近技术圈关于这两种架构的关注度引发了不少热烈的探讨和争议。接下来分享一下我对这个问题的看法,以及讨论一下哪种架构更符合未来云的发展趋势。
114 2
微服务与单体架构:争议与未来趋势
|
10月前
|
运维 自然语言处理 监控
微服务系列 1:服务化框架落地的挑战和核心需求
如果公司没有一套规范化的流程和服务化框架,那么公司内部的各个业务团队、部门之间的技术体系就会越走越远,从而会给公司的服务端系统的稳定性和可运维性带来很大的挑战,所以就需要一个统一的微服务架构的实践统一解决当前的架构问题,防止架构腐化,从而提升我们后端系统的稳定性。这也是大多数互联网公司微服务化的意义所在。
|
监控 架构师 中间件
微服务架构转型的一把手需要具备哪些能力?
微服务架构转型的一把手需要具备哪些能力?
126 0
|
运维 监控 安全
持续改进微服务
公司构建大中台之后的事情。
91 0