为什么微服务从未被技术雷达“采纳”?

如今,微服务在许多组织中发挥着重要作用。自从James Lewis和Martin Fowler发表了那篇开创性的文章后,微服务也随之声名鹊起。此后,Sam Newman也撰写了相关著作并举办了许多讲座,ThoughtWorks、Netflix和Google的人,还有许多其他组织和个人也纷纷发表文章,进一步推动了微服务的发展势头。微服务很快就进入了ThoughtWorks技术雷达的Trial(试验)环,但一直以来,微服务都未进入Adopt(采纳)环。这篇文章便是想探讨一下,为什么微服务一直没有为技术雷达所“采纳”。

Adopt环有意把标准设置得很高

首先,一起回想一下雷达上“试验”环和“采纳”环的定义。“试验”意味着相应技术已经可以供企业在自己的系统中进行尝试。表示我们在已经或多或少地将该技术投入生产,而且相信该技术是稳定的,知道如何以及在何处使用该技术。而进入雷达“采纳”环意味着,我们认为在适用的情况下这种技术是首选解决方案。例如,对于数据库,Neo4J就是一种进入了“采纳”环的图形数据库。这并不意味着所有数据都应该放入图形数据库中,而是意味着当你想使用图形数据库,Neo4J就是理想之选。

考虑到上述定义,我们为何不将微服务或微服务架构放入“采纳”环?毕竟,微服务经常作为各种会议和文章热议的话题,也有越来越多的组织正在转向采用这种架构风格,ThoughtWorks团队已经成功地将微服务用于许多项目。

我们未将微服务放入Adopt环,有多种原因。一部分原因在于“采纳”环的定义,另一部分原因则在于微服务本身。我们先从技术雷达的特定问题谈起。

将某种技术放入“采纳”环是一种非常强烈的表态。我们不希望在考虑做出这种建议时,存在太多让我们举棋不定的因素。将某种技术放入“采纳”环意味着,我们确信对于一些显而易见的情况来说,采用这种技术是正确的选择。在考虑微服务时,虽然它有一些明显的优点,但同时存在成本问题。对成本与效益的权衡因组织而异;组织的成熟度、领域和其他因素可能会影响可用的开发资源。从这个方面来讲,我们不能做出采用微服务的建议,技术雷达对于“采纳”的定义不应当模棱两可。

更重要的是,另一方面,将某种技术放入“采纳”环就要求,这项技术应该可以在各种成熟度范围内的客户和一般企业之中普遍采用。例如,如果某种技术适用于初创企业,但不适用于大型企业,就不应该放入“采纳”环,一个突出的例子是技术公司广泛应用的分布式版本控制系统。我们没有将这种系统纳入到“采纳”环,因为当时许多企业仍在努力采用基本的源控制。我们认为从一无所有到分布式版本控制的飞跃太大了,不能做出采用该系统的强烈建议。我们最终还是将Github放入了Adopt环中,但那是几年之后了。

并非所有组织都适合采用微服务

最后,正如Martin Fowler在一篇关于微服务的文章中所指出的,在考虑采用微服务之前,需要在持续交付和基础设施自动化实践等方面达到一定的成熟度(也许不需要太高)。然而,对于许多组织而言,要达到这种成熟度仍然力所难及。微服务会增加操作负担,因为有更多东西需要监控和生成警报,还有更多东西需要部署。在这方面,全面的自动化和持续交付实践至关重要。

此外,微服务架构还具有一些在单体式应用程序中完全不可能出现的错误模式。微服务系统本质上是分布式的,业务流程通常通过多项微服务的交互来完成。在单体式应用程序中,这些业务流程通常在同一流程边界内执行,从而可以执行传统事务并能确保全部执行或全部不执行。虽然我们可以为所有这些问题提供解决方案,但不可忽视的是,微服务方法确实会引入这些问题并需要处理。因此,需要在微服务方法增加的灵活性和单体式方法的简单性之间进行权衡(这种权衡很常见),尤其是在单体式应用程序结构完善的情况下,从灵活性中获益不多的应用程序不适宜采用微服务架构。

