技術的價值

阿朱說訂閱號發表於2020-06-05

我按照年代演化,從前端互動層,到網路層、應用層、資料庫來分別講,技術對於客戶的業務應用價值。


大家在閱讀中,尤其要細細品味為啥出現了那個技術,到底是為了解決什麼問題,但是它又產生了什麼弊病。 


一、70年代


過去的計算機,都是電傳打字機和打孔機當終端,和計算機進行互動。1972年,王安電腦研製成功最新一代的文書處理計算機,首次配套了我們們現在最常用的鍵盤和螢幕,從此我們有了可視的字元介面。


我們們現在用的乙太網是1979年才產生的。但是世界上第一條跨大西洋的海底通訊電纜在1866年就鋪完了,人類已經可以透過海底通訊電纜進行跨洋的電報資料傳輸。而且在1969年網際網路的前身ARPANet誕生的時候,人們已經透過電話線纜可以進行聯網資料傳輸和訪問了。


有了檔案和檔案系統,有了網狀資料庫和層次資料庫,內容修改/儲存/查詢倒是比過去容易了,但是複雜性仍然很高。


二、80年代


1983年,Lisa推出了,這是世界上第一款圖形介面的計算機。1983年,微軟也在研發Windows圖形介面,但是Windows1.0在1985年才推出。圖形介面取代字元、取代命令列,讓計算機大大易用。


1981年,乙太網的發明人創辦了3COM公司,給1981年IBM釋出的PC機配備了乙太網網路卡。區域網便於多人多部門一起協作。


早在1984年,貝爾實驗室Unix研究團隊就已經產生出了分散式資料事務一致性協調中介軟體,後來1992年賣給了Novell公司,後來又被BEA公司在1995年收購。這是最早的中介軟體,就是為了解決分散式應用的問題。1987年,Sun公司就發明了RPC技術,用於分散式應用之間透過API進行遠端呼叫的問題,這也是比較早的中介軟體,也是為了解決分散式應用的問題。


Oracle終於在1979年推出了Oracle2.0真正可商用的關聯式資料庫,這讓結構化資料儲存/查詢容易了很多。


三、90年代


早在1991年,歐洲原子能實驗室的研究員就已經研究出來網頁瀏覽器、HTML、HTTP協議、Web伺服器。但是在1993年才被伊利諾伊大學的學生們開源實現並且普及。1994年網景公司成立,引爆了全球網際網路。Web技術免除下載安裝這些麻煩事,可以做到隨時隨地訪問。


思科也順便切入了TCP/IP的網際網路路由器,網際網路便於全球訪問。


1990年,COM元件技術、CORBA元件技術都出現了,並且還配套了分散式應用遠端呼叫中介軟體、元件持久化中介軟體技術、元件池化中介軟體技術。元件的出現是由兩個技術在推動:一個是介面技術的推動,介面的出現,讓不同開發語言編寫的應用之間可以很方便API呼叫;另一個技術是通用元件規範,過去寫一個類是很隨意的,但是你要寫成元件,前提就必須符合通用元件介面定義規範,只有這樣,才能做到元件的計數/池化、元件的內省/持久化。


1994年,網際網路崛起後,中介軟體又增加了Web中介軟體伺服器,如開源的Apache WebServer。WebLogic和WebSphere一開始都是商用的WebServer。1995年,為了做到Web頁面從靜態文字變成動態,Servlet/JSP技術發明了,這就相應出現了Servlet/JSP中介軟體伺服器。1998年,J2EE規範釋出,這就又相應出現了EJB元件和EJB中介軟體伺服器。他們其實都是為了解決跨網際網路的遠端呼叫問題。


1990年,Red Brick公司推出世界上第一款資料倉儲管理軟體。這樣,關聯式資料庫處理OLTP交易型應用,資料倉儲處理OLAP分析型應用。


四、2000年代


2008年,iOS、Android這兩大雙雄終於出現,開啟了移動網際網路時代。但是當時2G、3G網速慢,智慧手機本機的效能也慢,所以當時做移動網際網路應用,蘋果公司就走了App這樣的技術路線。如果你要做內部用或外部用移動應用,只能跟隨蘋果事實上的產業標準,做APP。


聯網技術,也從Modem撥號上網技術,演化到有線ADSL技術、WiFi無線上網技術,乃至2G GPRS、3G無線上網技術。無線上網技術,讓大家可以隨時隨地訪問網際網路。


