(1)引子
1999年我自己發生了好幾件事:
1、我購買了兩張盜版光碟:Sun Solaris OS、紅帽Linux
2、正在用COM+、MTS,開發三層架構的局域網內的大型企業商用套件,由Windows客戶端、中間層中間件、后臺SQLServer資料庫構成
3、自己嘗試基于WebSphere,開發三層架構的互聯網的企業應用,由瀏覽器Web(HTML/CSS/JavaScript)、JSP/servlet、EJB中間件、Oracle 資料庫構成,我1997年學習Java,但一直沒嘗試開發點什么
(2)Unix
1964年,IBM發布劃時代的System360大型主機,里面包含了System/36O作業系統,這個作業系統可以說是人類計算機史上第一個作業系統,也真正做到了多用戶、多計算存盤環境隔離、多分時,
在那個年月,IT產業剛剛開啟,很多工業時代的巨頭都想進入資訊時代,如通用電氣、霍尼韋爾等等,也都設計制造計算機,為了對抗IBM,通用電氣出錢,產學研聯合,1964年聯合AT&T貝爾實驗室、MIT麻省理工學院一起搞一個作業系統,這就是Multics,
但是由于IBM太厲害了,橫掃市場,1970年,通用電氣退出競爭,不干計算機業務了,所以也不資助這個專案了,
貝爾實驗室搞Multics專案的這幫人就開始無所事事了,于是,ken Tphmpson和Dennis Ritch這兩個人就開始瞎折騰,1971年,ken Tphmpson在一臺廢棄的DEC PDP-7小型機上用匯編語言花了一個月時間仿照Multics開發了簡化的、能夠在老舊性能的小型機上運行的作業系統,這就是UNIX,
1973年,Dennis Ritch感覺用匯編開發太麻煩了,于是他就從一個已經存在了很久的B語言做了改良,就叫它C語言,然后就用C語言重新開發了一版,這就是UNIX第三版,1974年,他們倆對外發了一篇文章,外界這才知道了有個東西叫UNIX,
由于當時貝爾實驗室的母公司AT&T正處于被反復K反復要搞反壟斷的時候,所以AT&T當時被美國裁定不能銷售除電話電報以外任何商品,所以,1975年,貝爾實驗室搞了一個開源教學版Unix,高校可以免費學習,所以各大公司也開始研究這份開源代碼,
1978年,還在伯克利大學上學、后來的SUN公司的創始人Bill Joy,在高校開源教學版UNIX第六版的開源代碼基礎上進行改造,這就是大名鼎鼎的UNIX伯克利軟體分發版本,簡稱BSD,1979年,最后一個開源教學版Unix第七版發布以后,AT&T宣布UNIX不再開源,AT&T專門成立了一個獨立公司:USG(Unix Support Group),準備將 Unix商業化,但AT&T能想到的招兒就是保留著作權和商標權,賣商業化的Unix源代碼,
1982年,HP買了UNIX商業源代碼,改造成了自己的HP-UX作業系統,1984年,IBM買了UNXI商業源代碼,改造成了自己的AIX作業系統,
1982年,Sun公司成立,Bill Joy在BSD的基礎上開發了Sun公司的Unix商用版本,這就是后來的Solaris,
1976年,喬布斯成立蘋果公司,1977年推出AppleII,這是人類歷史上第一臺個人電腦(簡稱PC),1985年,喬布斯被趕出蘋果公司后,在硅谷到處尋找好的東西想重建輝煌,他遇到了一家創業小公司叫NeXt.Inc,這幫人正是想造喬布斯最想要的最強勁的電腦,1989年,NeXT電腦發布,它也是從BSD開源代碼中發展出了作業系統,后來,喬布斯重返蘋果,把蘋果公司的作業系統廢掉,用了NeXT的作業系統,這就是后來的Mac OS,
1977年,蓋茨把微軟公司搬到西雅圖,繼續開發BASIC編程語言,1979年,SCO公司成立,并且和微軟進行合作,基于Unix第七版,移植到Intel 當時1978年推出的最新的8088 CPU上,這就是后來的世界上第一個PC上的Unix:Xenix,1980年,IBM受蘋果公司個人電腦的壓力準備搞開放兼容個人電腦,就想采取微軟開發的第一個PC上的Xenix,但當時Xenix還涉及到SCO合作開發的著作權問題,于是蓋茨耍了一個花招,就從市面上買了一個作業系統,這就是后來大名鼎鼎的MS-DOS,1987年,SCO買下了微軟工程師開發的那一部分Xenix代碼,SCO完全擁有了Xenix,
1984年,AT&T被拆分,貝爾實驗室由于獲得不了資助也開始衰落,1993年,Novell買下了Unix的所有資產,Novell是世界上第一個提出網路作業系統、檔案服務器的公司,曾經把微軟打的很厲害,但是微軟在1993年推出了Windows NT一雪前仇,1995年,Novell頂不住了,也開始想著怎么榨干Unix最后一滴血,1995年,Novell模仿AT&T做法也把Unix源代碼賣給了SCO,后來SCO和Novell都宣稱擁有Unix的資產權,這場官司從2004年打到2007年,Novell也不知道官司能不能勝利,于是Novell在2004年并購了一家德國的Linux發行公司SUSE,所幸的是,后來法官裁定Novell獲勝,
SUSE是Linux,Linux是芬蘭Linus在1990年上學時上作業系統課,因為要交課堂作業,于是自己就嘗試寫了點東西,后來一發不可收拾覺得自己也能寫個作業系統,于是就產生了Linux,當時因為AT&T已經不再給高校開源Unix,所以荷蘭教授Tanenbaum自己搞了一個教學用的作業系統,這就是Minix,Linus上作業系統課,老師用的教學系統就是Minix,Linus開發Linux時也是靠Minix啟發了不少思路,1994年初,Linux1.0發布,不過,我們這里講的Linux其實是作業系統內核,Linux作業系統內核之上的東西,都是各個Linux發行公司在搞,業界有一個開源組織叫GNU,它也在開源的Linux發行版,在Linux內核上集成了當時許多開源軟體,其中就有伊利諾伊大學開源組織搞的apache Web Server,
Linux其實生得逢時,1994年剛推出來,世界互聯網熱潮就爆發了,大家都想創業搞互聯網,但是Unix和Windows NT這些商業作業系統都很昂貴,Linux開源、免費、不涉及Unix著作權,而且GNU搞的開源Linux發行版里還有Apache Web Server,正好搭建網站,現在,LAMP組合還是絕配:Linux、Apache Web Server、MySQL、PHP,
(3)中間件
80年代,局域網、互聯網都發展的方興未艾,互聯互通成為人們的普遍訴求,所以,Novell、Sun公司都提出網路作業系統概念,
上節咱們已經提到,Sun公司的聯合創始人Bill Joy也是BSD的核心人物,BSD給Unix業界最重要的貢獻就是:TCP/IP的實作,為了解決網路之間的互聯互通,現在各大作業系統中的TCP/IP實作代碼,根源都來自于此,
Bill Joy太厲害了,他還在Sun公司于1984年搞出了一個新玩意,那就是:PRC(遠程程序呼叫),也用于解決應用程式之間的互聯互通,
1986年,IEEE(電氣與電子工程師協會)介于Unix版本太多,不好互聯互通,于是搞了一個開放作業系統標準,這就是POSIX,但IEEE有點類似學術組織,不是工程組織,制定了標準沒人執行,1993年,從AT&T買下Unix資產的Novell也想解決Unix之間在作業系統層面的互聯互通,于是Novell聯合大家,如買了Unix源代碼的HP、IBM等,成立了一個組織,X/Open,專門負責POSIX標準定義和業界推廣、落地執行,讓各大作業系統廠商都遵守POSIX標準,
這個1993年成立的X/Open組織,后來在1996年和Open Software Foundation合并,成為了The Open Group,Open Software Foundation是IBM和HP這起子購買了Unix商用源代碼的廠商們在1986年就成立的一個組織,也是一直試圖想在工程界解決POSIX落地的問題,現在Unix的正主Novell領頭搞了X/Open,兩個組織從職能目標和參加廠商來說大多重疊,所以這兩個組織就合并了,
咱們再說一個組織,那就是OMG,物件管理組織,是由Sun、IBM、HP等廠商在1989年組建的,The Open Group組織是為了在作業系統層面解決互聯互通,而OMG組織是為了在應用層面解決互聯互通,大家可別忘了,Sun公司這人可是既實作了TCP/IP,也實作了RPC(遠程程序呼叫),
OMG組織首先在1990年發布了CORBA標準,里面有幾個好東西:
1、IDL:中立的文本可描述的介面語言
2、物件請求代理:ORB
3、網路互聯互通:RPC、TCP/IP、UDP、IIOP
4、服務:目錄服務、注冊服務、事務服務、訊息服務、事件通知服務、安全服務
當你看到這組東西的時候你會想到什么?Oh My God,這不就是Sun公司在1998年制定的J2EE標準么,這不就是2003年之后在Structs/Spring/Hibernate興起后的SOA么?
嘿嘿嘿,是的,Novell衰落后,The Open Group就被IBM把持了,IBM給The Open Group塞進了兩個東西,一個是TOGAF(開放組體系結構框架),一個就是SOA,IBM給TOGAF塞進了自己想塞的架構分析設計方法論和工具UML,我就弄不明白了,TOGAF本來是開放組體系結構框架,為啥人們老叫它企業架構?企業架構難道不是:公司治理、商業模式、戰略規劃與戰略推進、組織能力四大組成么?
嘿嘿嘿,2002年,IBM并購Rational,這就是大公司的玩法套路啊:把自己的標準搞成產業的標準,
2008年,Oracle收購了Sun、收購了BEA,SUN實質上擁有著J2EE的標準制定權,BEA實質上擁有著J2EE的實作市場領導權,我一直很贊嘆Oracle的收購,Oracle收購Siebel CRM、PeopleSofe HR、SaaS ERP NetSuite都相當精準,況且,在Oracle收購Sun之前,Sun還收購了MySQL,Oracle作為一家資料庫廠商對MySQL絕對是需要控制權的,
咱們這節是主要說中間件的,所以咱們主要表一下BEA,BEA其實是一家硅谷常見的并購套路的公司,一路并購長大,最先并購的仍然是咱們的老面孔:貝爾實驗室的一個東西,叫Tuxedo,這個東西是世界上最早的中間件,最初起的作用就是分布式事務控制器,1993年,AT&T賣東西,把Unix賣給了Novell,把Tuxedo賣給了BEA公司,1994年互聯網爆發,一家小創業公司模仿開源的Apache Web Server搞了一個商業的Web服務器中間件,這家公司就叫WebLogic,BEA一看好東西啊,在熱潮上,就并購了WebLoigc,這樣,BEA就擁有了事務中間件和Web中間件,后來,Sun公司在1997年制定JSP/Servlet標準,BEA公司就一路跟隨從HTML網頁支持到JSP頁面支持,
后來Sun把這事玩的和CORBA一樣復雜了,業界開始造反了,NO EJB、殺死EJB、EJB已死的風潮開啟,開源的Structs/Spring/Hibernate三大件出現,IBM一看這事,不好啊,這樣搞下去,自己的WebSphere生意就做不下去了啊,于是,在XML、WebService技術的基礎上,又搞出來了SOA,
大家看看SOA五大組成:
1、IDL:用XML來描述介面
2、組件:SCA,不搞Sun那套復雜的有狀態EJB、無狀態EJB、事件EJB,IBM則是用普通Java類實作SCA組件定義即可
3、資料傳輸物件:SDO,用XML來進行資料打包
4、業務流程引擎:BPEL,用XML來描述業務流程
5、網路互聯互通:WebService
后來啊,從Spring開源框架就長出了一家公司,想必大家基于Spring開源框架開發了不少應用,但是想必大家也遇到了一個頭疼的問題,這些應用如何簡單地打包和部署?所以,Spring在2008年并購了一家創業公司叫cloud Foundry,它是世界上第一個提出把應用按標準格式進行打包的公司,這給后來的Docker出現帶來了啟發,
2009年,Spring(含Cloud Foundry)就被VMWare收購了,這就集齊了:應用、應用打包和部署、虛擬機集群平臺,2013年,VMWare和EMC共同出資成立了一家公司,這就是Pivotal,Pivotal就把:Spring應用框架、Cloud Foudry打包部署平臺、RabbitMQ訊息中間件、GreenPlum資料庫都裝了進來,好基于VMWare的虛擬機集群平臺跑起來,這就是妥妥的PaaS平臺和IaaS平臺啊,Dell作為一家服務器廠商并購EMC(存盤)、VMWare、Pivotal(含Spring、Cloud Foudry)打的一手好牌啊,
Pivotal的CTO Matt Stine就是在這種背景下開始于2013年宣傳云原生這個概念的,當然,屁股決定腦袋,他所說的云原生技術就是:
1、微服務技術(暗指Spring)
2、微服務程式設計方法(暗指他推崇的Heroku使用的微服務應用開發技巧,Heroku也是用的Pivotal開源的這套,Heroku就是在2010年被Salesforce收購作為Salesforce的應用開發PaaS平臺的)
3、持續集成(暗指Cloud Foundry)
4、敏捷基礎設施(暗指VMWare的vSphere)
但這動了另一個廠商的奶酪,這個廠商就是Google,因為在2013年這個時間檔口,VMWare也錯過了AWS的快速發展期,Google云也錯過了AWS的快速發展期,Google一開始做云,思路很Google,那就是:我Google把基礎設施的復雜性都屏蔽了,你們在我上面開發就行了,這就是Google在2008年搞的GAE,不知道現在還有多少同學記得這個東西,后來AWS的云服務器、云存盤、云CDN、云網路代碼大賣錢的時候,Google才想起怎么狙擊,
于是,Google在2015年搞了一個組織,這就是CNCF,名字起的好啊,CNCF的全名就是:The Cloud Native Computing Foundation,云原生計算基金會,
CNCF偏偏不主打微服務,而是主打無服務,哈哈哈哈,從CORBA(IBM公司),到EJB(Sun公司),到SOA(IBM公司),到EJB已死微服務崛起(Spring公司),到無服務(Google公司),另外,我就弄不明白了,這些技術都是為了解決應用程式開發技術,為了解決應用程式之間互聯互通的問題,為啥業界的人都說它們能解決應用程式好靈活組合的問題呢?業界都是些豬腦子啊,
你Pivotal和Spring主打虛擬機、主打Cloud Foudry的專有打包格式,那我CNCF就主打容器和K8S,
AWS現在賣完云服務器、云存盤了,現在又繞回了Google的老路:你們直接用我的無服務器架構Serverless開發就好,我的Serverless無服務器技術,可以無縫呼叫我的所有AWS其他服務,這才是真正原生一開始就是長在云上的啊,我才是云原生,
而采用Spring和Cloud Foudry這套開源PaaS平臺的Heroku、被Salesforce并購了的Heroku,也說自己才是純的云原生,君不見:Salesforce應用商店上的插件和生態應用,都是用Salesforce的專屬開發語言APEX開發,都必須統一部署在Heroku上,都必須接受Salesforce的統一監控、統一安全防護、統一訂單統一支付統一計費統一結算,
話說回來了,各位看官看完了我這篇文章,大家知道什么叫云原生了嗎?
這就是真實的業界,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/260968.html
標籤:AI
