2

服务端架构演进史 - 只会一点java

 1 year ago
source link: https://www.cnblogs.com/dennyzhangdd/p/16919409.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

正文

当我们入行成为一名后端程序员时,就很羡慕架构师这个岗位的人,视同神一样的存在。而要成为一名后端架构师,必会技能就是分布式架构。今天我们不讲各种组件怎么去实现分布式细节,而是从分布式服务的这一角度来看历史的发展。 目的就一个:构建并丰富自己的架构知识体系。(普通人差大神多少?选对方向,持之以恒而已。)

注:本文是笔者最近读了周志明大神(《深入理解Java虚拟机》的作者)的凤凰架构,才有了这篇总结。老规矩,膜拜一下大神先:

584866-20221205185201321-705032145.jpg

二、演进史

老司机可以直接跳到第三节,看总结即可。

2.1 单体架构

概念:“单体”只是表明系统中主要的过程调用都是进程内调用,不会发生进程间通信,仅此而已。

优点:一切资源都在一个进程内调用。简单方便易实现

缺点:无法做到隔离、技术异构

2.2 SOA架构(Service-Oriented Architecture)

概念:面向服务的架构是一次具体地、系统性地成功解决分布式服务主要问题的架构模式。

优点:为了解决企业级分布式服务的各种问题,第一次形成了统一的技术设计原则和SOAP协议簇。

缺点:SOAP 过于严格的规范定义带来过度的复杂性

2.3 Microservices微服务架构

概念:微服务是一种通过多个小型服务组合来构建单个应用的架构风格,这些服务围绕业务能力而非特定的技术标准来构建。各个服务可以采用不同的编程语言,不同的数据存储技术,运行在不同的进程之中。

优点:第一次在软件层面提供了解决服务治理的全家桶,比如springCloud。

缺点:程序代码耦合了技术组件,有一定的代码侵入

2.4 Cloud Native云原生架构

概念:从软件层面独力应对微服务架构问题,发展到软、硬一体,合力应对架构问题的时代,即“后微服务时代”。

优点:服务治理作为基础设施分离,实现了业务和技术的解耦。

缺点:主流实现依赖k8s环境,上车较为复杂;引入“服务网格”(Service Mesh)的“边车代理模式”(Sidecar Proxy),会有性能损耗

2.5 Serverless无服务架构

概念:如果说微服务架构是分布式系统这条路的极致,那无服务架构,也许就是“不分布式”的云端系统这条路的起点。

优点:服务上云端(快速部署,弹性扩容),使用云计算技术、实现函数式业务能力。业务完全不用关心技术(数据+计算都交给第三方)。

缺点:目前看来,只能算是一种云计算架构(函数计算),还未成熟,不能替代复杂业务应用

大体可以分为四个大阶段:

  1. 单体架构时代(2006年之前):包括原始的分布式时代,DCE体系分布式技术体系的提出,但由于计算机性能发展很快,单体架构是主流架构。
  2. SOA时代(2006-2016):这十年是各大厂商涌入SOA的黄金年代。可惜的是,封闭式的收费模式最终被开源的spring打败,泯灭在了历史的尘烟。
  3. 微服务时代(2016-至今):
    • 【2016-2020】2016年以SpringCloud为代表的初代微服务时代蓬勃发展,
    • 【2020-至今】在2017年Kubernetes一统容器架构后,Cloud Native出现,典型代表Istio,在国内2020年开始火起来。可以称为后微服务时代,目前看来再火个5年问题不大。
  4. 无服务时代(2018-至今):从2010年开始,随着云计算的快速发展,2018年阿里腾讯加入无服务架构(Serverless)阵营,并相继开放了商业版FAAS产品,可以称为未来的服务架构,目前并未成熟,不能替代复杂业务服务
584866-20221205175626914-910082992.png

=========参考===================

http://icyfenix.cn/ 凤凰架构  周志明。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK