微服务大规模化,面临的挑战?

前言

曾经看过《改变自己》的一篇文章《规模化思考》,讲述了对于某件事情,我们能否从十倍或者百倍的角度,思考其规模,从而在一个相当长的周期内,考虑价值的投入产出比

最近,看到了Susan Fowler的演讲视频《Microservice Standardisation》,分享了她在Uber作为SRE,经历从800+ 服务到接近2000+服务的运维心得,并提出了一些有代表性的规模化观点。

识别二维码观看Susan Fowler的演讲视频《Microservice Standardisation》,地址https://youtu.be/rcZybDPxlmk

而这也提醒了我,对服务规模化的思考(目前工作在大型传统企业,服务的规模化会成为下一个阶段所面临的挑战)。

微服务经历了过去几年的快速发展,帮助很多组织解决了复杂系统的伸缩性、灵活性、以及快速响应的问题后,那下一个阶段的挑战在哪里?

规模化的思考



如果从规模化的角度考虑,对于一些大型组织(尤其是传统行业),拥有成千上万的微服务后,会面临哪些挑战? 是个体能力的提升,组织的差异化还是流程的动态演进?

我们常说,天下大势,分久必合,合久必分,在经历了松散的细粒度架构演进,未来是否还需要集中化

如果标准化,是否从某种程度违背了微服务的初衷?微服务概念的诞生,不是为了提升复杂系统的交付效率,才基于分而治之的思想差异化演进吗?

如果需要标准化,从架构、实践和组织三个维度展开,是权宜之计还是一劳永逸?

规模化的挑战



参考Susan的演讲,我总结了服务规模化后可能面临的挑战。

1

组织的孤岛效应

根据康威定律以及康威逆定律,组织的沟通结构与其设计的系统架构是对等的。

如果存在1000个服务,那么得到的将有可能是与其对应的1000个小团队。在充分享受团队自组织带来优势的同时,也要辩证的看待团队间的差异性。不同团队的服务实践如何?他们是如何测试、部署、监控的?

作为开发成员,如果换去另一个团队,在框架、工具百花齐放、层出不穷的今天,是否大大增加了上手的成本。当服务数量激增后,需要专业的QA/Ops/SRE,组织内是否能找到足够多的这样资深的专业人员?

所以,这其实是速度与成本的博弈。

2

失败处理的成本

根据墨非定律,“凡是可能出错的情况,必定会出错”。

随着服务的数量增加,系统失败的几率会大幅增加。

每一个服务的失败都有可能导致故障。虽然我们的目标是期望每个服务都能够互不依赖,自适应,高度容错,但是必须找到有效的方式来确保服务可用。

因此,处理失败的成本大幅增加

3

优势资源的竞争 

微服务系统就像是自然界的生态系统,对资源的使用,关系复杂且微妙。

当有成千上万的服务时,资源如何分配?从业务角度分析,哪个服务的优先级高?哪个团队应该优先获得更优秀的资源?包括但不限于优秀的工程师、资金、软件、硬件等等。

任何时候,资源都不是免费的。

当只有几个微服务时,这些问题都不会是问题,但随着服务数量的增加,这种协作与竞争的关系会愈发明显。

4

独立性与技术债

自由选择编程语言,自由选择数据库......听起来激动人心,但如何长期维护并保证可持续发展,是一个值得研究的话题。

随着微服务的大热,组织中许多人员对微服务过度追捧。

很多人认为微服务对应着松散的组织结构,只要能独立交付,团队可以做任何他们想做的。从技术角度而言,技术日新月异的变化,会产生各种大大小小的技术债,而随着采用微服务化在技术上的多样性,将变得难以维护。

微服务确实意味着自由与独立。但在大规模的组织中,过度的独立性必然带来高昂的管理与维护成本。从工程角度而言,当拥有成千上万的服务时,集中式的管控平台并不像我们认为的那样糟糕,确保大部分团队能使用相同的方式、相同的标准,能够低成本运作。

5

团队的信任危机 

作为服务的交付团队的负责人,你可能有必胜的信念。充满豪情壮志,愿意带领团队遵循各种最佳实践、完美的实现所负责的服务。

但是,你永远无法保证,依赖的所有上下游团队,也能按照同样的标准实现服务。这是现实。

而且,随着服务关系越复杂,依赖越多,出问题的几率越大,信任危机愈发明显

6

总结

微服务经历了过去几年的快速发展,帮助很多组织解决了复杂系统的伸缩性、灵活性、以及快速响应的问题后,那下一个阶段的挑战在哪里?

个体能力的提升,组织的差异化运作还是流程的自适应演进?

本文从组织、个体、技术、团队以及资源等5个方面探讨了服务规模化面临的挑战。

来源:中生代技术

原文链接

时间: 2024-09-17 05:46:24

微服务大规模化,面临的挑战?的相关文章

大数据面临的挑战:当大数据遭遇云计算

