微服务的理解 —— 江湖往事

一、90年代 —— 一招半式闯江湖

8、90年代的时候,计算机刚开始疏疏落落进入一些人的视野,这些人在研究所、学校、银行这样的机构,那时中国人称计算机叫微机,因为那时候还是大型机的时代。至于计算机语言,basic、fortran、c、pascal等等为当时人们选择不多的古老语种,还没有什么java、python、php这些语言什么事,甚至大学里的学生还写着汇编程序,编译后的程序运行在一台微机之上,有简陋的光标式屏幕打印界面,或者控制台命令输入交互。异构语言之间的交互还不是当时之需,程序相对简单,只为了满足简单的录入存储与简单计算。

微软在90年代初推出了win31,那时候windows还是大名鼎鼎dos的附庸,可以通过dos键入命令启动进入视窗操作系统,进去之后人们最爱做的事情是打扑克与挖雷。虽然有了word,但中国人最爱使用的还是求伯君写的金山wps字处理软件,求伯君和西山居犹如一九三几年的红色延安一样神秘和令人向往。

后来出现了windows95、97,然后是第一个伟大的版本win98,这样一个操作系统配合着伟大的pc时代扑面而来,中关村的攒机贩子迎来了春天。

那时候面向对象犹如今天微服务,这个词很酷,也不容易一下子理解,你需要去翻不同语言的编程书,听不同的学习过面向编程的人士谈谈他们对面向对象不同的观点视野,懂面向对象跟会数据库设计三大范式是当时IT求职的高级名片,就像今天的hadoop或docker。

各种面向对象思想的语言层出不穷,windows已经与nix系操作系统分庭抗礼,分布式开始被人们讨论,90年代懂corba、com或com+是一件了不起的事,总之就要做一件事,怎么将不同语言编译出的组件能在进程内进行调用,甚至跨进程跨平台进行远程调用,就像本地调用一样。这是早期的分布式时代。

在dos时代,能够去一个学校的bbs站点,甚至连到外校的bbs站点,是一件很酷很爽的事情,好比一个穷家小子混入了皇宫后院,尽管那时候只有ASCII码字符拼接的界面,看bbs都是一对字符文字,打个mud游戏还需要靠脑补yy,社交就是简单的给dos终端的某个字符代表的某个人发一个文字信息,然后收到回复,两个人可以定期在网络上约时间“幽会”,跟QQ微信没法比。

但windows真的是pc时代的王者,它将WWW这个全新视窗带向世界,那个时代,只要写个网页架个网站都能有机会成为互联网几架马车,只要能注册电子邮箱就能拉到用户,那是互联网的黄金时代,人们疯狂的投钱,折腾着各种各样的事,能不能在网上买卖东西?能不能在网上找工作?能不能在互联网模式下生存?全世界都在为之疯狂,于是产生了泡沫。

二、00年代 —— 华山论剑

伟大的2000年没有像被洗脑过的70一代所期待的那么辉煌壮丽,但的确开辟了一个新时代,第一个网络泡沫没有阻止人们相信互联网的未来一片光明,电子商务已经给人洗了一次脑。为了电子商务,为了交易,出现了一个新名词叫XML,它是html的兄弟,但是不像Html那样只是外表光鲜,它有内容有内涵,还能够规约一些系统及系统及系统之间的事。于是业界开始搞一些跟CORBA不一样的事,事情能不能更简单明了一些,契约能不能声明式的,而不是与OS或者语言、厂商有联系变得更开放?于是有了XML-RPC,乃至后面出现的SOAP。

那个年代,耀眼明星不多,IBM、微软、苹果、甲骨文、SUN、Borland等如泰山北斗少林武当,它们为了一些不同的理念或面子也会争斗,不顾江湖身份,因此这些名门正派的撕逼和折腾也自然令吃瓜群众们万众瞩目。

SUN就和微软撕逼挺厉害,不过当时比尔盖茨应该就不怎么鸟麦克尼利,麦克尼利有些像大嘴巴,挺能造新闻吸引眼球。Sun有Java,还有Unix中的巨擘Solaris,Sun主要靠卖硬件服务器赚钱,是可以有与微软进行局部对标的资本,对了后来为了对着和微软干,还买了欧洲的一个office,经过几次改名和开源,最后变成了现在的openoffice。