微服务架构的关键设计决策是在服务之间设置边界。虽然有界上下文肯定能为设置适当边界位置提供有效指导,但是仍然存在选择,而选择错误会使系统变得更复杂。对于某个新领域而言,边界的设定会比较模糊,因此在未进一步明确领域和适当上下文之前,有理由暂不开始采用微服务架构。

微服务对企业来说仍然非常重要!

现在,你可能想知道我们为什么推荐微服务架构,或者我们是否仍然推荐此架构。灵活性、独立的可扩展性、不断演进的特性、强大的封装仍然是微服务不可不说的优点。这些优点已经在其他文章中进行了详尽的阐述。我们仍然坚定使用微服务架构,以扩展我们对这种架构的理解,并继续探索解决本文所提到问题的工具和方法。实际上,来自ThoughtWorks的Zhamak Dehghani最近发表了一篇关于将单体式应用程序分解为微服务的文章。但是,该方法的成本和缺点以及执行该方法所需达到的组织成熟度水平正是微服务很可能永远无法进入“采纳”环的原因。

本文翻译自ThoughtWorks全球首席技术官Rebecca Pasrsons的《Microservices in Adopt?》一文。Rebecca将在3月15日来到技术雷达十周年峰会现场,与众位国际软件巨匠一同讲述技术领域的十年趋势变革。现在购买可享受限时七折票!

 

Share

CTO想对IT女性说:你不是异类

“想在IT行业工作的女性仍然会觉得自己是异类,或者难以被男同事所接受,这种现状亟待改观。”——ThoughtWorks CTO Rebecca Parsons

前不久,我有幸在哈佛大学的某次会议上,向来自全美40所高校的IT专业大学生发表了一次演说。能被这群计算机科学领域的未来之星看作行为榜样,是我莫大的荣幸。当我刚刚开始我的职业生涯的时候,从事IT行业的女性寥寥无几。而在我的学生时代,还存在诸如女性天生不适合和数字及科学打交道的偏见。这个情况已经有所改观,现在这种说法已经不为公众所接受了。在哈佛,主修计算机科学专业的学生中,女生的比例达到了28%,而在全美高校中,这个比例是20%。然而,我认为这个比例还不够高,女性在踏入职场尤其是IT行业时,仍然需要面对诸多障碍。

每每与年轻人畅谈我的IT职业生涯时,我总会给出以下三条忠告:

  1. 你不会因为喜欢数学、科学、技术、计算机而成为异类。追寻你想要的而不要为自己感到抱歉,你会明白拥有激情非常重要。
  2. 确保你能时刻保持现状,要对自己学习新事物的能力有信心。你并不需要了解所有技术的每个方面。但是你应该在保持眼界宽阔的同时,还能在必要时深入特定的细节。
  3. 想要什么就说出来,否则别人永远不知道你感兴趣的是什么。

上述三点在当今社会尤其重要。

在业界和学术界从事软件工作多年后,我来到ThoughtWorks成为一名高级开发人员。后来我去英国开办了ThoughtWorks在当地的分支机构。当我回到美国后,就升职为首席技术官了。我很幸运在英国工作的期间能和一群非常支持我工作的同事共事,他们不但提高了我的专业素养,还帮助我明确了个人目标。得到拥戴对我坐稳现在这个位置至关重要。我早先意识到的另一个重要事情是,如果别人不知道你能做什么,你也不太可能对自己的目标一以贯之。能向决策者阐明你的目标,并且有人能站在你的立场上支持你,是你成功的关键。

提升女性在IT行业的工作地位是雇主和雇员共同的职责,但是二者间也存在着微妙的平衡。我所在的公司在全球12个国家拥有2800名雇员。我显然无法对每个人负责,所以单个员工能找到自己的兴趣点,明白个人诉求显得尤为重要。然而,组织上在考虑升职人员的时候也要做到广撒网,做到常常扪心自问是否还有哪位女员工我们以前没有考虑到。