本文讲的是大数据面临的挑战:当大数据遭遇云计算,据IDC的报告,未来十年全球大数据将增加50倍.仅在2011年,我们就将看到1.8ZB(也就是1.8万亿GB)的大数据创建产生.这相当于每位美国人每分钟写3条Tweet,而且还是不停地写2.6976万年.在未来十年,管理数据仓库的服务器的数量将增加10倍以便迎合50倍的大数据增长. 毫无疑问,大数据将挑战企业的存储架构及数据中心基础设施等,也会引发云计算.数据仓库.数据挖掘.商业智能等应用的连锁反应.2011年企业会将更多的多TB(1TB=1000

微服务部署面临的挑战

以前,我们邀请几位嘉宾讨论了他们在开发微服务时遇到的挑战,比如Fred George或Dustin Huptas和Andreas Schmidt.近日,Usman Ismail参加了一场小组会议,讨论了微服务持续交付面临的挑战,并决定随后详述其中的部分重点内容.他首先讨论了微服务其中一个基本原则的缺点,那允许大型团队通过快速原型和迭代以一种更加敏捷的方式推进(软件)开发: 不过,微服务显著增加了开发团队的运维和工具负担.每个服务都需要一个部署管道.一个监控系统.自动报警.轮流电话值班,等等.对于

微服务治理实战:服务流的自动化构建与应用

本文根据DBAplus社群第89期线上分享整理而成.   讲师介绍  张真 宜信技术研发中心高级架构师   目前负责金融基础服务.微服务架构演进/计算平台.DevOps平台等. 曾任IBM,负责云计算.应用服务器等,拥有多个国际专利.开源社区活跃贡献者.   主题简介: 服务流及微服务架构下服务流构建的挑战 自动化构建(微)服务流 自动化构建服务流的应用场景   先谈谈这个话题的早期背景,作为一个发展了十年的企业,我们公司内部存在大量的系统,这些系统可能包括多种架构,多种技术栈,它们互相关联,互

为什么公司采用微服务以及他们如何获取成功

本文讲的是为什么公司采用微服务以及他们如何获取成功[编者的话]微服务架构设计是最近讨论最热的话题.随着最近几年互联网行业的迅猛发展,随着公司或者组织业务的不断扩张,需求不断的增加以及用户量的不断增加,单块架构的优势已逐渐无法适应互联网时代的快速变化,面临着越来越多的挑战.我们是否要开始使用微服务架构来避免单体式架构带来的挑战?微服务架构真的是我们想要的吗?什么样的场景应该拥抱微服务架构?本文从非技术的角度阐述了对微服务的理解,为什么公司选择微服务架构设计,以及分享使用微服务架构的成功经验. 这篇

Java微服务开发指南 -- 使用Docker和Kubernetes构建可伸缩的微服务

使用Docker和Kubernetes构建可伸缩的微服务     从现在开始,我们将从更高的维度讨论微服务,涵盖了组织敏捷性.设计和依赖的思考.领域驱动设计以及Promise理论.当我们深入使用之前介绍的三个流行的微服务框架:Spring Boot.Dropwizard和WildFly Swarm,我们能够使用它们开箱即用的能力去构建一个暴露或者消费REST服务的应用,能够使用外部环境对应用进行配置,可以打包成一个可执行的jar,同时提供Metrics信息,但这些都是围绕着一个微服务实例.当我们

《Spring Cloud与Docker微服务架构实战》配套代码

不才写了本使用Spring Cloud玩转微服务架构的书,书名是<Spring Cloud与Docker微服务架构实战> - 周立,已于2017-01-12交稿.不少朋友想先看看源码,现将代码放出. 本次放出的代码: 共计70+个DEMO 覆盖Eureka.Ribbon.Feign.Hystrix.Zuul.Spring Cloud Config.Spring Cloud Bus.Spring Cloud Sleuth.Docker.Docker Compose等. 1-11章代码地址: ht

微服务与SOA架构

本文讲的是微服务与SOA架构[编者的话]本文是Mark Richards写的微服务与面向服务架构完整报告. 基于服务架构的世界 微服务和SOA都被认为是基于服务的架构,这意味着这两种架构模式都非常强调将"服务"作为其架构中的首要组件,用于实现各种功能(包括业务层面和非业务层面).微服务和SOA是两种差异很大的架构模式,但是他们仍有一些相同的特征. 所有基于服务的架构的一个共性是他们一般都是分布式架构,也就是服务组件都是通过远程访问协议来实现的,例如REST.SOAP.AMQP.JMS.

微服务实战(一):微服务架构的优势与不足

本文讲的是微服务实战(一):微服务架构的优势与不足,[编者的话]本文来自Nginx官方博客,是微服务系列文章的第一篇,主要探讨了传统的单体式应用的不足,以及微服务架构的优势与挑战.正如作者所说,微服务架构更适合用于构建复杂的应用,尽管它也有自己的不足. 这篇文章作者是Chris Richardson,他是早期基于Java的Amazonite EC2 PaaS平台CloudFoundry.com的创始人.现在他为企业提供如何开发和部署应用的咨询服务.他也经常在http://microservice

微服务-分解应用程序从而实现更好的部署特性及可伸缩性

本文是我翻译INFQ上的一篇文章.作者Chris由简入深的讲解了微服务的来龙去脉.使用场景.优势劣势.以及现有技术栈向微服务架构的重构步骤.是一篇微服务主题的不可多得的好文. 原文地址:http://www.infoq.com/articles/microservices-intro?utm_source=infoq&utm_medium=popular_links_homepage#.U4-QbLLNKmI.gmail 微服务:分解应用程序从而实现更好的部署特性及可伸缩性 本文描述了越来越受欢