Sun的另一个大杀器就是在Java之上建立的J2EE(现在叫JavaEE)帝国,号称企业计算的终结者,Sun就握着这些大杀器跟微软的Visual语言和COM+系进行对砍,微软靠着帝国赚来的钱粮雄霸天下,Sun靠着口号和台下的随众叫好声撑到了2009年,然后被麦克尼利的“好哥们”Oracle埃里森用区区74亿美金收购,而Sun最高市值曾到2000亿!

Sun的没落是必然的,在Unix硬件和系统大卖的时候,没有及早预见Linux和PC服务器时代的到来,不做居安思危状,反而处处要与业界大佬微软对飙,一定程度上迷失了做企业要赚钱的本分,结果被“剑气连枝”的“好哥们”给“收尸”,紫霞秘籍辟邪剑谱这些都被廉价给收了。

Sun虽然倒下了,但它曾经赔本赚吆喝的那些家伙什却是实打实的干货硬货。它最先提出了企业计算容器,即J2EE Server,WebLogic单凭同名应用服务器就撑起了一个大企业,更不用说如今开源免费的Tomcat,最初只是一个容器的参考实现。Java虚拟机已经遍布全球几十亿设备,Java持续雄霸编程语言市场排行榜n多年。可以说Sun推出了Java,这家公司对开源的一再示好,最终是开放成就了Java生态。

说到企业计算容器,不能不提就是EJB,这个容器组件化技术实现了诸多设计模式,要解决企业计算领域的诸多问题,理想很丰满,但现实很骨感,由于太重量级,从刚诞生之初被置于聚光灯下,到迅速陨落不过就匆匆数年,而一手终结它的,恰恰又是写过Expert One-on-One J2EE 这本书的Rod Johnson,在这本书中穷尽J2EE的设计模式,Rod Johnson也意识到J2EE的缺陷,03年他利用IOC造了个轮子——Spring,这个轮子撬动了Sun的J2EE帝国。

如果没有Spring,Java会怎样?首先做企业开发的java程序员会很苦逼,被重量级的J2EE穷尽折磨,其次是恐怕在互联网web端,会被能甩Java十几条街的什么语言框架给替代。

从GOF的设计模式,到J2EE的设计模式,人们都在探寻跨语言的问题解决“银弹”,以Session Facade为例,它的用途是将大型系统的非结构化接口封装到一个更加结构化的接口中,以减少随意性,减少系统的接口横截面,将细粒度的内部接口转化为更面向业务服务的初粒度接口,无论是企业计算还是互联网计算,系统面临的内部问题和对外开放问题道理都是一致的。

三、00后 —— 笑傲江湖

到06、07年,也就是Sun倒下的前几年,一个词又火遍了整个地球——REST,这个词不是从泰山北斗少林武当丐帮传过来,而是从互联网新贵五岳剑派流传起来,有ebay、amazon这些,这些家伙居然不用什么少林72绝技,而是研习了古龙的快,又有些像足金庸老爷子写的华山派兴起的剑宗,把名门正派的SOAP、WSI-这些气宗宝典都一一给弃之一边,而且他们已经有取代少林武当丐帮之势。

五岳剑派还抬出来Roy Fielding这位张无忌令狐冲式少帮主在2000年写的博士论文,论证REST的NB之处,意思是web的事情还是web来解决,曾经的少林武当丐帮都是过去式。

这股风一吹就是十几年,十几年过去了,REST已经深入人心,现在无论是互联网还是企业端,基本上不把自己贴个REST标签就不敢说自己是搞web的。

08年后,五岳剑派又推举了一面大旗叫“云计算”,这次他们声势浩大,连谷歌这个化外魔教都率先喊出了口号,另少林武当丐帮这些名门正派都大为震动,感到如果再不响应,恐怕以后只能看着这些帮派们喝酒吃肉了,于是也不失时机地照猫画虎,举起一面“私有云”的大旗,以跟新派划清领地界限。

云计算轰轰烈烈搞了10年,现在无论公有云还是私有云,都已经遍地开花,这其中涌现了不少技术,IAAS、PAAS、SAAS、hypervisor、docker、DevOps,曾经的狐疑已经变成了现实,令人无限感慨潮流的不可逆转,借用张爱玲《半生缘》的那句经典——“我们回不去了”。

是的,单体(monolithic)应用时代该过去了,微服务时代到来。