1998年,W3C為了分散式應用跨網際網路訪問就在制定WebService標準,在2001年才正式推出。因而中介軟體又增加了WebService的特性,這就是過去大家老提的SOA:有註冊中心UDDI,有所謂的SOAP企業匯流排(其實和過去的遠端方法呼叫中介軟體本質是一樣的),有描述檔案語言WSDL。如果你想方便地利用網際網路技術跨網際網路訪問其他的應用,那麼你當時只能使用WebService技術。


關聯式資料庫統治應用已經很多年,但是網際網路的很多應用產生的內容和資料並非都是結構化關係資料,如半結構化資料(CSV、XML、JSON的日誌),非結構化資料(電子郵件,文件,PDF)和二進位制資料(影像、音訊、影片)。所以就出現了很多儲存方式系統以及NOSQL資料庫。


五、2010年代


2017年,微信小程式技術出現,隨後阿里、百度、頭條、滴滴等等很多公司都跟進。Google在2017年也同時提出了PWA(漸進式Web應用)技術,Google在2018年還用Dart開發語言(2011年產生)和FlutterUI元件形成組合。前端又從APP技術回到了類似HTML、Javascript的技術世界。如果你想在微信裡開發應用,小程式技術是微信第一優先順序支援的,所以頁面的適配性最好。如果你就不用小程式技術,就自己用HTML5技術來搞,那麼適配微信各個版本、適配各種手機的工作,只能你自己搞了。


2013年,4G無線上網牌照發布。人們從3G無線上網,升級到4G無線上網。上網速度更快,訪問應用不用再等待了。


中介軟體出現了N多分散式中介軟體,來應對各個細分層的海量併發。2014年,微服務程式設計架構提出。微服務為啥出現?就是因為元件技術和WebService技術太沉重了,寫一個簡單東西也得附加一大堆元件技術規範實現和WebService技術規範實現。


早在2004年,Spring已經產生了,那還是SOA時代。後來2014年搖身一變,Spring變成Spring Cloud,SOA(面向服務)變成了面向微服務,應用中介軟體變成了應用程式設計框架。雖說各種開源的分散式中介軟體互相靈活組合在一起打破了當年WebLogic/WebSphere壟斷企業級中介軟體的商用市場,雖說用RSET和JSON代替了沉重的WebService技術族,雖說微服務用普通類代替了過去沉重的元件技術,但是給應用開發工程師也帶來了煩惱:過去本來應該由完全封裝的中介軟體軟體操心的分散式要求,現在得應用開發工程師來關注了。


所以2015年,業界痛定思痛,在Docker容器和k8s技術的支撐下,大家把分散式應用要求的能力又從應用程式設計框架層級下沉到分散式作業系統層。微服務的架構,也變成了面向函式服務/無伺服器Serverless架構。


這樣來看,其實微服務是走錯路了,就像CloudFoundry和OpenStack走錯路一樣。很不巧,以Spring為代表的微服務應用程式設計框架和以CloudFoundry為代表的應用容器框架,都是Pivotal這家公司的。


所以,世界繞了一圈回來了,現在的Serverless、容器、K8s生態技術體系,把分散式應用架構的複雜性從應用層下降到了分散式作業系統層,目的是在簡化分散式應用架構。如果不這麼簡化,你又想應對海量併發,又想簡單,那沒門。


早在2003年,Google就開始陸續釋出三大論文,直到2009年,Hadoop在雅虎的推動下才正式開源。大資料海量儲存、大資料海量計算的需求才得以滿足。大資料不用像過去資料倉儲一樣ETL、維度化入倉,就能做很高效能的計算和查詢。尤其後來2014年釋出的Spark用記憶體處理機制、DataFrame機制,實現了實時的流式計算,比過去Hadoop MR批次計算更加效能高、實時性好。


現在大家又在提大資料湖,因為大家發現了NOSQL太多了,大家其實期望的是一個技術搞定各種資料存取。但是大家也要警醒,現在說大資料湖落地產品的,可能不是真正的大資料湖的產品,就如同iPhone沒出來之前Symbian就叫智慧手機,iPhone出來後就沒有Symbian什麼事了。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69940597/viewspace-2696369/,如需轉載,請註明出處,否則將追究法律責任。

相關文章