Page 45 - 《软件学报》2021年第5期
P. 45

崔海涛  等:面向微服务架构的开发组织适应性评估框架                                                      1269


                 能性方面有深入的了解,这就对开发人员提出了更高的要求.
                    因此,有经验的开发团队可能更容易获取使用微服务开发带来的效益,而缺乏技能和经验的团队更建议使
                                       [4]
                 用传统的单体架构进行开发 .在将一个商用系统使用微服务架构进行重构的过程中,Armin Balalaie 等人                            [34] 发
                 现,公司需要向新手开发员讲解有关微服务的概念和技术,这浪费了大量的时间但效果并不理想.因此他们认
                 为,公司需要由技能熟练且具有开发微服务经验的人来组建团队.
                    解决方案:当时间充裕时,对那些新手开发人员进行培养,让他们对微服务的概念有一定的了解以及掌握那
                 些为了完成开发所需的工具和库            [34] ;而当时间有限时,由那些在微服务的开发中有着丰富经验且技能娴熟的开
                 发人员组建开发团队将更有成效;微服务宣传的技术异构性具有很强的迷惑性,多种技术和工具可供选择似乎
                 是一个不错的优势,但是掌握这些技术将给开发人员带来很大的压力,公司应该对不同的微服务开发做出不同
                 的技术选择标准.
                 3.1.6    DevOps
                    DevOps 由 Development(开发)和 Operations(运维)组合而成,它是一组实践,其目的是打破开发人员和运维
                 人员之间的壁垒,在保证软件质量的前提下,尽可能减少修改系统和将系统修改部署到生产环境中的时间.持续
                 交付(continuous delivery)和持续监控(continuous monitoring)等任何能实现上述目标的技术都被认为是 DevOps
                 实践 [34,35] .
                    微服务架构与 DevOps 是相辅相成的.尽管在单体架构中,DevOps 也可以进行应用,但微服务所提倡的小型
                 团队,使得 DevOps 的实施更加有效.同时,每个微服务可能都拥有一个单独的后端,这些单独的后端由不同的团
                 队使用不同的技术开发,如果没有 DevOps,由此产生的复杂性会变得难以管理.
                 3.1.7    通   信
                    通信可以分为同步通信(会议、视频、电话等)和异步通信(邮件、短信等)两种,团队中良好的通信可以提
                 高软件过程的质量      [36,37] .当团队中有 M 个人时,需要建立 M(M−1)/2 条通信路径,例如 2 个人仅需建立 1 条、5
                 个人建立 10 条、10 个人则需要建立 45 条(如图 5 所示).这代表团队成员越多,通信开销和管理开销就越多.正
                 如 Richard Hackman 所说,大型团队通常只会浪费每个人的时间              [38] .而微服务所提倡的小团队恰恰降低了通信
                 开销,使团队更容易保持凝聚力.



















                                             Fig.5   M personal communication paths
                                                 图 5   M 个人时的通信路径

                    Chen [30] 在为博彩公司 Paddy Power 使用微服务架构实现 DevOps 和持续交付时发现:客户现在可以直接与
                 负责相关微服务的团队中的人进行通信,而不需要再找微服务系统的负责人.这有助于开发人员做出更快的响
                 应,从而缩短开发周期.因此,一些研究人员认为,微服务对组织的通信带来了优势.
                    然而,有些研究人员认为,使用微服务架构给通信带来了挑战                     [13,39] .文献中关于微服务中通信问题的讨论存
                 在差异的原因在于侧重点不同:在一个独立的微服务开发团队内部,开发人员之间的通信开销减少;而在不同的
   40   41   42   43   44   45   46   47   48   49   50