微服务的这些优缺点 你准备好了吗?

  • 来源:TechTarget中国
  •  2015-11-23
  •   浏览 618 次

模块化的由小的组件或服务组成的应用程序,即所谓的微服务,正在取代传统的单一应用程序。尽管微服务的做法非常适合云,但微服务所拥有的优缺点是所有企业都应该考虑的问题。

基于微服务应用的一个最大的优点是,它们往往比传统的应用程序更有效地利用计算资源。这是因为它们通过扩展组件来处理功能瓶颈问题。这样一来,开发人员只需要为额外的组件部署计算资源,而不需要部署一个完整的应用程序的全新迭代。最终的结果是有更多的资源可以提供给其它任务。

微服务应用程序的另一个好处是,它们更快且更容易更新。当开发者对一个传统的单体应用程序进行变更时,他们必须做详细的QA测试,以确保变更不会影响其他特性或功能。但有了微服务,开发者可以更新应用程序的单个组件,而不会影响其他的部分。测试微服务应用程序仍然是必需的,但它更容易识别和隔离问题,从而加快开发速度并支持DevOps和持续应用程序开发。

第三个好处是,微服务架构有助于新兴的云服务,如事件驱动计算。类似AWS Lambda这样的功能让开发人员能够编写代码处于休眠状态,直到应用程序事件触发。事件处理时才需要使用计算资源,而企业只需要为每次事件,而不是固定数目的计算实例支付。

使用微服务的缺点

尽管有种种优点,微服务架构也受到了一些批评。

虽然微服务架构将应用分解成开发人员可以更轻松地管理和扩展的组件,但它们并不会让整个应用程序变得更容易构建。微服务应用程序仍然需要提供相同的功能,并执行与整体相当的功能。

更重要的是,在一个应用中的各个微服务组件使用API来交换数据。API的改变可能引入差错,例如API版本之间消息格式的差异。此外,由于更多的组件试图交换信息,可能会发生网络拥塞。

其次,测试和部署微服务的应用程序也可能更复杂。推出微服务的应用程序不只是运行一个.exe文件的问题。相反,一个微服务部署通常要求一个详细的脚本进行提供,加载,逻辑连接,然后启动必要的虚拟化实例组件。这是一个复杂的过程,而要移植这样的部署则更具挑战性。

最后,许多微服务的应用程序使用的补充服务,如负载均衡,自动扩展和事件驱动计算,这使得开发者依赖于云提供商提供的可用性和性能。这种对外部服务和API的相互依赖也可导致可靠性和版本的问题。

微服务为软件开发人员提供了一个新的模式,使他们能够将复杂的企业应用开发成一系列的相关功能组件。虽然这些组件对于云部署来说很理想,但开发人员必须在部署之前仔细权衡微服务的优点和缺点。

To Top