现如今的最大挑战是,人们并没有完全意识到存在于他们潜意识中的职场歧视。人们仍然倾向于在招聘时雇佣和自己相似的人,这对女性从业人员是不利的。公司内的那些传统的条条框框依然在女员工的升职之路上制造障碍。那些有志于从事IT行业的年轻女性仍然感觉自己是异类,或者难以被男同僚们所接受。这个现状亟待改观。一个必要的改变是要知道持有偏见并不是多么罪大恶极的事情,因为所有人都或多或少有过这样或者那样的偏见。拒绝承认偏见的存在,甚至阻碍消除偏见的行为,才是真正的罪恶。

曾经也有人问过谁是我的榜样。随着时间的流逝,虽然具体的榜样人选不尽相同,但是他们都具有不变的特质——拥有好奇心并勇于去探知。虽然已经有很多女性在从事这个行业,我仍然深信IT业需要更多的女性从业者。我们不但需要有能勇于提拔女员工的IT企业,还需要个人能在职业生涯一开始就一直保持从事IT事业的热忱之心。

你认同人们潜意识中对女性IT从业者的职场歧视是现今的最大挑战么?

如果你足够聪敏,有志于在软件行业创作出能够改变世界的惊世之作,加入我们吧!

Share

提升女性在技术会议中影响力的三个想法

在上一篇文章里,我谈及了在IT领域获得更多的女性领导者的挑战。另外一个经常被忽略的问题是,技术会议如何能保证更多的女性讲师和参会者。与男性相反,很少有人跟我讨论在这个男性为主导的技术行业中,女性的上升瓶颈是什么。而我经常参加各种座谈会和讨论,内容则是关于领域特定语言、技术架构的进化和数据的角色以及数据科学在社会部门的应用等。抛开所有的先入之见,我一直在和我的技术同行平等交流。但为什么在技术大会中还是缺少强大的女性讲师阵容呢?

这要从会议的计划流程说起。有些技术大会是邀请制的。一旦你作为女性讲师进入了这个会议的圈子,常常被各种会议组织者邀请就不足为奇了,因为他们都想获得性别平衡。

遗憾的是,我们经常发现只有很少的女性会去提交演讲题目。其实大会的策划者已经趋向于对参会者和讲师进行完全匿名的审核,这样理论上摒弃了所有对讲师的偏见。实质性的反馈也会帮助所有的提交者改进他们的内容。但是,这些只是积极的步骤,调整审核的流程并不能解决提交者短缺的问题。更要解决的问题是如何扩大提交演讲的女性的数量。以下是一些关于提高这个数量的实际建议。

跳出舒适区

一个解决方案是,确保对文章和报名的征集能够广泛的发布到整个技术社区。会议组织者可以寻找一些不同的影响圈(不要局限于常见的那些),这样就可以找到更多样化的目标群体,然后鼓励他们报名。研究表明,通常女性不愿意毛遂自荐,而这令人不安的趋势也影响了会议讨论的话题提交。

帮助和激励

会议方很难确保女性讲师的数量,因为资源池就是有限的。一种主动提升女性讲师数量的方式是,让她们第一次先和有经验的讲师结对,以获得支持和鼓励。这样的合作方式可以让女性分享这个舞台,减少压力并为其提供精神上的支持。公开演讲(特别是当听众大部分都是男性时)并不是件容易的事,但是提供一个有经验的肩膀去依靠,会极大地促进女性走向演讲台前的麦克风。我们的职责就是多去鼓励女性,促使她们迈出提交想法和专业知识的第一步。很多会议用的方法(开放对于议题的报名,然后等着大家报名)并不会产生一个多样化的候选人资源池。与其等待着报名,不如先去找到她们。

多样化的方法

例如,我即将参加的位于湾区的技术大会FlowCon,在他们的演讲者花名册里,女性演讲者达到了40%。组织者通过将特定邀请和公开提交两种方式有效的组合在一起实现了这份令人印象深刻的花名册。所以,最终的责任还是在会议组织者身上,要扩大搜索范围而不能只关注常见的地方。

解决方案就在我们面前,虽然需要更多的努力来实现。如果会议组织者关注且在乎多样性,那它就是可以实现的。如果我们共同激励和支持下一代女性讲师,将会拓展我们的领导力。新的解决方案、新的视角、新的思路以及新的思想者的声音等待着被我们听到。让我们一起伸出援助之手吧。

Share