微服务的理解 —— 江湖往事相关推荐

  1. 谈谈我对微服务的理解

    微服务是一个近些年说的非常热的概念,尤其在互联网的大背景下,微服务的理论有机会被广泛实践.但是在实践过程中,大家对微服务的理解确大相径庭,到底要怎样做才能真正掌握微服务的架构理论呢?通过此文笔者想和大 ...

  2. 单体、集群、分布式、微服务概念理解

    单体: 单独的一个项目,所有的模块都会写在一个项目中,并且单独部署在一台服务器上,这就是一个最简单的单体架构的一个模型 集群: 单机处理到达瓶颈的时候,把单机复制几份,分别部署在多台服务器上,集群中每 ...

  3. 这些年我对微服务的理解

    Monolith.SOA.DDD.The two-pizza rule.分库分表这些概念跟微服务有啥关系,你知道吗?这篇文章记录我的理解,分享给大家. 微服务(micro service),个人感觉也 ...

  4. (一)浅谈微服务概念理解

    1.什么是微服务 让我们以一个餐厅为例来解释微服务的概念. 想象一家传统的餐厅,它有一个集中式的厨房,所有的菜品都在同一个厨房中准备和烹饪.这个厨房负责接收顾客的点餐请求,准备食材,烹饪菜品,并最终将 ...

  5. 当我们谈微服务,我们在谈什么?谈谈我对微服务的理解!

    作者:fredal fredal.xin/talking-msa-understand-msa 阅读目录 微服务是什么 微服务是什么样的 服务化的前提 服务的发布与引用 服务的注册与发现 服务的远程通 ...

  6. java微服务的理解

    Java微服务是一种架构风格,它将单个应用程序拆分成许多小型服务,每个服务都有自己的独立功能并且可以被独立部署.这种架构的优势在于可以让团队更轻松地开发.测试和部署应用程序,并使系统更加可扩展和可靠. ...

  7. 【微服务】重新理解微服务之它还那么纯粹吗?

    温故而知新 不少同行,对于"什么是微服务",都在各平台发表过相关理解.看法等.随着这些年的技术发展,只要涉及到"微服务"这三个字已经不再纯粹,几乎无论是什么方向 ...

  8. 【转载】微服务,我们需要哪些基础框架?

    微服务(MicroServices)架构是当前互联网业界的一个技术热点,圈里有不少同行朋友当前有计划在各自公司开展微服务化体系建设,他们都有相同的疑问:一个微服务架构有哪些技术关注点(technica ...

  9. 微服务和其他常见架构

    我们看一下这个定义是怎么来的,微服务是由James和Martin两个人提出来的,他们在14年的3月份,写过一篇文章,就叫MicroService,就是微服务,有兴趣的可以去看一下原文,这里大家可以看一 ...

最新文章

  1. Openoffice添加页脚页码页数页眉
  2. uva10026-鞋匠的难题
  3. Visual Studio Code(VS Code)与Git Source Control集成
  4. c语言windows停止工作,win7系统一打开便签就提示停止工作的解决方法
  5. 分布式调度框架大集合
  6. 百度编辑器上传图片后转到七牛存储
  7. Linux优化学习之Load Average (平均负载)
  8. chrome更新到80以上版本后,带来的跨域请求cookie丢失问题
  9. Excel进度条设置百分比解决
  10. win10计算机网络设置在哪,Win10系统电脑中的网络状态在哪里查看
  11. 尚硅谷JS笔记-数组的剩余方法、函数的方法 、arguments 、Date、Math、包装类、字符串的相关方法、正则表达式、字符串和正则相关的方法的总结及归纳
  12. 计算机连接打印机用户数量修改,使用注册表修改对打印机进行设置的方法
  13. 永磁同步电机(PMSM)参数辨识(一)
  14. springboot 添加第三方jar包
  15. python写通讯录_Python实现命令行通讯录实例教程
  16. 计算机软件体系结构,[计算机]软件体系结构和UML.pdf
  17. 曙光服务器开机显示B9,曙光服务器配置
  18. 去掉button按钮原有样式
  19. Leetcode 1488. Avoid Flood in The City(python)
  20. 入门精通web前端:三大核心HTML5、CSS3 、JS必学

热门文章

  1. Nacos OpenAPI清单
  2. 赛马网基本算法之一 (股神问题)
  3. 网络技术概念与Java网络编程技术——最通俗的理解(转载)
  4. 虚拟机安装Linux系统(保姆级教程)
  5. ab间奇数的和c语言,奇数之和减去偶数之和
  6. 量子计算与量子信息之Python-qiskit实现量子隐形传态
  7. 变速器matlab仿真,基于MATLAB/simulink的无级变速器控制策略的建模与仿真
  8. 一张图胜千言万语:创建图像的自然描述
  9. 客户需求的识别类型 客户需求识别的方法
  10. 惠普HP Color LaserJet Pro M283fdw 一体机驱动