面向服务(Service)的架构

1. 为什么要采用面向服务的架构

    以前,有很多系统,所有的功能都部署在一起,某一个模块都功能做了修改,都要统一到一起,整体编译部署。每一次增加新功能,都要严格测试,整体部署。需要到时间很长。

    而对于现在到很多互联网应用,需求变化很快,恨不得每天都增加新功能,而且,当用户多了后,还要面对巨大多吞吐量。为了适应这种变化和特点,面向服务的架构是一种比较不错的选择。

    其优势有:

    A、可扩展性

          将一个大系统切割成很多独立多小模块,小模块独立编译和独立部署,还能够水平的扩展,快速的增加处理能力

    B、管理上的好处

          独立的团队负责,模块设计的相对独立,并具备完备的文档。

          一个团队可以组织自己的服务产品线,保持自己的特色,与其它系统和部门依赖较少,甚至根本没有依赖。

          服务都遵循统一都入口方式,团队提供持续的,高可用和高可靠性的软件组件

    C、编程语言的中立

          多年来,我们使用的语言有很多,比如Java,C++,Python等,每个语言都有自己的优缺点,也没有一个语言是多面手。

          理论上,任何语言都能够实现服务,这样,服务之间交互都时候,可以只关心如何从服务中获取数据或如何使用服务,而不用关心是什么语言实现的。

2. 面向服务(Service)架构的一些原则

    面向服务架构中,各个功能模块都是以服务都形式展现和交互,服务将会众多,因此要遵循一些原则,以保证Service都高质量。

    A、像发布API一样都发布Service

          Service都易用性是十分关键的,每一个服务就是一个API,要提供明确清晰的定义,完备的文档,便于使用者了解和应用。

    B、发布必要的功能

          定义清楚将要对外提供的功能,直接对外公布,或者封装成多个后再公布。所有公开的部分要采用工业标准的协议或约定(比如,SOAP,XML等)

    C、服务的拥有者的责任

          拥有者对服务有高度的责任,保证服务每时每刻正确的运行,并且保证规定的要求。

          拥有者要定义清楚:计划容量,性能,监控,延时,吞吐量,安全和SLA

     D、允许有不可用时间

          系统要7x24的运行,维护的时候也不能关机,不能停止服务,然后,保证100%是十分困难的,总会有意外发生。因此可以允许有不可用的时间。

          不可用时间可以根据服务的特点有所不同,比如,重要的系统,直接影响客户体验的,应该用 秒 来衡量。

     E、SLA(Service Level Agreement)的确定

          每个服务都要确定SLA,并保证始终达到标准。越是重要的系统,SLA应该越严格。确定SLA的时候也要考虑依赖系统的SLA,不能高于依赖系统。

    

          

你可能感兴趣的:(工作)