【51CTO.com原创稿件】互联网的不断发展,使得微服务在大型互联网架构中面临越来越多的挑战,微服务遇到了哪些技术挑战和组织架构挑战?又该如何应对挑战转化为微服务发展的机遇呢?基于此,记者在51CTO主办的WOTA2017全球架构与运维技术峰会上,对LINKEDIN资深软件工程经理罗轶民老师进行了专访。
罗轶民,现任LINKEDIN资深软件工程经理。前乐视美国视频平台技术总监以及Netflix视频内容平台技术负责人。有15年以上互联网公司(Linkedln,乐视,Netflix以及Paypal)技术开发,构架以及团队管理的经验。主要负责的领域是高并发后端服务构架,微服务构架,大数据平台构架等,以及端对端的整个产品开发。感兴趣的领域是视频,支付,互联网金融以及电商领域。
为什么使用微服务架构?
拿微服务跟单片服务做对比,单片服务是所有代码程序在一个巨大的软件包里,开发部署在同一个软件包进行;微服务是把巨大软件包分出很多独立服务,主要目的是随着软件规模的扩展,会产生很多问题,比如开发速度减慢,部署速度减慢,很微小的错误导致整个网站出现问题。
微服务采用分布化构架,它把大的软件分布成小的,在每个小的里面可以有独立的开发部署可以快速迭代,比较适用于大型的互联网公司流量比较大,需要快速开发及运作新的产品。
微服务面临哪些挑战?
微服务带来的挑战从技术方面分析,***,微服务是分布式的,分布式构架本身带来很多技术上的挑战,比如管理很多分散在不同地方的服务、代码。
第二,服务发现。可以理解为本来只有一个服务,找这个服务就可以完成。现在演变成上百个服务,必须有人管理,分配服务做什么事情,要找到服务给客户,服务发现变成很大的挑战。
第三,网络容错和延迟。可以想像当企业有几百个服务,这些服务互相有沟通,如果其中某一墙之隔的服务当负载量比较大时可能变成瓶颈,导致整个系统的延迟。
第四,测试方面的挑战。单片服务测一个,微服务要测无数多个,每测试一次挑战都非常大。
微服务带来的挑战从企业组织结构方面分析,***,单片服务是单向对应,不同服务团队对应特定的测试团队,一个人做好给另外一个人管理非常清晰。微服务从中心划分,每一个微服务团队必须负责所有单片团队里做的事情,包括开发、测试、部署,导致微服务的团队本身必须要跟传统的有区别,微服务团队有更多独立性,可以独立决定自己做的事情。微服务团队采用一步到位导向,只要能够提供一定的功能和结果,它内部有很多自由选择权。
第二,微服务团队导致测试跟部署或者一些传统的功能会消失,小时传统功能分散在微服务管理团队中,微服务团队要做更多事,实现更智能,对微服务本身技术是挑战,对管理层也带来管理挑战。
企业的组织构架往往会反映在技术构架中,微服务在企业内部是否能够成功很大程度上取决于企业的组织构架和技术构架是否能够匹配。
微服务的未来发展之路
微服务应用场景需要有大流量、高并发,需要用户增长迅速。有不同新功能推出的企业采用这种构架,这些企业没办法在传统的单片服务上走得更远,因为单片服务没办法处理巨大的流量。越来越多的互联网公司,特别是大型的互联网公司会采用微服务的构架。甚至一些新兴的公司,如果他们可以预知到以后会有大量的用户流量也会提前采用。随着各种各样开源工具的发展,选择开始构建微服务也并不是一项大的企业难题。
【51CTO原创稿件,合作站点转载请注明原文作者和出处为51CTO.com】