什么是微服务架构?


达芬奇密码提问于 2018-08-10 16:18
1 个回答
  • 阿凡达2018-08-10 16:27

    微服务架构是解决企业 IT 长期演进的一种方案,适用于迭代很快的系统,10年不变的系统就算了。

    • 什么是微服务

    简述 Martin Flower 大神的系统阐述:

    1. 微服务是一种架构风格,也是一种服务;
    2. 微服务的颗粒比较小,一个大型复杂软件应用由多个微服务组成,比如Netflix目前由500多个的微服务组成;
    3. 它采用UNIX设计的哲学,每种服务只做一件事,是一种松耦合的能够被独立开发和部署的无状态化服务(独立扩展、升级和可替换)。
    <figure><figcaption>微服务架构示例</figcaption></figure>

    采用微服务架构的主要收益:

    1. 效率高:一个微服务基本是一个能独立发布的应用服务,因此可以作为独立组件升级、灰度或复用等,对整个大应用的影响也较小,每个服务可以由专门的组织来单独完成,依赖方只要定好输入和输出口即可完全开发,甚至整个团队的组织架构也会更精简,因此沟通成本低、效率高。
    2. 灵活性:根据业务的需求,不同的服务可以根据业务特性进行不同的技术选型,是计算密集型还是I/O密集型应用都可以依赖不同的语言编程模型,各团队可以根据本身的特色独自运作。
    3. 高可用:服务在压力较大时,也可以有更多容错或限流服务。

    微服务架构确实有很多吸引人的地方,然而它的引入也是有成本的,它并不是银弹,使用它会引入更多技术挑战,比如性能延迟、分布式事务、集成测试、故障诊断等方面,企业需要根据业务的不同的阶段进行合理的引入,不能完全为了微服务而“微服务”

    * 以上内容摘自:《云原生应用架构实践》,本书第5章也会对如何解决微服务技术挑战提供不同的方案。

    • 怎么做微服务

    微服务,就是系统划分成非常小的模块,而且这些模块都可以通过一种标准的服务接口进行沟通。我们做软件的,要向人类社会学习。为什么我们人类社会有这么发达的文明呢。是因为我们基于人这个最小的单位,设计了标准的语言、文字、货币、法律。微服务技术平台,也需要基于微服务这个基本单元,构建多维度完整的解决方案,让企业的架构就可以像人类社会一样持续发展。

    完整的解决方案,网易云认为,应该包括微服务治理、API 网关、容器服务、DevOps、AIOps、和测试服务等 6 个模块,所以,网易云轻舟微服务的功能是这样设计的:

    <figure><figcaption>网易云轻舟微服务产品功能
    </figcaption></figure>