編者按:這是一篇兩年前的文章,作者為原CA TECH的中國區技術總監。他在文章中闡述的問題,今天讀來依舊讓人振聾發聵。但遺憾的是,國人在API成為一種服務的概念上似乎還停留在遙遠的PC時代,說白了還都只是一些低端的數據庫查詢而已,根本不是服務。把自己的核心業務作為API開放出來更是欲迎還羞。說到底,還是在技術上對共享沒有信心,更是對自己的核心業務沒有信心……
原文轉發如下,我們不介意幫CA推廣,因為我們對自己的技術很有信心。
作者 劉國強
最近,沒有什么比“互聯網思維”和“移動互聯”更受人關注又備受調侃的了。有人總結出粉絲經濟等等是互聯網思維的基石,但在一家傳統IT管理廠商眼中,每一個新的思維背后,真正能稱之為基石的還是技術。技術的進步催生了互聯網經濟,而這種變化投射在人的思想里,才形成了新的思維。
以應用為中心、以軟件為中心,是未來所有企業面對的問題。所有企業不管是制造業、航空業、金融業或者服務業,最后都要演變成為IT企業,因為所有的服務和產品都要通過軟件傳遞出去,比如銀行、制造業和實體的商店等。制造業如汽車行業,其4S店要提供各種各樣的貼身服務來留住客戶。而且汽車中的功能有40%是通過軟件方式來服務的,所以如何是提供更好、更便利的服務給最終客戶和合作伙伴,是企業發展的核心。
API來了,你注意到了嗎?
API是隨著互聯網和云計算的興起而催生的產物。API是三個英文字母Application Program Interface的首字母簡寫,即應用程序接口。像云供應商亞馬遜、互聯網巨頭Google、社交媒體Twitter,他們的服務都是通過API的方式來提供的。亞馬遜的首席執行官Jeff Bezos要求亞馬遜的所有開發人員:
? 數據和功能只能通過APIs 來提供給使用者
? APIs 必須設計為便于外部開發人員調用
? 如果你不遵守這個規定,你將被開除
API熱在西方出現較早。早在2012年,API就為國際的互聯網巨頭們帶來了非常可觀的經濟效益:
? Salesforce超過一半的收入:Salesforce 23億美元的年收入中超過的一半的收入是通過API產生的;
? 50億筆交易:Google 每天通過API處理50億筆交易
? 130億筆交易:Twitter每天通過API處理130億筆交易
? 1萬億筆交易:亞馬遜每天通過API處理1萬億筆交易
相對于國外,API經濟在國內也已經開始成形,只是還沒有引起太大關注。國內像微信、QQ、人人等,都是有開發平臺的,開發平臺上就有API的管理。API如果被用于商業用途會進行收費,可以根據功能的多少、調用的次數、優先級等分為不同的費用模式。因此,API計費不只是互聯網企業的專利,所有的銀行、企業甚至政府都可以使用,就像銀聯在不同銀行之間的轉賬,都屬于API抵用。以前企業大多數是在內部的系統之間調用,現在把系統可以提供的服務都用API的形式開放出來,形成API管理門戶,分為企業開放者和個人開發者,要經過認證、付費之后就可以使用,付的費用越高,就可以調用更多的服務,比如像百度地圖、高德地圖和定位GPS。
API的本質是一種服務,無所不在的服務。移動其實是一個載體、一個表現形式;移動在本質上是讓服務變得隨時隨地可以用。手機上的各種APP,其實都是一個服務的入口和訪問口,如何來提供這種服務呢?就是后端跟API相關,安全的去使用API。
服務可以分成兩種,一種是對內服務,一種是對外服務。如果是面向最終客戶的,不需要單獨去注冊賬號,只要有QQ賬號就可以登陸,像手機應用“百詞斬”、“歐路詞典”等,有微信賬戶就可以和“嘀嘀打車”聯動。我們把它定義為社交化里面的統一身份,只要在互聯網上有一個身份就可以相互認證通過。但是這種模式比較適合個人,并不完全適合傳統企業。因為這種模式是提供給個人消費者使用的,其安全級別相對比較低。而企業不一樣,企業的核心數據并不希望用社交身份來認證和管理,這是一個矛盾點。前面講到API就涉及到了這一點,API管理是需要管理開發者和使用者的身份,其中第一點就是身份問題,你的身份是個人用戶還是企業用戶?如果是企業用戶的話,不太會社交化。用微信的賬戶就可以登陸CA Technologies的某個應用,這是不太可能也不被允許的。
API,怎么用起來?
CA Technologies的API管理平臺已經有很多客戶,有幾個航空公司就使用了CA Technologies的產品,專門做了API的網關。但是國內企業對API經濟化的重視程度還比較低。以航空公司為例,他們就需要這樣的網關來管理API,因為手機上的用戶都要進行在線買票或網上值機,需要輸入信用卡和各種各樣的信息。那么如何保證訪問者是安全的,不會受到黑客攻擊造成后臺信用數據泄漏呢?前一段時間某知名出游網站出現了安全門事件,其實就是API泄露。因為雖然它的系統對外是不開放的,但是其他系統通過API調用了核心系統,黑客攻擊了其中一個小應用軟件從而訪問到API,所以本質上是API泄漏的信息。大家在討論的時候沒有意識到,這其實還是一個技術層面的問題。
我們以航空公司的服務為例,來做一個API平臺的使用場景分析:
系統中首先會包含內部的票務系統,剩余票量是多少,乘客信息,座位情況,各方面信息都會顯示。
第二,系統會與銀行通訊,來驗證乘客有沒有付款,使用了何種付款方式。
第三,系統還需要和政府打交道來核實乘客身份。比如身份證的信息是否真實,需要和公安部的信息進行比對。公安部也是通過API進行管理,系統一旦被攻破,所有的信息都會有被泄露的危險。其實我們會發現企業和企業之間都是通過API連接的,這就變成了物聯網的概念。物聯網中的通信不需要人的干預,我們把它叫做機器和機器之間、系統和系統之間的通信。在系統和系統之間的通信也要管理,不管理就會出問題。系統和系統之間就是通過API通信的。
以前大家購買服務都是以一個整包為單位購買,現在拆分得很清楚,因為后端有很多系統,都會分開進行收費,是按照API來計費的。API本質上是很多的函數。一般是很多小函數,就是并列著有很多功能列出來供選擇,選擇的越多,收的費用越多,這就是跟API收費了。微信也是一樣,都是按量去計費的。
API有兩種收費標準,第一個是按量計費,第二個是按功能計費。API有提供很多功能,你選擇不同功能的套餐,范圍越大收費越高。API不再是簡簡單單的開放一個函數,而是要涉及到開放給誰,怎么計費的問題。這也是API為什么需要門戶(Portal)來管理的原因。我不光要告訴你能不能訪問,能訪問什么,還要告訴你要交多少錢,也就是和費用、經濟掛鉤了。
以前API一般訪問量很小,就是系統和系統之間調用,或者迫不得已調用。當API突然變成服務概念的時候,你會發現API被調用的數量是海量的,這就意味著對API的管理已經勢在必行。API的身份要統一管理,API的單點登陸要統一管理,API的能力、API的計費全部要單點管理,這才催生了API經濟的概念。
剛才講到新API的概念,API的安全。API有不同的種類,其標準也非常多,有老的、遺留的API模式,也有新的、互聯網行業比較標準的API。CA Technologies可以實現API的轉換和封裝,不管企業使用的是什么模式的API,都可以被轉換成業界最標準、最流行、最好用、最易用的API。比如我要做一個API的mapping,技術難度是比較大的。我們要了解很多,從業界比較早的API知識、型號、接口,轉換成一個用戶選擇的API標準接口出來,這過程中要花的代價、需要的專業知識都會比較多。在跟互聯網結合方面,都是在應用層面,跟編程相關性非常大。編程雖然不難,但是編程知識的改變非常快,很多新的編程的環境、語言、更新速度也很快,所以要適應這個變化,也要去驅動它快速的適應和改變。
API,怎么管起來?
越來越多的企業正在向合作伙伴、開發人員、移動應用程序和云服務開放他們的數據和應用。API提供的標準化方法可用于在Web、移動設備、面向服務的架構(SOA)以及云中開放信息資產。企業需要以低成本的方式實現安全可靠的API信息共享,才能積極面對安全、性能管理以及數據調整方面的嚴峻挑戰。一套完整的API管理方法論應當包含后端集成、移動優化、云協調以及開發人員管理等高級功能,才能應對企業面臨的各種API管理的挑戰。
筆者認為API的管理至少有涉及三個部分:
1、API網關,作為服務消費者和服務提供者的橋梁,但是身份管理和轉換、API訪問控制和流量管理、以及API的權限管理,還可以追蹤 API 性能,并生成所有服務交互的審查跟蹤結果。
2、API服務管理,可以企業內部陳舊的轉換為新的API格式,同時對從開發、測試到生產的整個API生命周期進行管理。
3、API開發者門戶管理,在門戶中可以對API的開發者提供如下管理功能:
? 開發人員注冊:分類個人用戶、企業用戶、免費用戶或者收費用戶。
? 開發人員資源 : 提供開發人員使用的包括:討論與支持社區、集成消息、API 文檔、API 資源管理器、API 狀態、應用報告等。
? API報告與分析: 用于追蹤和測量 API 使用情況、成功與錯誤、延遲等內容的 API 報告,用于顯示延遲、使用情況、成功與錯誤等內容的應用報告。
? API門戶的內容管理:可定義門戶界面的外觀、風格、品牌和內容并支持籌劃和生產環境以及內容批準、發布、回退流程,從而簡化變更管理。
不論稱它為API或者是應用程序接口,這兩個略顯冰冷的機器化的名詞對已經不再只是開發者和IT從業人員關心的事情。正如我在文章開頭所講的,未來,所有的企業都將變成軟件企業,軟件在很大程度上定義了一個企業的遠見和未來。正因如此,API才從枯燥的代碼中跳脫出來,把它的價值鮮活地展現在世人面前。推動趨勢或者被趨勢迫使前進,選擇從來都只在自己手中!