阿里云云原生架构实践
上QQ阅读APP看书,第一时间看更新

3.1 服务化架构模式

服务化架构通常也称为面向服务的架构(SOA),即在通信双方(服务提供者和服务消费者)之间约定好服务规约,然后基于该规约发布和调用服务。服务化架构设计的核心价值主要体现在如下三个方面。

1.更好地面向业务(Business Oriented)

通信双方都是基于自己的实际业务需求来设计接口的(服务规约),所以具有更多的业务特性,阅读和理解也非常方便,容易在业务人员和技术人员之间共享。以会员服务为例,业务需要根据会员ID、电子邮件地址和手机号码查找会员、用户名和验证密码等,这些业务需求都会呈现在服务接口定义中。这样,开发人员即使没有全面阅读服务文档,也可以进行对应的代码编写和服务调用。

2.松耦合和灵活性(Loose Coupling & Flexibility)

双方在约定好服务规约之后,只要遵循该规约即可。除了该规约之外,彼此之间再没有其他的限制和约束,双方体现出很好的松耦合关系。如缓存服务,在约定缓存的服务规约之后,双方并不会过多地关心该缓存服务是如何架构、设计和实现的,是用C++语言编写的,还是用Rust语言编写的,等等。这体现出服务化架构模式的灵活性,即服务实现方只需遵循服务规约,根据团队的知识结构、业务特性自主选择合适的技术栈来完成对应的服务实现即可。

3.服务共享和复用(Shared Service)

服务通常是可共享的,多个服务消费者可以同时调用共享服务。当然,这其中可能会涉及安全和隔离等问题。共享化的服务可以带来非常多的好处,最直接的好处就是提升了服务的复用程度,降低了服务的成本。

在实际开发中,具体可用于实现服务规约的技术方案主要有三种,分别是服务接口定义、IDL定义和OpenAPI。